Ejemplo n.º 1
0
def linetancirccirc(x0, y0, r0, x1, y1, r1):
    circs = irit.list(irit.circle((x0, y0, 0), r0), irit.circle((x1, y1, 0),
                                                                r1))
    irit.color(circs, irit.RED)
    retval = (circs + linetancirccircaux(x0, y0, r0, x1, y1, r1) +
              linetancirccircaux(x0, y0, r0, x1, y1, (-r1)) +
              linetancirccircaux(x0, y0, (-r0), x1, y1, (-r1)) +
              linetancirccircaux(x0, y0, (-r0), x1, y1, r1))
    return retval
Ejemplo n.º 2
0
def treebranch(pt1, pt2, r):
    retval = irit.swpsclsrf( irit.circle( ( 0, 0, 0 ), 1 ),
        irit.coerce( pt1, irit.E3 ) + \
        irit.coerce( pt2, irit.E3 ),
        irit.ctlpt( irit.E2, 0, r ) + \
        irit.ctlpt( irit.E2, 1, r * wfactor ), irit.GenRealObject(0), 1 )
    return retval
Ejemplo n.º 3
0
def positioncurvature(srf, u, v):
    eps = 1e-012
    c = irit.circle((0, 0, 0), 1)
    k = irit.scrvtreval(srf, u, v, 1)
    r1 = irit.max(
        irit.min(1.0 / (irit.FetchRealObject(irit.nth(k, 1)) + eps), 1000),
        (-1000))
    r2 = irit.max(
        irit.min(1.0 / (irit.FetchRealObject(irit.nth(k, 3)) + eps), 1000),
        (-1000))
    v1 = irit.nth(k, 2)
    v2 = irit.nth(k, 4)
    p = irit.seval(srf, u, v)
    n = irit.snormal(srf, u, v)
    d1 = v1 ^ n
    d2 = v2 ^ n
    c1 = c * \
   irit.sc( r1 ) * \
   irit.rotz2v( irit.Fetch3TupleObject(d1) ) * \
   irit.trans( irit.Fetch3TupleObject(irit.coerce( p, irit.VECTOR_TYPE ) + n * r1 ))
    c2 = c * \
   irit.sc( r2 ) * \
   irit.rotz2v( irit.Fetch3TupleObject(d2) ) * \
   irit.trans( irit.Fetch3TupleObject(irit.coerce( p, irit.VECTOR_TYPE ) + n * r2) )
    retval = irit.list(
        p, c1, c2,
        p + irit.coerce(irit.coerce(p, irit.POINT_TYPE) + v1, irit.E3),
        p + irit.coerce(irit.coerce(p, irit.POINT_TYPE) + v2, irit.E3),
        positionasymptotes(srf, u, v))
    irit.adwidth(retval, 2)
    irit.color(retval, irit.YELLOW)
    return retval
Ejemplo n.º 4
0
def drawcircs(pls):
    retval = irit.nil()
    i = 0
    while (i <= irit.SizeOf(pls) - 1):
        v = irit.coord(pls, i)
        irit.snoc(
            colorcirc(
                irit.circle((irit.FetchRealObject(irit.coord(
                    v, 0)), irit.FetchRealObject(irit.coord(v, 1)), (-1)),
                            irit.FetchRealObject(irit.coord(v, 2))),
                irit.FetchRealObject(irit.coord(v, 2)) > 0), retval)
        i = i + 1
    return retval
Ejemplo n.º 5
0
def displayptscrctan2crvs(pts, r, c1, c2):
    retval = irit.nil()
    circ = irit.circle((0, 0, 0), r)
    i = 1
    while (i <= irit.SizeOf(pts)):
        pt = irit.coord(pts, i)
        prms = irit.getattr(pt, "params")
        ptc1 = irit.ceval(c1, irit.FetchRealObject(irit.coord(prms, 0)))
        ptc2 = irit.ceval(c2, irit.FetchRealObject(irit.coord(prms, 1)))
        irit.snoc( irit.list( irit.coerce( pt, irit.E2 ) + ptc1, \
         irit.coerce( pt, irit.E2 ) + ptc2, \
         circ * irit.trans( irit.Fetch3TupleObject(irit.coerce( pt, irit.VECTOR_TYPE )) ) ), retval )
        i = i + 1
    return retval
Ejemplo n.º 6
0
    crvtrcrv = irit.cnrmlcrv(c)
    while (t <= tmax):
        kn = irit.ceval(crvtrcrv, t)
        k1 = math.sqrt(
            irit.FetchRealObject(
                irit.coerce(kn, irit.VECTOR_TYPE) *
                irit.coerce(kn, irit.VECTOR_TYPE)))
        k2 = irit.FetchRealObject(irit.ccrvtreval(c, t))
        if (abs(k1 - k2) > 1e-05):
            irit.printf(
                "mismatch in curve curvature evaluation (%.13f vs. %.13f)\n",
                irit.list(k1, k2))
        t = t + dt


c = irit.circle((0, 0, 0), 2)
comparecurvaturecrvevals(c)
comparecurvaturecrvevals(irit.creparam(c, 0, 1000))
comparecurvaturecrvevals(irit.creparam(c, 0, 0.001))

c = irit.pcircle((0, 0, 0), 0.5)
comparecurvaturecrvevals(c)
comparecurvaturecrvevals(irit.creparam(c, 0, 1000))
comparecurvaturecrvevals(irit.creparam(c, 0, 0.001))

c = irit.cbspline( 4, irit.list( irit.ctlpt( irit.E3, (-0.168 ), 0.794, 0 ), \
                                 irit.ctlpt( irit.E2, (-0.118 ), 0.637 ), \
                                 irit.ctlpt( irit.E2, 0.071, 0.771 ), \
                                 irit.ctlpt( irit.E2, 0.237, 0.691 ), \
                                 irit.ctlpt( irit.E2, (-0.091 ), 0.452 ), \
                                 irit.ctlpt( irit.E2, 0.134, 0.039 ), \
Ejemplo n.º 7
0
              (basexymin, basexymin, 16), (16, basexymin, 16)), irit.FALSE)
irit.color(wall1, irit.WHITE)
irit.attrib(wall1, "rgb", irit.GenStrObject("255,255,255"))
irit.color(wall2, irit.WHITE)
irit.attrib(wall2, "rgb", irit.GenStrObject("255,255,255"))

backgrd = irit.list(base, wall1, wall2)
irit.free(base)
irit.free(wall1)
irit.free(wall2)

# ############################################################################
#  First Morphing Sequence.                                                  #
# ############################################################################

srf1 = irit.ruledsrf(irit.circle((0, 0, baselvl + 0.01), 1),
                     irit.circle((0, 0, baselvl + 0.01), 0.01))
irit.color(srf1, irit.YELLOW)

bcross = irit.cbspline( 3, irit.list( irit.ctlpt( irit.E3, 0, 0, (-0.71 ) ), \
                                      irit.ctlpt( irit.E3, 0.2, 0, (-0.72 ) ), \
                                      irit.ctlpt( irit.E3, 0.25, 0, (-0.7 ) ), \
                                      irit.ctlpt( irit.E3, 0.25, 0, (-0.1 ) ), \
                                      irit.ctlpt( irit.E3, 0.2, 0, (-0.05 ) ), \
                                      irit.ctlpt( irit.E3, 0.15, 0, 0 ), \
                                      irit.ctlpt( irit.E3, 0.1, 0, 0.6 ), \
                                      irit.ctlpt( irit.E3, 0.11, 0, 0.61 ), \
                                      irit.ctlpt( irit.E3, 0.12, 0, 0.61 ), \
                                      irit.ctlpt( irit.E3, 0.12, 0, 0.65 ), \
                                      irit.ctlpt( irit.E3, 0.09, 0, 0.65 ), \
                                      irit.ctlpt( irit.E3, 0.07, 0, 0.64 ), \
Ejemplo n.º 8
0
else:
    woodcolor = "244,164,96"
    texture = "wood,1"
    redcolor = "255,0,0"
    graycolor = "70,70,70"
    whitecolor = "255,255,255"
    blackcolor = "10,10,10"

# 
#  First Lets create the fuselage.
# 

# 
#  Front part of the fuselage:
# 
c1 = irit.circle( ( 0, 0, 0 ), 0.01 ) * irit.roty( 90 ) * irit.trans( ( (-1 ), 0, 0.1 ) )
irit.color( c1, irit.GREEN )
c2 = irit.circle( ( 0, 0, 0 ), 0.025 ) * irit.roty( 90 ) * irit.trans( ( 0, 0, 0.1 ) )
irit.color( c2, irit.GREEN )
c3 = irit.circle( ( 0, 0, 0 ), 0.03 ) * irit.roty( 90 ) * irit.trans( ( 0.1, 0, 0.1 ) )
irit.color( c3, irit.GREEN )
c4 = irit.cbspline( 3, irit.list( irit.ctlpt( irit.P3, 1, 2.5, 0, (-0.1 ) ), \
                                  irit.ctlpt( irit.P3, 0.707, 1.77, 0.283, (-0.071 ) ), \
                                  irit.ctlpt( irit.P3, 1, 2.5, 0.4, 0 ), \
                                  irit.ctlpt( irit.P3, 0.707, 1.77, 0.283, 0.283 ), \
                                  irit.ctlpt( irit.P3, 1, 2.5, 0, 0.4 ), \
                                  irit.ctlpt( irit.P3, 0.707, 1.77, (-0.283 ), 0.283 ), \
                                  irit.ctlpt( irit.P3, 1, 2.5, (-0.4 ), 0 ), \
                                  irit.ctlpt( irit.P3, 0.707, 1.77, (-0.283 ), (-0.071 ) ), \
                                  irit.ctlpt( irit.P3, 1, 2.5, 0, (-0.1 ) ) ), irit.list( 0, 0, 0, 1, 1, 2,\
2, 3, 3, 4, 4, 4 ) ) * irit.trans( ( (-1.5 ), 0, 0 ) )
Ejemplo n.º 9
0
m1 = (b1 - b2)
irit.free(b1)
irit.free(b2)
irit.interact(irit.list(irit.GetViewMatrix(), m1))

c1 = irit.sphere((0, 0, 0.2), 0.18)
c1 = putrgbonvertices(c1, irit.GenStrObject("0,255,255"))
irit.view(c1, irit.OFF)

m2 = (m1 - c1)

irit.free(m1)
irit.free(c1)
irit.view(m2, irit.ON)

c2 = irit.circle((0.55, 0, 0), 0.12)
c2 = irit.extrude(c2, ((-0.2), 0, 0.2), 0)
c2 = c2 * irit.circpoly((0, 0, 1), (0.55, 0, 0.05), 0.25)
c3 = irit.circle(((-0.55), 0, 0), 0.12)
c3 = irit.extrude(c3, (0.2, 0, 0.2), 0)
c3 = c3 * irit.circpoly((0, 0, 1), ((-0.55), 0, 0.05), 0.25)
c2 = putrgbonvertices(c2, irit.GenStrObject("255,0,255"))
c3 = putrgbonvertices(c3, irit.GenStrObject("255,128,128"))
irit.view(irit.list(c2, c3), irit.OFF)

m3 = (m2 - c2 - c3)
irit.free(m2)
irit.free(c2)
irit.free(c3)
final = irit.convex(m3)
irit.free(m3)
Ejemplo n.º 10
0
    "asect3d5",
    irit.list(c1, c2, irit.calphasector(irit.list(c2, c1), 0.1),
              irit.calphasector(irit.list(c2, c1), 0.7),
              irit.calphasector(irit.list(c2, c1), 1)))

irit.pause()

# ############################################################################
#
#  A quadratic Bezier and a (exact rational) ellipse.
#

c1 = irit.cbezier( irit.list( irit.ctlpt( irit.E3, (-2 ), 0, (-1 ) ), \
                              irit.ctlpt( irit.E3, (-3 ), 0, 0 ), \
                              irit.ctlpt( irit.E3, (-2 ), 0, 1 ) ) )
c2 = irit.circle((0, 0, 0), 1) * irit.sy(2)

c2 = irit.coerce(c2, irit.E3)
irit.color(c1, irit.RED)
irit.adwidth(c1, 3)
irit.color(c2, irit.RED)
irit.adwidth(c2, 3)

t = 0
while (t <= 1):
    bisectsrf = irit.calphasector(irit.list(c1, c2), t)
    irit.color(bisectsrf, irit.GREEN)
    irit.view(irit.list(c1, c2, bisectsrf), irit.ON)
    t = t + 0.2

irit.save(
Ejemplo n.º 11
0
m1 = irit.coerce(irit.mvexplicit(2, "a^2 + b^2 - 1"), irit.BEZIER_TYPE)
m1 = irit.mregion( irit.mregion( m1, 0, (-3 ), 3 ), 1, (-3 ),\
3 )

#  (A+1)^2 + B^2 = 1
m2 = irit.coerce(irit.mvexplicit(2, "a^2 + 2 * a + 1 + b^2 - 1"),
                 irit.BEZIER_TYPE)
m2 = irit.mregion( irit.mregion( m2, 0, (-3 ), 3 ), 1, (-3 ),\
3 )

z = irit.mzero(irit.list(m1, m2), 0.001, 1e-010) * irit.sc(6) * irit.tx(
    (-3)) * irit.ty((-3))
irit.color(z, irit.YELLOW)

irit.interact(
    irit.list(irit.circle((0, 0, 0), 1), irit.circle(
        ((-1), 0, 0), 1), z) * irit.sc(0.6))

# ############################################################################# A^2 + B^2 = 1
m1 = irit.coerce(irit.mvexplicit(2, "a^2 + b^2 - 1"), irit.BEZIER_TYPE)
m1 = irit.mregion( irit.mregion( m1, 0, (-3 ), 3 ), 1, (-3 ),\
3 )

#  4A^2 + B^2/4 = 1
m2 = irit.coerce(irit.mvexplicit(2, "4 * a^2 + b^2 / 4 - 1"), irit.BEZIER_TYPE)
m2 = irit.mregion( irit.mregion( m2, 0, (-3 ), 3 ), 1, (-3 ),\
3 )

z = irit.mzero(irit.list(m1, m2), 0.01, 1e-006) * irit.sc(6) * irit.tx(
    (-3)) * irit.ty((-3))
irit.color(z, irit.YELLOW)
Ejemplo n.º 12
0
#
import math
import irit
#

#
#  Combination of a square, triangle, and a circle
#
#                                Gershon Elber, Feb 2009.
#

#
#  The Sqriancle
#

c = irit.circle((0, 0, 0), 1)

stc = irit.ruledsrf(c, c * irit.tz(2) * irit.sx(0.0001))
irit.attrib(stc, "rgb", irit.GenStrObject("255, 200, 200"))

stcisos = irit.getisocurvetubes(stc, 8, 4, 0.03)
irit.attrib(stcisos, "rgb", irit.GenStrObject("25, 20, 200"))
irit.attrib(stcisos, "specilar", irit.GenRealObject(2))

irit.view(irit.list(stc, stcisos), irit.ON)
irit.save("sqriacle", irit.list(stc, stcisos))
irit.pause()

irit.free(c)
irit.free(stc)
irit.free(stcisos)
Ejemplo n.º 13
0
irit.color( q3, irit.MAGENTA )
irit.printf( "%d cubic segements\n", irit.list( irit.SizeOf( q3 ) ) )

q4 = irit.cubiccrvs( crv, 0.1, (-1 ) )
irit.color( q4, irit.GREEN )
irit.printf( "%d cubic segements\n", irit.list( irit.SizeOf( q4 ) ) )

all = irit.list( crv, q1 * irit.tz( 0.1 ), q2 * irit.tz( 0.2 ), q3 * irit.tz( 0.3 ), q4 * irit.tz( 0.4 ) )

irit.interact( all )

irit.save( "pp6apprx", all )

# ################################

crv = irit.craise( irit.circle( ( 0, 0, 0 ), 0.9 ), 12 )
irit.color( crv, irit.WHITE )
irit.attrib( crv, "width", irit.GenRealObject(0.02 ))

q1 = irit.quadcrvs( crv, 0.02, (-1 ) )
irit.color( q1, irit.YELLOW )
irit.printf( "%d quadratic segements\n", irit.list( irit.SizeOf( q1 ) ) )

q2 = irit.quadcrvs( crv, 0.1, (-1 ) )
irit.color( q2, irit.CYAN )
irit.printf( "%d quadratic segements\n", irit.list( irit.SizeOf( q2 ) ) )

q3 = irit.cubiccrvs( crv, 0.02, (-1 ) )
irit.color( q3, irit.MAGENTA )
irit.printf( "%d cubic segements\n", irit.list( irit.SizeOf( q3 ) ) )
Ejemplo n.º 14
0
irit.color( chaircoverbot, irit.YELLOW )
irit.attrib( chaircoverbot, "texture", irit.GenStrObject("wood" ))
irit.attrib( chaircoverbot, "rgb", irit.GenStrObject("244,164,96" ))
irit.free( chaircover2 )
irit.free( chaircover2a )
irit.free( chaircover2b )

chair = irit.list( chaircovermain, chaircoverbot, chaircovertop )
irit.free( chaircovermain )
irit.free( chaircoverbot )
irit.free( chaircovertop )

# 
#  Carousel
# 
carouseltube = irit.sweepsrf( irit.circle( ( 0, 0, 0 ), 0.01 ), irit.cbspline( 3, irit.list( irit.ctlpt( irit.E3, 1, 0, 0.2 ), \
                                                                                             irit.ctlpt( irit.E3, 1, 0, 0.02 ), \
                                                                                             irit.ctlpt( irit.E3, 1, 0, 0 ), \
                                                                                             irit.ctlpt( irit.E3, 0.98, 0, 0 ), \
                                                                                             irit.ctlpt( irit.E3, 0.5, 0, 0 ), \
                                                                                             irit.ctlpt( irit.E3, 0, 0, 0.2 ), \
                                                                                             irit.ctlpt( irit.E3, (-0.5 ), 0, 0 ), \
                                                                                             irit.ctlpt( irit.E3, (-0.98 ), 0, 0 ), \
                                                                                             irit.ctlpt( irit.E3, (-1 ), 0, 0 ), \
                                                                                             irit.ctlpt( irit.E3, (-1 ), 0, 0.02 ), \
                                                                                             irit.ctlpt( irit.E3, (-1 ), 0, 0.2 ) ), irit.list( irit.KV_OPEN ) ), irit.GenRealObject(0) )
irit.color( carouseltube, irit.RED )
irit.attrib( carouseltube, "reflect", irit.GenRealObject(0.9 ))

carouselrod1 = irit.list( carouseltube, chairbase * irit.scale( ( 0.35, 0.35, 0.35 ) ) * irit.trans( ( (-0.93 ), 0, 0.03 ) ), chairbase * irit.roty( 90 ) * irit.scale( ( 0.35, 0.35, 0.35 ) ) * irit.trans( ( (-0.98 ), 0, 0.25 ) ), chairbase * irit.scale( ( 0.35, 0.35, 0.35 ) ) * irit.trans( ( (-0.93 ), 0, 0.03 ) ) * irit.rotz( 180 ), chairbase * irit.roty( 90 ) * irit.scale( ( 0.35, 0.35, 0.35 ) ) * irit.trans( ( (-0.98 ), 0, 0.25 ) ) * irit.rotz( 180 ) )
carouselrod2 = carouselrod1 * irit.rotz( 45 )
Ejemplo n.º 15
0
#  Set states.
#
#  Faster product using Bezier decomposition.
intrpprod = irit.iritstate("bspprodmethod", irit.GenRealObject(0))
echosrc = irit.iritstate("echosource", irit.GenRealObject(0))


def printtest(title, res, val):
    aaa = int(irit.FetchRealObject(irit.nth(res, 1)) == val)
    print title + " test - " + str(aaa)


#
#  Line
#
line = irit.circle((0.1, 0.7, 3), math.pi)
printtest("line", irit.isgeom(line, irit.GEOM_LINEAR, 1e-010), 0)

line = ( irit.ctlpt( irit.E3, (-2 ), 10, (-5 ) ) + \
         irit.ctlpt( irit.E3, 1, (-2 ), 3 ) )
printtest("line", irit.isgeom(line, irit.GEOM_LINEAR, 1e-010), 1)

line = irit.cbezier( irit.list( irit.ctlpt( irit.E3, 0, 1, (-2 ) ), \
                                irit.ctlpt( irit.E3, 1, 1, (-2 ) ), \
                                irit.ctlpt( irit.E3, 4, 1, (-2 ) ) ) )
printtest("line", irit.isgeom(line, irit.GEOM_LINEAR, 1e-010), 1)

line = irit.cbezier( irit.list( irit.ctlpt( irit.E3, 0, 1, (-2 ) ), \
                                irit.ctlpt( irit.E3, 1, 2, (-2 ) ), \
                                irit.ctlpt( irit.E3, 4, 1, (-2 ) ) ) )
printtest("line", irit.isgeom(line, irit.GEOM_LINEAR, 1e-010), 0)
Ejemplo n.º 16
0
#

#
#  Some examples of Algebraic sum, including of swung surfaces.
#
#                                        Gershon ELber, May 1998
#

save_mat = irit.GetViewMatrix()
irit.SetViewMatrix(irit.GetViewMatrix() * irit.sc(0.35))
irit.viewobj(irit.GetViewMatrix())

#
#  A circle and a line
#
circ = irit.circle((0, 0, 0), 0.7)
c2 = ( irit.ctlpt( irit.E3, (-0.2 ), (-0.5 ), (-1.5 ) ) + \
       irit.ctlpt( irit.E3, 0.2, 0.5, 1.5 ) )
irit.color(circ, irit.MAGENTA)
irit.adwidth(circ, 3)
irit.color(c2, irit.GREEN)
irit.adwidth(c2, 3)

as1 = irit.algsum(circ, c2)
irit.color(as1, irit.YELLOW)
irit.interact(irit.list(as1, circ, c2))

as1 = irit.algsum(c2, circ)
irit.color(as1, irit.YELLOW)
irit.interact(irit.list(as1, circ, c2))
Ejemplo n.º 17
0
irit.color(polytrs, irit.RED)

irit.interact(irit.list(trs, polytrs))

scalecrv = irit.cbspline( 3, irit.list( irit.ctlpt( irit.E2, 0.05, 0.25 ), \
                                        irit.ctlpt( irit.E2, 0.1, 0 ), \
                                        irit.ctlpt( irit.E2, 0.2, 0.5 ), \
                                        irit.ctlpt( irit.E2, 0.3, 0 ), \
                                        irit.ctlpt( irit.E2, 0.4, 0.5 ), \
                                        irit.ctlpt( irit.E2, 0.5, 0 ), \
                                        irit.ctlpt( irit.E2, 0.6, 0.5 ), \
                                        irit.ctlpt( irit.E2, 0.7, 0 ), \
                                        irit.ctlpt( irit.E2, 0.8, 0.5 ), \
                                        irit.ctlpt( irit.E2, 0.85, 0.25 ) ), irit.list( irit.KV_OPEN ) )
irit.color(scalecrv, irit.GREEN)
scltrs = irit.swpcircsrf(irit.circle((0, 0, 0), 1), scalecrv, 2)
irit.interact(scltrs)

ctlpts = irit.getctlpoints(scalecrv, 0)
ctlvecs = irit.getctlpoints(scalecrv, 1)
ctlpoly = irit.getctlpolygon(scalecrv)
irit.interact(irit.list(scalecrv, ctlpts, ctlpoly))
irit.interact(irit.list(scalecrv, ctlvecs, ctlpoly))

irit.save("macros2", irit.list(trs, polytrs, ctlpts, ctlvecs, ctlpoly))

scalepoly = irit.cnvrtcrvtopolygon(scalecrv, 50, 1)
irit.color(scalepoly, irit.RED)
irit.interact(irit.list(scalepoly, scalecrv))

ctlpts = irit.getctlmeshpts(trs, 0)
Ejemplo n.º 18
0
sb1 = irit.sbezier(spts)
sb2 = irit.sbspline(
    3, 3, spts, irit.list(irit.list(irit.KV_OPEN), irit.list(irit.KV_OPEN)))
irit.free(spts)

#
#  Constructor using TrimSrf
#

tcrv1 = irit.cbspline( 2, irit.list( irit.ctlpt( irit.E2, 0.3, 0.3 ), \
                                     irit.ctlpt( irit.E2, 0.7, 0.3 ), \
                                     irit.ctlpt( irit.E2, 0.7, 0.7 ), \
                                     irit.ctlpt( irit.E2, 0.3, 0.7 ), \
                                     irit.ctlpt( irit.E2, 0.3, 0.3 ) ), irit.list( irit.KV_OPEN ) )
tcrv2 = irit.circle((0.5, 0.5, 0), 0.25)
tcrv3 = irit.cbspline( 3, irit.list( irit.ctlpt( irit.E2, 0.3, 0.3 ), \
                                     irit.ctlpt( irit.E2, 0.7, 0.3 ), \
                                     irit.ctlpt( irit.E2, 0.7, 0.7 ), \
                                     irit.ctlpt( irit.E2, 0.3, 0.7 ) ), irit.list( irit.KV_PERIODIC ) )

tsrf1a = irit.trimsrf(sb1, tcrv1, 0)
irit.color(tsrf1a, irit.CYAN)
irit.interact(tsrf1a)

tsrf1b = irit.trimsrf(sb1, tcrv1, 1) * irit.tz(0.1)
irit.color(tsrf1b, irit.GREEN)
irit.interact(tsrf1b)

tsrf1mesh = irit.list(irit.ffmesh(tsrf1a), irit.ffmesh(tsrf1b))
irit.color(tsrf1mesh, irit.YELLOW)
Ejemplo n.º 19
0
wgl_prisa = irit.prisa(wglass, samppercrv, 0.1, irit.COL, (0, 0.25, 0), 0)
irit.interact(irit.list(view_mat2d, wgl_prisa))
irit.save("prisa2", irit.list(view_mat2d, wgl_prisa))

irit.free(cross)
irit.free(wglass)
irit.free(wgl_prisa)
irit.free(view_mat2d)
irit.free(view_mat3d)

# ############################################################################
#
#  Layout (prisa) Fuselage of b58 model.
#
c1 = irit.circle((0, 0, 0), 0.01) * irit.roty(90) * irit.trans(((-1), 0, 0.1))
c2 = irit.circle((0, 0, 0), 0.025) * irit.roty(90) * irit.trans((0, 0, 0.1))
c3 = irit.circle((0, 0, 0), 0.03) * irit.roty(90) * irit.trans((0.1, 0, 0.1))
c4 = irit.cbspline( 3, irit.list( irit.ctlpt( irit.P3, 1, 2.5, 0, (-0.1 ) ), \
                                  irit.ctlpt( irit.P3, 0.707, 1.77, 0.283, (-0.071 ) ), \
                                  irit.ctlpt( irit.P3, 1, 2.5, 0.4, 0 ), \
                                  irit.ctlpt( irit.P3, 0.707, 1.77, 0.283, 0.283 ), \
                                  irit.ctlpt( irit.P3, 1, 2.5, 0, 0.4 ), \
                                  irit.ctlpt( irit.P3, 0.707, 1.77, (-0.283 ), 0.283 ), \
                                  irit.ctlpt( irit.P3, 1, 2.5, (-0.4 ), 0 ), \
                                  irit.ctlpt( irit.P3, 0.707, 1.77, (-0.283 ), (-0.071 ) ), \
                                  irit.ctlpt( irit.P3, 1, 2.5, 0, (-0.1 ) ) ), irit.list( 0, 0, 0, 1, 1, 2,\
2, 3, 3, 4, 4, 4 ) ) * irit.trans( ( (-1.5 ), 0, 0 ) )
c5 = irit.cbspline( 3, irit.list( irit.ctlpt( irit.P3, 1, 2.5, 0, (-0.1 ) ), \
                                  irit.ctlpt( irit.P3, 0.707, 1.77, 0.283, (-0.071 ) ), \
                                  irit.ctlpt( irit.P3, 1, 2.5, 0.4, 0 ), \
Ejemplo n.º 20
0
                 s1 * irit.sc(2) * irit.ry(180) * irit.trans((2, 0, 0)))
irit.color(srfs, irit.RED)
irit.free(s1)

ts1 = irit.tfromsrfs(srfs, 3, irit.KV_FLOAT)
irit.color(ts1, irit.GREEN)

ts2 = irit.tfromsrfs(srfs, 5, irit.KV_OPEN)
irit.color(ts2, irit.YELLOW)

ts3 = irit.tfromsrfs(srfs, 5, irit.KV_PERIODIC)
irit.color(ts3, irit.MAGENTA)

irit.interact(irit.list(srfs, ts1, ts2, ts3))

s2 = irit.ruledsrf(irit.circle((0, 0, 0), 1), irit.circle((0, 0, 0), 0.7))

srfs = irit.list(s2,
                 s2 * irit.sc(0.5) * irit.tz(0.4), s2 * irit.tz(0.8),
                 s2 * irit.sc(0.5) * irit.tz(1.2))
irit.color(srfs, irit.RED)
irit.free(s2)

ts1 = irit.tfromsrfs(srfs, 3, irit.KV_FLOAT)
irit.color(ts1, irit.GREEN)

ts2 = irit.tfromsrfs(srfs, 5, irit.KV_OPEN)
irit.color(ts2, irit.YELLOW)

ts3 = irit.tfromsrfs(srfs, 5, irit.KV_PERIODIC)
irit.color(ts3, irit.MAGENTA)
Ejemplo n.º 21
0
#

c = irit.cbspline( 4, irit.list( irit.ctlpt( irit.E3, (-0.6 ), (-0.3 ), 0 ), \
                                 irit.ctlpt( irit.E2, 0.6, (-0.3 ) ), \
                                 irit.ctlpt( irit.E2, 0.6, 0.3 ), \
                                 irit.ctlpt( irit.E2, (-0.6 ), 0.3 ) ), irit.list( irit.KV_PERIODIC ) ) * irit.sc( 2 )
d = irit.duality(irit.coerce(c, irit.KV_OPEN))
irit.color(d, irit.YELLOW)

irit.interact(irit.list(c, d))

#
#  An exact circle
#

c = irit.circle((0, 0, 0), 1.1)
d = irit.duality(irit.coerce(c, irit.KV_OPEN))
irit.color(d, irit.YELLOW)

irit.interact(irit.list(c, d, irit.GetAxes()))

c1 = irit.pcircle((0, 0, 0), 1.1)
d1 = irit.duality(irit.coerce(c1, irit.KV_OPEN))
irit.color(d1, irit.YELLOW)

irit.interact(irit.list(c, d, c1, d1, irit.GetAxes()))

#
#  A piecewise linear curve
#
c = irit.cbspline( 2, irit.list( irit.ctlpt( irit.E2, (-0.227 ), 0.243 ), \
Ejemplo n.º 22
0
#This is an IRIT script and as such requires both math and irit import:
#
import math
import irit
#

#
#  A model of a light mill.
#
#                                                Gershon Elber, Dec 1998.
#

circ = irit.cregion(
    irit.circle((0, 0, 0), 0.6) * irit.rz(90) * irit.rx(90) * irit.tz(2.1),
    0.1, 1.9)

bodysec = ( irit.cbspline( 3, irit.list( irit.ctlpt( irit.E3, (-0.5 ), 0, 0 ), \
                                         irit.ctlpt( irit.E3, (-0.5 ), 0, 0.01 ), \
                                         irit.ctlpt( irit.E3, (-0.1 ), 0, 0.05 ), \
                                         irit.ctlpt( irit.E3, (-0.03 ), 0, 0.3 ), \
                                         irit.ctlpt( irit.E3, (-0.03 ), 0, 0.75 ), \
                                         irit.ctlpt( irit.E3, (-0.1 ), 0, 1 ), \
                                         irit.ctlpt( irit.E3, (-0.1 ), 0, 1.1 ), \
                                         irit.ctlpt( irit.E3, (-0.03 ), 0, 1.2 ), \
                                         irit.ctlpt( irit.E3, (-0.03 ), 0, 1.3 ), \
                                         irit.ctlpt( irit.E3, (-0.04 ), 0, 1.31 ), \
                                         irit.ctlpt( irit.E3, (-0.08 ), 0, 1.32 ), \
                                         irit.ctlpt( irit.E3, (-0.09 ), 0, 1.4 ), \
                                         irit.ctlpt( irit.E3, (-0.08 ), 0, 1.5 ) ), irit.list( irit.KV_OPEN ) ) + (-circ ) + irit.cbspline( 3, irit.list( \
                                         irit.ctlpt( irit.E3, (-0.07 ), 0, 2.7 ), \
                                         irit.ctlpt( irit.E3, (-0.07 ), 0, 2.8 ), \
Ejemplo n.º 23
0
#
#  An object that has three projections of a cross, circle and a square.
#

w = 0.4
cross = ( irit.ctlpt( irit.E3, 1, 0, 0 ) + \
          irit.ctlpt( irit.E3, 1, w, 0 ) + \
          irit.ctlpt( irit.E3, w, w, 0 ) + \
          irit.ctlpt( irit.E3, w, 1, 0 ) + \
          irit.ctlpt( irit.E3, 0, 1, 0 ) )

cross = (cross + cross * irit.rz(90) + cross * irit.rz(180) +
         cross * irit.rz(270))

s1 = irit.extrude(cross * irit.tz((-2)), (0, 0, 4), 0)
irit.free(cross)

s2 = irit.extrude(irit.circle((0, 0, 0), 0.999) * irit.tz((-2)),
                  (0, 0, 4), 0) * irit.rx(90)

s = s1 * s2
irit.free(s1)
irit.free(s2)

irit.view(irit.list(irit.GetAxes(), s), irit.ON)
irit.save("crosplug", s)
irit.pause()

irit.free(s)
Ejemplo n.º 24
0
def snaket( t ):
    p =  irit.point( 0, 0, 0 )
    ct = irit.cbspline( 3, irit.list( p * \
									  ctx( 0 + t, 1.5 ) * \
									  irit.ty( 0.22 ), 
									  p * \
									  ctx( 0 + t, 1.5 ) * \
									  irit.ty( 0.22 ), 
									  p * \
									  ctx( 0.3 + t, 1.5 ) * \
									  irit.ty( 0.17 ) * \
									  irit.tz( 0.3 ), 
									  p * \
									  ctx( 2 + t, 1.5 ) * \
									  irit.ty( (-0.06 ) ) * \
									  irit.tz( 2 ), 
									  p * \
									  ctx( 4 + t, 1.5 ) * \
									  irit.ty( (-0.06 ) ) * \
									  irit.tz( 4 ), 
									  p * \
									  ctx( 6 + t, 1.5 ) * \
									  irit.ty( (-0.06 ) ) * \
									  irit.tz( 6 ), 
									  p * \
									  ctx( 8 + t, 2.5 ) * \
									  irit.ty( (-0.065 ) ) * \
									  irit.tz( 8 ), 
									  p * \
									  ctx( 10 + t, 2.5 ) * \
									  irit.ty( (-0.07 ) ) * \
									  irit.tz( 10 ), 
									  p * \
									  ctx( 12 + t, 2.5 ) * \
									  irit.ty( (-0.075 ) ) * \
									  irit.tz( 12 ), 
									  p * \
									  ctx( 14 + t, 1.5 ) * \
									  irit.ty( (-0.08 ) ) * \
									  irit.tz( 14 ), 
									  p * \
									  ctx( 16 + t, 1.5 ) * \
									  irit.ty( (-0.09 ) ) * \
									  irit.tz( 16 ), 
									  p * \
									  ctx( 18 + t, 1.5 ) * 
									  irit.ty( (-0.1 ) ) * 
									  irit.tz( 18 ), 
									  p * \
									  irit.ty( (-0.1 ) ) * \
									  irit.tz( 20 ), 
									  p * \
									  irit.ty( (-0.1 ) ) * \
									  irit.tz( 21 ) ), 
									  irit.list( irit.KV_OPEN ) )
    c = irit.circle( ( 0, 0, 0 ), 0.36 ) * irit.rz( (-90 ) )
    scalecrv = irit.cbspline( 3, irit.list( irit.ctlpt( irit.E2, 0, 0.001 ), \
                                             irit.ctlpt( irit.E2, 0.1, 0.1 ), \
                                             irit.ctlpt( irit.E2, 0.2, 0.4 ), \
                                             irit.ctlpt( irit.E2, 0.3, 0.7 ), \
                                             irit.ctlpt( irit.E2, 0.4, 0.8 ), \
                                             irit.ctlpt( irit.E2, 0.5, 0.9 ), \
                                             irit.ctlpt( irit.E2, 0.6, 0.95 ), \
                                             irit.ctlpt( irit.E2, 0.7, 1 ), \
                                             irit.ctlpt( irit.E2, 0.8, 1 ) ), irit.list( irit.KV_OPEN ) )
    s1 = irit.swpsclsrf( c, ct, scalecrv, irit.vector( 0, 1, 0 ), 1 )
    irit.attrib( s1, "ptexture", irit.GenStrObject("snake2.gif,1,30" ))
    s2 = irit.sfromcrvs( irit.list( c * \
									irit.ty( (-0.1 ) ) * \
									irit.tz( 21 ), 
									c * \
									irit.ty( (-0.1 ) ) * \
									irit.tz( 22 ), 
									c * \
									irit.ty( (-0.14 ) ) * \
									irit.sx( 2.2 ) * \
									irit.sy( 1.2 ) * \
									irit.tz( 23 ), 
									c * \
									irit.ty( (-0.14 ) ) * \
									irit.sx( 2.2 ) * \
									irit.sy( 1.2 ) * \
									irit.tz( 24 ), 
									c * \
									irit.sy( 0.9 ) * \
									irit.ty( (-0.1 ) ) * \
									irit.sx( 1.2 ) * \
									irit.tz( 25 ), 
									c * \
									irit.ty( (-0.1 ) ) * \
									irit.sc( 0.001 ) * \
									irit.tz( 25 ) ), 
									3, 
									irit.KV_OPEN )
    irit.attrib( s2, "ptexture", irit.GenStrObject("snake2.gif,1,5" ))
    eyes = irit.list( irit.sphere( ( 0.42, (-0.35 ), 24.5 ), 0.1 ), irit.sphere( ( (-0.42 ), (-0.35 ), 24.5 ), 0.1 ) )
    irit.color( eyes, irit.BLACK )
    retval = irit.list( s1, s2, eyes ) * irit.rx( (-90 ) ) * irit.tz( 0.261 )
    return retval
Ejemplo n.º 25
0
    dpath = irit.cderive(path)
    while (t < irit.FetchRealObject(irit.nth(crvdomain, 2))):
        d = irit.Fetch3TupleObject(
            irit.coerce(irit.ceval(dpath, t), irit.POINT_TYPE))
        dlen = math.sqrt(DotProd(d, d))

        rot_x = irit.creparam(rot_x, animtime, animtime + piecetimestep)
        irit.attrib(dominopiece, "animation", irit.list(rot_x))
        irit.setname(irit.getattr(dominopiece, "animation"), 0, "rot_x")

        dp = dominopiece * irit.rz(
            -math.atan2(d[0], d[1]) * 180 / math.pi) * irit.trans(
                irit.Fetch3TupleObject(
                    irit.coerce(irit.ceval(path, t), irit.VECTOR_TYPE)))
        irit.snoc(dp, retval)

        t = t + 0.04 * scl / dlen
        animtime = animtime + piecetimestep * 0.6
    return retval


doms = dominos(irit.circle((0, 0, 0), 1), 1.5, 0.1)

irit.view(irit.list(irit.GetAxes(), doms), irit.ON)

irit.pause()

irit.save("dominos", doms)

irit.free(doms)
Ejemplo n.º 26
0

#
#  Set a global variable in a function.
#

dumvar = irit.rotx(10)


def modaxes():
    dumvar = (1, 2, 3)
    retval = dumvar
    return retval


irit.save( "functn3", irit.list( crvlength( irit.circle( ( 0, 0, 0 ), 1 ), 30 )/2, \
           crvlength( irit.circle( ( 0, 0, 0 ), 1 ), 100 )/2, \
           crvlength( irit.circle( ( 0, 0, 0 ), 1 ), 300 )/2, \
           dumvar,\
           modaxes(), \
           dumvar ) )

irit.free(dumvar)


#
#  Make sure operator overloading is still valid inside a function:
#
def add(x, y):
    retval = (x + y)
    return retval
Ejemplo n.º 27
0
#
#  2D pocketing: rounded pockets with holes
#

pocket4a = irit.cbspline( 4, irit.list( irit.ctlpt( irit.E2, 0.065, 0.582 ), \
                                        irit.ctlpt( irit.E2, 0.672, 0.546 ), \
                                        irit.ctlpt( irit.E2, 0.901, 0.213 ), \
                                        irit.ctlpt( irit.E2, 0.735, (-0.371 ) ), \
                                        irit.ctlpt( irit.E2, 0.267, (-0.645 ) ), \
                                        irit.ctlpt( irit.E2, (-0.33 ), (-0.542 ) ), \
                                        irit.ctlpt( irit.E2, (-0.137 ), (-0.106 ) ), \
                                        irit.ctlpt( irit.E2, 0.29, (-0.133 ) ), \
                                        irit.ctlpt( irit.E2, 0.555, (-0.088 ) ), \
                                        irit.ctlpt( irit.E2, 0.569, 0.182 ), \
                                        irit.ctlpt( irit.E2, (-0.029 ), 0.29 ) ), irit.list( irit.KV_PERIODIC ) ) * irit.tx( (-0.2 ) )
pocket4b = irit.circle((0, 0, 0), 1)
pocket4c = (-irit.circle(((-0.55), 0.15, 0), 0.2))

pocket4 = irit.list(pocket4a, pocket4b, pocket4c)
pocket4 = irit.coerce(pocket4, irit.KV_OPEN)
irit.color(pocket4, irit.RED)

tpath = irit.ncpcktpath( pocket4, (-0.08 ), (-0.1 ), 0.05, 0.5, 0,\
1 )
irit.attrib(tpath, "ncretractzlevel", irit.GenRealObject(1))
irit.attrib(tpath, "ncmaxxybridgegap", irit.GenRealObject(0.2))

#  Polygons with holes -first must be outer loop.
pocket4pl = irit.mergepoly(
    irit.list(irit.cnvrtcrvtopolygon(pocket4b, 150, 0),
              irit.cnvrtcrvtopolygon(pocket4a, 150, 0),
Ejemplo n.º 28
0
            irit.color(irit.nref(arcs, i), irit.YELLOW)
        else:
            irit.color(irit.nref(arcs, i), irit.MAGENTA)
        i = i + 1
    irit.printf("%d arcs were used in this approximation\n",
                irit.list(irit.SizeOf(arcs)))
    irit.color(crv, irit.CYAN)
    irit.interact(irit.list(irit.GetAxes(), crv, arcs))


irit.viewstate("pllnaprx", 1)
irit.viewstate("pllnaprx", 1)

# ######################################################

c1 = irit.cregion(irit.circle((0, 0, 0), 1), 0, 1)

drawbiarcs(c1, 0.1, 180)

drawbiarcs(c1, 1e-006, 180)

drawbiarcs(c1, 1e-006, 10)

# ######################################################

c1 = irit.cbspline( 3, irit.list( irit.ctlpt( irit.E2, 1, 0 ), \
                                  irit.ctlpt( irit.E2, 1, 1 ), \
                                  irit.ctlpt( irit.E2, 0, 1 ) ), irit.list( irit.KV_OPEN ) )

drawbiarcs(c1, 0.5, 180)
Ejemplo n.º 29
0
#
import math
import irit
#

#
#  A model of a twin bed (actually built!)
#
#                        Gershon Elber, June 1995
#

#
#  All units are in centimeters.
#

circ = irit.circle((0, 0, 0), 3)

arc0 = irit.cregion(circ, 0, 1.5)
arc1 = irit.cregion(circ, 0.5, 1.5)
arc2 = irit.cregion(circ, 1, 1.5)
arc3 = irit.cregion(circ, 0.5, 1)
arc4 = irit.cregion(circ, 0.7, 1.5)
arc5 = irit.cregion(circ, 0.7, 1.3)
arc6 = irit.cregion(circ, 0.7, 1)
arc7 = irit.cregion(circ, 1, 1.3)
arc8 = irit.cregion(circ, 0.5, 1.3)
arc9 = irit.cregion(circ, 0.7, 1.5)
irit.free(circ)

prof1 = ((-arc1) + (-arc2) * irit.tx(4.6))
prof1a = prof1 * irit.sy(2)
Ejemplo n.º 30
0
c1 = irit.cbspline( 3, irit.list( irit.ctlpt( irit.P3, 1, 2.5, 0, (-0.1 ) ), \
                                  irit.ctlpt( irit.P3, 0.707, 1.77, 0.283, (-0.071 ) ), \
                                  irit.ctlpt( irit.P3, 1, 2.5, 0.4, 0 ), \
                                  irit.ctlpt( irit.P3, 0.707, 1.77, 0.283, 0.566 ), \
                                  irit.ctlpt( irit.P3, 1, 2.5, 0, 0.8 ), \
                                  irit.ctlpt( irit.P3, 0.707, 1.77, (-0.283 ), 0.566 ), \
                                  irit.ctlpt( irit.P3, 1, 2.5, (-0.4 ), 0 ), \
                                  irit.ctlpt( irit.P3, 0.707, 1.77, (-0.283 ), (-0.071 ) ), \
                                  irit.ctlpt( irit.P3, 1, 2.5, 0, (-0.1 ) ) ), irit.list( 0, 0, 0, 1, 1, 2,\
2, 3, 3, 4, 4, 4 ) ) * irit.trans( ( 0, 0, 0 ) )
irit.color(c1, irit.RED)
c2 = c1 * irit.scale((1.05, 1.05, 1.05)) * irit.trans((0.3, 0, 0))
irit.color(c2, irit.RED)
c3 = c1 * irit.scale((0.95, 0.95, 0.95)) * irit.trans((1.7, 0, (-0.02)))
irit.color(c3, irit.RED)
c4 = irit.circle((0, 0, 0), 0.35) * irit.roty(90) * irit.trans((5, 0, 0.2))
irit.color(c4, irit.RED)
c5 = c4 * irit.trans((0.2, 0, 0))
irit.color(c5, irit.RED)
c6 = irit.circle((0, 0, 0), 0.3) * irit.roty(90) * irit.trans((10.5, 0, 0.2))
irit.color(c6, irit.RED)
c7 = irit.circle((0, 0, 0), 0.01) * irit.roty(90) * irit.trans((11, 0, 0.25))
irit.color(c7, irit.RED)

fuseback = irit.sfromcrvs( irit.list( c1, c2, c3, c4, c5, c6,\
c7 ), 3, irit.KV_OPEN )
irit.color(fuseback, irit.RED)

irit.SetViewMatrix(
    irit.rotx((-90)) * irit.trans(((-3), 0, 0)) * irit.scale((0.5, 0.5, 0.5)))