Exemplo n.º 1
0
def evalonebitangency(srfs, pts):
    ruling = irit.nil()
    tmp1pts = irit.nil()
    tmp2pts = irit.nil()
    if (irit.ThisObject(srfs) == irit.SURFACE_TYPE):
        srf1 = srfs
        srf2 = srfs
    else:
        srf1 = irit.nth(srfs, 1)
        srf2 = irit.nth(srfs, 2)
    i = 1
    while (i <= irit.SizeOf(pts)):
        pt = irit.nth(pts, i)
        pt1 = irit.seval(srf1, irit.FetchRealObject(irit.coord(pt, 1)),
                         irit.FetchRealObject(irit.coord(pt, 2)))
        pt2 = irit.seval(srf2, irit.FetchRealObject(irit.coord(pt, 3)),
                         irit.FetchRealObject(irit.coord(pt, 4)))
        irit.snoc(pt1 + pt2, ruling)
        irit.snoc(pt1 * irit.tx(0), tmp1pts)
        irit.snoc(pt2 * irit.tx(0), tmp2pts)
        i = i + 1
    irit.attrib(ruling, "rgb", irit.GenStrObject("255, 128, 128"))
    if (irit.SizeOf(tmp1pts) > 1 and irit.SizeOf(tmp2pts) > 1):
        tmp1pts = irit.poly(tmp1pts, irit.TRUE)
        tmp2pts = irit.poly(tmp2pts, irit.TRUE)
        irit.attrib(tmp1pts, "rgb", irit.GenStrObject("128, 255, 128"))
        irit.attrib(tmp2pts, "rgb", irit.GenStrObject("128, 255, 128"))
        retval = irit.list(ruling, tmp1pts, tmp2pts)
    else:
        retval = irit.nil()
    return retval
Exemplo n.º 2
0
def bishop(s, clr):
    retval = (-irit.surfprev( irit.cbspline( 3, irit.list( irit.ctlpt( irit.E2, 0.0001, 0.82 ), \
                                                            irit.ctlpt( irit.E2, 0.028, 0.82 ), \
                                                            irit.ctlpt( irit.E2, 0.028, 0.77 ), \
                                                            irit.ctlpt( irit.E2, 0.01, 0.77 ), \
                                                            irit.ctlpt( irit.E2, 0.01, 0.765 ), \
                                                            irit.ctlpt( irit.E2, 0.06, 0.76 ), \
                                                            irit.ctlpt( irit.E2, 0.09, 0.69 ), \
                                                            irit.ctlpt( irit.E2, 0.06, 0.625 ), \
                                                            irit.ctlpt( irit.E2, 0.02, 0.62 ), \
                                                            irit.ctlpt( irit.E2, 0.02, 0.61 ), \
                                                            irit.ctlpt( irit.E2, 0.08, 0.6 ), \
                                                            irit.ctlpt( irit.E2, 0.08, 0.59 ), \
                                                            irit.ctlpt( irit.E2, 0.03, 0.58 ), \
                                                            irit.ctlpt( irit.E2, 0.03, 0.56 ), \
                                                            irit.ctlpt( irit.E2, 0.12, 0.55 ), \
                                                            irit.ctlpt( irit.E2, 0.12, 0.53 ), \
                                                            irit.ctlpt( irit.E2, 0.05, 0.51 ), \
                                                            irit.ctlpt( irit.E2, 0.07, 0.29 ), \
                                                            irit.ctlpt( irit.E2, 0.18, 0.12 ), \
                                                            irit.ctlpt( irit.E2, 0.18, 0 ) ), irit.list( irit.KV_OPEN ) ) * irit.rx( 90 ) ) ) * irit.sc( s )
    bishoptop = irit.sregion(retval, irit.ROW, 0, 0.1)
    bishopbody = irit.sregion(retval, irit.ROW, 0.1, 1)
    irit.attrib(bishoptop, "rgb", irit.GenStrObject("255,255,100"))
    irit.attrib(bishopbody, "rgb", irit.GenStrObject(clr))
    retval = irit.list(bishopbody, bishoptop)
    return retval
Exemplo n.º 3
0
def crvtrcolorblend2( k, h, r1, g1, b1, r2,\
    g2, b2, r3, g3, b3, r4,\
    g4, b4, r5, g5, b5, r6,\
    g6, b6 ):
    if ( k > 1 ):
        k = 1
    if ( h > 1 ):
        h = 1
    t1 = ( 1 - k ) * ( 1 - h )
    t2 = ( 1 - k ) * h
    t3 = k * ( 1 - h )
    t4 = k * h
    if ( h > 0 ):
        retval = irit.GenStrObject(str(int(t1 * r1 + t2 * r2 + t3 * r3 + t4 * r4)) + \
									   "," + \
									   str(int(t1 * g1 + t2 * g2 + t3 * g3 + t4 * g4)) + \
									   "," + \
									   str(int(t1 * b1 + t2 * b2 + t3 * b3 + t4 * b4)) )
    else:
        retval = irit.GenStrObject(str(int(t1 * r1 + t2 * r2 + t3 * r5 + t4 * r6)) + \
								   "," + \
								   str(int(t1 * g1 + t2 * g2 + t3 * g5 + t4 * g6)) + \
								   "," + \
								   str(int(t1 * b1 + t2 * b2 + t3 * b5 + t4 * b6)) )
    return retval
Exemplo n.º 4
0
def virttree3(pos, dir, size, blevel, level):
    retval = irit.nil()
    newpos = (pos + dir)
    if (level > 0):
        tr = treebranch(pos, newpos, size)
        if (level >= blevel):
            irit.color(tr, bcolor)
            irit.attrib(tr, "ptexture", irit.GenStrObject("trunk.rle"))
            irit.attrib(tr, "rgb", irit.GenStrObject(brgb))
        else:
            irit.color(tr, lcolor)
            irit.attrib(tr, "rgb", irit.GenStrObject(lrgb))
            irit.attrib(tr, "ptexture", irit.GenStrObject("leaves.rle"))
        irit.snoc(tr, retval)
    if (level > 1):
        tr1 = virttree3(newpos,
                        rotatevector2(dir, rfactor) * lfactor, size * wfactor,
                        blevel, level - 1)
        tr2 = virttree3(
            newpos,
            rotatevector2(dir, rfactor * irit.random((-1), 1)) * lfactor,
            size * wfactor, blevel, level - 1)
        tr3 = virttree3(newpos,
                        rotatevector2(dir, (-rfactor)) * lfactor,
                        size * wfactor, blevel, level - 1)
        retval = retval + tr1 + tr2 + tr3
    return retval
Exemplo n.º 5
0
def rook(s, clr):
    rookbase = (-irit.surfprev( ( irit.ctlpt( irit.E2, 0.001, 0.55 ) + \
                                   irit.ctlpt( irit.E2, 0.11, 0.55 ) + \
                                   irit.ctlpt( irit.E2, 0.11, 0.63 ) + \
                                   irit.ctlpt( irit.E2, 0.13, 0.63 ) + irit.cbspline( 3, irit.list( \
                                   irit.ctlpt( irit.E2, 0.13, 0.53 ), \
                                   irit.ctlpt( irit.E2, 0.05, 0.51 ), \
                                   irit.ctlpt( irit.E2, 0.07, 0.29 ), \
                                   irit.ctlpt( irit.E2, 0.18, 0.12 ), \
                                   irit.ctlpt( irit.E2, 0.18, 0 ) ), irit.list( irit.KV_OPEN ) ) ) * irit.rx( 90 ) ) )
    axs = irit.crefine( irit.creparam( irit.pcircle( ( 0, 0, 0 ), 1 ), 0, 1 ),\
    0, irit.list( 0.05, 0.1, 0.15, 0.2, 0.3, 0.35,\
    0.4, 0.45, 0.55, 0.6, 0.65, 0.7,\
    0.8, 0.85, 0.9, 0.95 ) )
    scl = irit.cbspline( 2, irit.list( \
                                   irit.ctlpt( irit.E2, 0, 0.01 ), \
                                   irit.ctlpt( irit.E2, 0.5, 0.01 ), \
                                   irit.ctlpt( irit.E2, 0.5, 1 ), \
                                   irit.ctlpt( irit.E2, 1, 1 ), \
                                   irit.ctlpt( irit.E2, 0, 0.01 ) ), irit.list( 0, 0, 0.7, 0.701, 1.999, 2,\
    3 ) )
    scl = irit.creparam( scl + scl * irit.tx( 1 ) + scl * irit.tx( 2 ) + scl * irit.tx( 3 ) + scl * irit.tx( 4 ) + scl * irit.tx( 5 ) + \
                                   irit.ctlpt( irit.E2, 6, 0.01 ), 0, 1 )
    rookwall = irit.swpsclsrf( \
                                   irit.ctlpt( irit.E2, (-0.08 ), 0 ) + \
                                   irit.ctlpt( irit.E2, 0.08, 0 ) + \
                                   irit.ctlpt( irit.E2, 0.08, 0.6 ) + \
                                   irit.ctlpt( irit.E2, (-0.08 ), 0.6 ) + \
                                   irit.ctlpt( irit.E2, (-0.08 ), 0 ), axs, scl, irit.point( 0, 0, 1 ), 2 ) * irit.sc( 0.12 ) * irit.tz( 0.63 )
    irit.attrib(rookwall, "rgb", irit.GenStrObject("255,255,100"))
    irit.attrib(rookbase, "rgb", irit.GenStrObject(clr))
    retval = irit.list(rookbase, rookwall) * irit.sc(s)
    return retval
Exemplo n.º 6
0
def buildvisibilitymap( c, step, highlightangle ):
    retval = irit.nil(  )
    i = 0
    while ( i <= 360 ):
        dir =  irit.point( math.cos( i * math.pi/180 ), math.sin( i * 3.14159/180 ), 0 )
        crvs = irit.cvisible( c, irit.Fetch3TupleObject(dir), 1e-005 )
        crvdmn = cnvrtcrvs2domains( crvs, i )
        if ( highlightangle == i ):
            irit.attrib( crvdmn, "width", irit.GenRealObject(0.01 ))
            irit.attrib( crvdmn, "gray", irit.GenRealObject(0 ))
            irit.attrib( crvdmn, "rgb", irit.GenStrObject("255, 255, 128" ))
            irit.adwidth( crvdmn, 3 )
            highcrvdmn = crvdmn * irit.sx( 1/360.0 )
            irit.attrib( crvs, "width", irit.GenRealObject(0.03 ))
            irit.adwidth( crvs, 3 )
            irit.attrib( crvs, "rgb", irit.GenStrObject("255, 255, 128" ))
            irit.snoc( crvs, retval )
        else:
            irit.attrib( crvdmn, "width", 0.01 )
            irit.attrib( crvdmn, "gray", 0.5 )
            irit.attrib( crvdmn, "rgb", "128, 128, 255" )
            irit.snoc( crvdmn * irit.sx( 1/360 ), retval )
        i = i + step
    retval = ( retval + irit.list( highcrvdmn ) )
    return retval
Exemplo n.º 7
0
def queen(s, clr):
    queenbase = (-irit.surfprev( irit.cbspline( 3, irit.list( irit.ctlpt( irit.E2, 0.001, 1.01 ), \
                                                               irit.ctlpt( irit.E2, 0.02, 1.01 ), \
                                                               irit.ctlpt( irit.E2, 0.02, 0.972 ), \
                                                               irit.ctlpt( irit.E2, 0.01, 0.972 ), \
                                                               irit.ctlpt( irit.E2, 0.01, 0.97 ), \
                                                               irit.ctlpt( irit.E2, 0.09, 0.96 ), \
                                                               irit.ctlpt( irit.E2, 0.1, 0.912 ), \
                                                               irit.ctlpt( irit.E2, 0.1, 0.911 ), \
                                                               irit.ctlpt( irit.E2, 0.12, 0.911 ), \
                                                               irit.ctlpt( irit.E2, 0.12, 0.91 ), \
                                                               irit.ctlpt( irit.E2, 0.09, 0.84 ), \
                                                               irit.ctlpt( irit.E2, 0.07, 0.76 ), \
                                                               irit.ctlpt( irit.E2, 0.07, 0.74 ), \
                                                               irit.ctlpt( irit.E2, 0.085, 0.74 ), \
                                                               irit.ctlpt( irit.E2, 0.085, 0.72 ), \
                                                               irit.ctlpt( irit.E2, 0.07, 0.72 ), \
                                                               irit.ctlpt( irit.E2, 0.07, 0.7 ), \
                                                               irit.ctlpt( irit.E2, 0.1, 0.68 ), \
                                                               irit.ctlpt( irit.E2, 0.1, 0.66 ), \
                                                               irit.ctlpt( irit.E2, 0.14, 0.64 ), \
                                                               irit.ctlpt( irit.E2, 0.14, 0.62 ), \
                                                               irit.ctlpt( irit.E2, 0.06, 0.57 ), \
                                                               irit.ctlpt( irit.E2, 0.09, 0.33 ), \
                                                               irit.ctlpt( irit.E2, 0.21, 0.14 ), \
                                                               irit.ctlpt( irit.E2, 0.21, 0 ) ), irit.list( irit.KV_OPEN ) ) * irit.rx( 90 ) ) )
    queencrwn = (-irit.swpsclsrf( \
                                                               irit.ctlpt( irit.E2, (-0.1 ), 0 ) + \
                                                               irit.ctlpt( irit.E2, 0.1, 0 ) + \
                                                               irit.ctlpt( irit.E2, (-0.42 ), (-0.7 ) ) + \
                                                               irit.ctlpt( irit.E2, (-0.44 ), (-0.7 ) ) + \
                                                               irit.ctlpt( irit.E2, (-0.1 ), 0 ), irit.pcircle( ( 0, 0, 0 ), 1 ), irit.creparam( irit.coerce( irit.cbspline( 3, irit.list( \
                                                               irit.ctlpt( irit.E2, 0, (-0.3 ) ), \
                                                               irit.ctlpt( irit.E2, 1, 1.5 ), \
                                                               irit.ctlpt( irit.E2, 2, (-0.3 ) ), \
                                                               irit.ctlpt( irit.E2, 3, 1.5 ), \
                                                               irit.ctlpt( irit.E2, 4, (-0.3 ) ), \
                                                               irit.ctlpt( irit.E2, 5, 1.5 ), \
                                                               irit.ctlpt( irit.E2, 6, (-0.3 ) ), \
                                                               irit.ctlpt( irit.E2, 7, 1.5 ), \
                                                               irit.ctlpt( irit.E2, 8, (-0.3 ) ), \
                                                               irit.ctlpt( irit.E2, 9, 1.5 ), \
                                                               irit.ctlpt( irit.E2, 10, (-0.3 ) ), \
                                                               irit.ctlpt( irit.E2, 11, 1.5 ) ), irit.list( irit.KV_PERIODIC ) ), irit.KV_OPEN ), 0, 1 ), irit.point( 0, 0, (-1 ) ), 2 ) ) * irit.sc( 0.11 ) * irit.tz( 0.911 )
    irit.attrib(queencrwn, "rgb", irit.GenStrObject("255,255,100"))
    irit.attrib(queenbase, "rgb", irit.GenStrObject(clr))
    retval = irit.list(queenbase, queencrwn) * irit.sc(s)
    return retval
Exemplo n.º 8
0
def computeparaboliclines(s):
    retval = irit.sparabolc(s, 1)
    irit.adwidth(retval, 2)
    irit.awidth(retval, 0.01)
    irit.attrib(retval, "gray", irit.GenRealObject(0.5))
    irit.attrib(retval, "rgb", irit.GenStrObject("100,255,255"))
    return retval
Exemplo n.º 9
0
def antanim(scl):
    save_res = irit.GetResolution()
    bodyall = antbody()
    body = irit.nth(bodyall, 1)
    eyes = irit.nth(bodyall, 2)
    llegs = irit.list(
        antlleganim(1) * irit.sc(1.1) * irit.sx(1.3) * irit.ry(
            (-45)) * irit.trans((0.1, 0, 1.02)),
        antlleganim((-1)) * irit.sc(1.3) * irit.ry(10) * irit.trans(
            (0.1, 0.05, 1)),
        antlleganim(1) * irit.sc(1.2) * irit.sx(1.4) * irit.ry(40) *
        irit.trans((0.1, 0.02, 0.95)))
    rlegs = irit.list(
        antrleganim(
            (-1)) * irit.sc(1.1) * irit.sx(1.3) * irit.ry(45) * irit.trans(
                ((-0.1), 0, 1.02)),
        antrleganim(1) * irit.sc(1.3) * irit.ry((-10)) * irit.trans(
            ((-0.1), 0.05, 1)),
        antrleganim((-1)) * irit.sc(1.2) * irit.sx(1.4) * irit.ry(
            (-40)) * irit.trans(((-0.1), 0.02, 0.95)))
    irit.SetResolution(20)
    antennas = irit.list(
        antantenna() * irit.ry((-110)) * irit.trans(((-0.02), 0.2, 1.6)),
        antantenna() * irit.ry((-70)) * irit.trans((0.02, 0.2, 1.6)))
    irit.attrprop(antennas, "u_resolution", irit.GenRealObject(0.2))
    body = (body + irit.gpolygon(antennas, 1))
    irit.attrib(body, "rgb", irit.GenStrObject("255,50,50"))
    irit.SetResolution(save_res)
    retval = irit.list(
        body, llegs, rlegs,
        eyes) * irit.sz(1.3) * irit.sc(1) * irit.ty(0.28785) * irit.rx(90)
    mov_y = irit.creparam( irit.ctlpt( irit.E1, 0 ) + \
                            irit.ctlpt( irit.E1, (-1 ) ), 0, 1.2 )
    irit.attrib(retval, "animation", mov_y)
    return retval
Exemplo n.º 10
0
def ant(scl):
    save_res = irit.GetResolution()
    bodyall = antbody()
    body = irit.nth(bodyall, 1)
    eyes = irit.nth(bodyall, 2)
    leg = antleg()
    llegs = irit.list(
        leg * irit.sc(1.1) * irit.sx(1.3) * irit.ry((-45)) * irit.trans(
            (0.1, 0, 1.02)),
        leg * irit.sc(1.3) * irit.ry(10) * irit.trans((0.1, 0.05, 1)),
        leg * irit.sc(1.2) * irit.sx(1.4) * irit.ry(40) * irit.trans(
            (0.1, 0.02, 0.95)))
    irit.SetResolution(20)
    irit.attrprop(llegs, "u_resolution", irit.GenRealObject(0.2))
    antennas = irit.list(
        antantenna() * irit.ry((-110)) * irit.trans(((-0.02), 0.2, 1.6)),
        antantenna() * irit.ry((-70)) * irit.trans((0.02, 0.2, 1.6)))
    irit.attrprop(antennas, "u_resolution", irit.GenRealObject(0.2))
    body = (body + irit.gpolygon(llegs, 1) + irit.gpolygon(llegs, 1) * irit.sx(
        (-1)) + irit.gpolygon(antennas, 1))
    irit.attrib(body, "rgb", irit.GenStrObject("255,50,50"))
    irit.SetResolution(save_res)
    retval = irit.list(
        body,
        eyes) * irit.sz(1.3) * irit.sc(1) * irit.ty(0.28785) * irit.rx(90)
    return retval
Exemplo n.º 11
0
def drawtritangencies(srfs, orient, subtol, numtol, savename):
    tritans = irit.srf3tans(srfs, orient, subtol, numtol)
    tritansedges = evaltritangency(srfs, tritans)
    irit.color(tritansedges, irit.YELLOW)
    irit.color(srfs, irit.CYAN)
    if (irit.SizeOf(irit.GenStrObject(savename)) > 0):
        irit.save(savename, irit.list(srfs, tritansedges))
    irit.interact(irit.list(srfs, tritansedges))
Exemplo n.º 12
0
def intercrvspaint(crvs):
    retval = irit.nil()
    i = 1
    while (i <= irit.SizeOf(crvs)):
        crv = irit.nth(crvs, i)
        irit.attrib(crv, "rgb", irit.GenStrObject(getrandrgb()))
        irit.snoc(crv * irit.sc(1), retval)
        i = i + 1
    return retval
Exemplo n.º 13
0
def drawbitangencies( srfs, orient, subtol, numtol, mergetol, merged,\
    savename ):
    bitans = irit.srf2tans(srfs, orient, subtol, numtol, mergetol)
    bitansedges = evalbitangency(srfs, bitans, merged)
    irit.color(bitansedges, irit.YELLOW)
    irit.color(srfs, irit.CYAN)
    if (irit.SizeOf(irit.GenStrObject(savename)) > 0):
        irit.save(savename, irit.list(srfs, bitansedges))
    irit.interact(irit.list(srfs, bitansedges))
Exemplo n.º 14
0
def cubeat(x, y, z):
    retval = irit.box((x - size / 2.0, y - size / 2.0, z - size / 2.0), size,
                      size, size)
    irit.attrib(
        retval, "rgb",
        irit.GenStrObject(
            str(int(irit.random(64, 255))) + "," +
            str(int(irit.random(64, 255))) + "," +
            str(int(irit.random(64, 255)))))
    return retval
Exemplo n.º 15
0
def king(s, clr):
    kingbase = (-irit.surfprev( irit.cbspline( 3, irit.list( irit.ctlpt( irit.E2, 0.001, 1.04 ), \
                                                              irit.ctlpt( irit.E2, 0.04, 1.04 ), \
                                                              irit.ctlpt( irit.E2, 0.04, 1.02 ), \
                                                              irit.ctlpt( irit.E2, 0.06, 1.02 ), \
                                                              irit.ctlpt( irit.E2, 0.06, 1 ), \
                                                              irit.ctlpt( irit.E2, 0.08, 1 ), \
                                                              irit.ctlpt( irit.E2, 0.08, 0.97 ), \
                                                              irit.ctlpt( irit.E2, 0.1, 0.97 ), \
                                                              irit.ctlpt( irit.E2, 0.1, 0.94 ), \
                                                              irit.ctlpt( irit.E2, 0.07, 0.82 ), \
                                                              irit.ctlpt( irit.E2, 0.07, 0.8 ), \
                                                              irit.ctlpt( irit.E2, 0.09, 0.8 ), \
                                                              irit.ctlpt( irit.E2, 0.09, 0.78 ), \
                                                              irit.ctlpt( irit.E2, 0.07, 0.78 ), \
                                                              irit.ctlpt( irit.E2, 0.07, 0.74 ), \
                                                              irit.ctlpt( irit.E2, 0.1, 0.72 ), \
                                                              irit.ctlpt( irit.E2, 0.1, 0.7 ), \
                                                              irit.ctlpt( irit.E2, 0.14, 0.67 ), \
                                                              irit.ctlpt( irit.E2, 0.14, 0.64 ), \
                                                              irit.ctlpt( irit.E2, 0.06, 0.57 ), \
                                                              irit.ctlpt( irit.E2, 0.09, 0.33 ), \
                                                              irit.ctlpt( irit.E2, 0.21, 0.14 ), \
                                                              irit.ctlpt( irit.E2, 0.21, 0 ) ), irit.list( irit.KV_OPEN ) ) * irit.rx( 90 ) ) )
    kingcrosscrv = ( \
                                                              irit.ctlpt( irit.E2, (-0.07 ), 0 ) + \
                                                              irit.ctlpt( irit.E2, (-0.07 ), 0.53 ) + \
                                                              irit.ctlpt( irit.E2, (-0.3 ), 0.53 ) + \
                                                              irit.ctlpt( irit.E2, (-0.3 ), 0.67 ) + \
                                                              irit.ctlpt( irit.E2, (-0.07 ), 0.67 ) + \
                                                              irit.ctlpt( irit.E2, (-0.07 ), 1 ) + \
                                                              irit.ctlpt( irit.E2, 0, 1 ) )
    kingcrosssrf1 = irit.ruledsrf(kingcrosscrv, kingcrosscrv * irit.sx((-1)))
    kingcrosssrf2 = (-kingcrosssrf1) * irit.tz(0.08)
    kingcrosscrv2 = (kingcrosscrv + (-kingcrosscrv) * irit.sx((-1)))
    kingcrosssrf3 = irit.ruledsrf(kingcrosscrv2, kingcrosscrv2 * irit.tz(0.08))
    kingcross = irit.list(
        kingcrosssrf1, kingcrosssrf2, kingcrosssrf3) * irit.tz(
            (-0.04)) * irit.sc(0.16) * irit.rx(90) * irit.tz(1)
    irit.attrib(kingcross, "rgb", irit.GenStrObject("255,255,100"))
    irit.attrib(kingbase, "rgb", irit.GenStrObject(clr))
    retval = irit.list(kingbase, kingcross) * irit.sc(s)
    return retval
Exemplo n.º 16
0
def crvtrcolorblend( k, eps, r1, g1, b1, r2, g2, b2 ):
    t = float(abs( k ))/eps
    if ( t > 1 ):
        t = 1
    t1 = ( 1 - t )
    retval = irit.GenStrObject(str(int(t1 * r1 + t * r2) ) + \
							   "," + \
							   str(int(t1 * g1 + t * g2) ) + \
							   "," + \
							   str(int(t1 * b1 + t * b2) ) )
    return retval
Exemplo n.º 17
0
def extractidparts(obj, id, rgb):
    retval = irit.nil()
    i = 0
    while (i <= irit.SizeOf(obj) - 1):
        p = irit.coord(obj, i)
        if (irit.getattr(p, "id") == irit.GenRealObject(id)):
            irit.snoc(p, retval)
        i = i + 1
    retval = irit.mergepoly(retval)
    irit.attrib(retval, "rgb", irit.GenStrObject(rgb))
    return retval
Exemplo n.º 18
0
def cmpoffalltols(crv, header, fname, dist, tol, steps):
    i = 0
    while (i <= steps):
        irit.printf("\n\n%s: tolerance = %lf, dist = %lf",
                    irit.list(header, tol, dist))
        c1 = irit.offset(crv, irit.GenRealObject(dist), tol, 0)
        c2 = irit.offset(crv, irit.GenRealObject(dist), tol, 1)
        c3 = irit.aoffset(crv, irit.GenRealObject(dist), tol, 0, 0)
        c4 = irit.loffset(crv, dist, 300, irit.SizeOf(c2), 4)
        irit.attrib(c1, "dash", irit.GenStrObject("[0.1 0.01] 0"))
        irit.color(c1, irit.RED)
        irit.attrib(c2, "dash", irit.GenStrObject("[0.01 0.01] 0"))
        irit.color(c2, irit.GREEN)
        irit.attrib(c3, "dash", irit.GenStrObject("[0.2 0.01 0.05 0.01] 0"))
        irit.color(c3, irit.YELLOW)
        irit.attrib(c4, "dash", irit.GenStrObject("[0.1 0.1 0.01 0.01] 0"))
        irit.color(c4, irit.CYAN)
        irit.save(fname + "_" + str(i + 1), irit.list(crv, c1, c2, c3, c4))
        compareoffset(crv, abs(dist), c1, c2, c3, c4)
        tol = tol * math.sqrt(0.1)
        i = i + 1
Exemplo n.º 19
0
def computeviews( c, step, fname ):
    dms = buildvisibilitymap( c, step )
    ranges = irit.nil(  )
    i = 1
    while ( i <= irit.SizeOf( dms ) ):
        ranges = cnvrtcrvs2ranges( irit.nth( dms, i ), i, 1 ) + ranges
        i = i + 1
    irit.printf( "%d views are considered\n", irit.list( irit.SizeOf( dms ) ) )
    cvrs = irit.setcover( ranges, 0.001 )
    cvrcrvs = irit.nil(  )
    i = 1
    while ( i <= irit.SizeOf( cvrs ) ):
        cvr = irit.nth( ranges, irit.FetchRealObject(irit.nth( cvrs, i )) + 1 )
        irit.printf( "curve %d [idx = %d] covers from t = %f to t = %f\n", irit.list( i, irit.getattr( cvr, "index" ), irit.nth( cvr, 1 ), irit.nth( cvr, 2 ) ) )
        irit.snoc( extractcrvregion( c, irit.nth( cvr, 1 ), irit.nth( cvr, 2 ), (irit.getattr( cvr, "index" )/irit.SizeOf( dms ) ) * 360 ), cvrcrvs )
        i = i + 1
    irit.attrib( c, "width", irit.GenRealObject(0.005 ))
    irit.attrib( c, "rgb", irit.GenStrObject("255, 255, 255" ))
    retval = irit.list( c, cvrcrvs )
    if ( irit.SizeOf( irit.GenStrObject( fname ) ) > 0 ):
        irit.save( fname, retval )
    return retval
Exemplo n.º 20
0
def antantenna():
    c = irit.pcircle((0, 0, 0), 0.03) * irit.ry(90)
    retval = (-irit.sfromcrvs(
        irit.list(
            c * irit.sy(1.4) * irit.rz(45) * irit.tx(0.1) * irit.ty((-0.15)),
            c * irit.rz(45) * irit.tx(0.2) * irit.ty(0.2),
            c * irit.sy(1.4) * irit.tx(0.3) * irit.ty(0.4),
            c * irit.rz((-55)) * irit.tx(0.4) * irit.ty(0.15),
            c * irit.sc(0.8) * irit.rz((-45)) * irit.tx(0.5) * irit.ty((-0.1)),
            c * irit.sc(0.65) * irit.rz((-45)) * irit.tx(0.58) * irit.ty(
                (-0.22)),
            c * irit.sc(0.001) * irit.rz((-45)) * irit.tx(0.58) * irit.ty(
                (-0.22))), 3, irit.KV_OPEN))
    irit.attrib(retval, "rgb", irit.GenStrObject("255,50,50"))
    return retval
Exemplo n.º 21
0
def pawn(s, clr):
    retval = (-irit.surfprev( irit.cbspline( 3, irit.list( irit.ctlpt( irit.E2, 0.0001, 0.635 ), \
                                                            irit.ctlpt( irit.E2, 0.06, 0.63 ), \
                                                            irit.ctlpt( irit.E2, 0.08, 0.56 ), \
                                                            irit.ctlpt( irit.E2, 0.06, 0.52 ), \
                                                            irit.ctlpt( irit.E2, 0.03, 0.5 ), \
                                                            irit.ctlpt( irit.E2, 0.03, 0.49 ), \
                                                            irit.ctlpt( irit.E2, 0.1, 0.48 ), \
                                                            irit.ctlpt( irit.E2, 0.1, 0.46 ), \
                                                            irit.ctlpt( irit.E2, 0.04, 0.44 ), \
                                                            irit.ctlpt( irit.E2, 0.05, 0.25 ), \
                                                            irit.ctlpt( irit.E2, 0.15, 0.1 ), \
                                                            irit.ctlpt( irit.E2, 0.15, 0 ) ), irit.list( irit.KV_OPEN ) ) * irit.rx( 90 ) ) ) * irit.sc( s )
    irit.attrib(retval, "rgb", irit.GenStrObject(clr))
    return retval
Exemplo n.º 22
0
def randomcrvs(numcrvs, crvdeg, crvlen, size, dwidth):
    l = irit.nil()
    i = 1
    while (i <= numcrvs):
        irit.snoc(genrandomcrv(crvdeg, crvlen, size), l)
        irit.attrib(irit.nref(l, i), "gray",
                    irit.GenRealObject(irit.random(0.01, 0.7)))
        i = i + 1
    i = 1
    while (i <= numcrvs):
        irit.attrib(irit.nref(l, i), "rgb", irit.GenStrObject(getrandrgb()))
        i = i + 1
    retval = l
    irit.color(retval, irit.RED)
    irit.awidth(retval, 0.01)
    irit.adwidth(retval, dwidth)
    return retval
Exemplo n.º 23
0
def extractcrvregion( crv, t1, t2, idx ):
    if ( irit.FetchRealObject(t1) < 0 ):
        retval = irit.cregion( crv, irit.FetchRealObject(t1) + 1, 1 ) + irit.cregion( crv, 0, irit.FetchRealObject(t2) )
    else:
        retval = irit.cregion( crv, irit.FetchRealObject(t1), irit.FetchRealObject(t2) )
    retval = irit.creparam( retval, 0, 1 )
    tn = irit.vector( 1, 0, 0 ) * irit.rz( irit.FetchRealObject( idx ) )
    retval = irit.list( retval * irit.trans( irit.Fetch3TupleObject( tn * irit.sc( 0.15 ) ) ), 
						irit.arrow3d( irit.coerce( irit.ceval( retval, 0.5 ), 3 ), 
									  tn, 0.35, 0.01, 0.1, 0.02 ) )
    irit.attrib( retval, "width", irit.GenRealObject( irit.random( 0.007, 0.01 ) ) )
    irit.attrib( retval, "gray", irit.GenRealObject( irit.random( 0.2, 0.8 ) ) )
    irit.attrib( retval, "rgb", irit.GenStrObject( str(int(irit.random( 100, 255 ) ) ) + 
								"," + 
								str(int(irit.random( 100, 255 ) ) ) + 
								"," + 
								str(int(irit.random( 100, 255 ) ) ) ) )
    return retval
Exemplo n.º 24
0
def buildoffsetvisibilitymap( c, step, ofst ):
    retval = irit.nil(  )
    co = irit.offset( c, irit.GenRealObject(ofst), 1e-006, 1 )
    tmin = irit.nth( irit.pdomain( co ), 1 )
    tmax = irit.nth( irit.pdomain( co ), 2 )
    t = tmin
    while ( t <= tmax ):
        pt = irit.coerce( irit.ceval( co, irit.FetchRealObject(t) ), irit.POINT_TYPE ) * \
								  irit.tz( 1 )
		
        crvs = irit.cvisible( c, irit.Fetch3TupleObject(pt) , 1e-005 )
        crvdmn = cnvrtcrvs2domains( crvs, t )
        irit.attrib( crvdmn, "width", irit.GenRealObject(0.01) )
        irit.attrib( crvdmn, "gray", irit.GenRealObject(0.5) )
        irit.attrib( crvdmn, "rgb", irit.GenStrObject("128, 128, 255" ))
        irit.snoc( crvdmn, retval )
        t = t + step
    return retval
Exemplo n.º 25
0
def skel2dcolor( prim1, prim2, prim3, eps, mzerotols, drawall, fname ):
    equapt = irit.skel2dint( prim1, prim2, prim3, 100, eps, 300, mzerotols )
    if ( irit.SizeOf( equapt ) > 1 ):
        irit.printf( "%d solutions detected\n", irit.list( irit.SizeOf( equapt ) ) )
    irit.color( equapt, irit.WHITE )
    irit.adwidth( prim1, 2 )
    irit.adwidth( prim2, 2 )
    irit.adwidth( prim3, 2 )
    tans = irit.nil(  )
    edges = irit.nil(  )
    circs = irit.nil(  )
    i = 1
    while ( i <= irit.SizeOf( equapt ) ):
        e = irit.nth( equapt, i )
        clrs = getrandomcolors(  )
        clr = irit.nth( clrs, 1 )
        dclr = irit.nth( clrs, 2 )
        d = irit.getattr( e, "prim1pos" )
        irit.snoc( d, tans )
        irit.snoc( setcolor( irit.coerce( irit.getattr( e, "prim1pos" ), irit.E2 ) + irit.coerce( e, irit.E2 ), dclr ), edges )
        irit.snoc( irit.getattr( e, "prim2pos" ), tans )
        irit.snoc( setcolor( irit.coerce( irit.getattr( e, "prim2pos" ), irit.E2 ) + irit.coerce( e, irit.E2 ), dclr ), edges )
        irit.snoc( irit.getattr( e, "prim3pos" ), tans )
        irit.snoc( setcolor( irit.coerce( irit.getattr( e, "prim3pos" ), irit.E2 ) + irit.coerce( e, irit.E2 ), dclr ), edges )
        irit.snoc( setcolor( irit.pcircle( irit.Fetch3TupleObject(irit.coerce( e, irit.VECTOR_TYPE )), 
										   irit.dstptpt( d, 
														 e ) ), 
							 clr ), 
				   circs )
        i = i + 1
    irit.color( edges, irit.MAGENTA )
    irit.color( tans, irit.GREEN )
    if ( drawall ):
        all = irit.list( prim1, prim2, prim3, edges, tans, circs,\
        equapt )
    else:
        all = irit.list( prim1, prim2, prim3, circs )
    if ( irit.SizeOf( irit.GenStrObject(fname) ) > 0 ):
        irit.save( fname, all )
    irit.view( all, irit.ON )
Exemplo n.º 26
0
def setrandomcolor( obj ):
    irit.attrib( obj, "rgb", irit.GenStrObject(str(int( irit.random( 100, 255 ) )) + "," + str(int( irit.random( 100, 255 ) )) + "," + str(int( irit.random( 100, 255 ) ) )))
    retval = obj
    return retval
Exemplo n.º 27
0
irit.free(prof1a)
irit.free(prof2)
irit.free(prof2a)
irit.free(prof3)
irit.free(prof3a)
irit.free(prof4)
irit.free(prof4a)

leg1 = irit.surfrev(cross1 * irit.ry((-90)))
leg2 = irit.surfrev(cross2 * irit.ry((-90)))
irit.free(cross1)
irit.free(cross2)

legs = irit.list(leg1, leg1 * irit.tx(80), leg2 * irit.trans((0, 190, 0)),
                 leg2 * irit.trans((80, 190, 0)))
irit.attrib(legs, "rgb", irit.GenStrObject("244,164,96"))
irit.free(leg1)
irit.free(leg2)

skel = irit.list( irit.box( ( (-1 ), (-1 ), 25 ), 80, 2, 20 ),\
irit.box( ( (-1 ), (-1 ), 25 ), 2, 190, 20 ),\
irit.box( ( (-1 ), 189, 25 ), 80, 2, 20 ),\
irit.box( ( 79, (-1 ), 25 ), 2, 190, 20 ),\
irit.box( ( (-1 ), 90, 25 ), 80, 2, 20 ) )
irit.attrib(skel, "rgb", irit.GenStrObject("255,255,100"))
irit.viewobj(skel)

cover = irit.box((0, 0, 45), 80, 190, 1)
irit.attrib(cover, "rgb", irit.GenStrObject("244,164,96"))

backcross = irit.cbspline( 3, irit.list( irit.ctlpt( irit.E3, 0, 0, 75 ), \
Exemplo n.º 28
0
#  Seed-initiate the randomizer,
irit.free(ri)

size = 0.25

v1 = (0, 0, 0)
v2 = (size * 3, 0, 0)
v3 = (size * 3, size * 3, 0)
v4 = (0, size * 3, 0)
plaux = irit.poly(irit.list(v1, v2, v3, v4, v1), irit.TRUE)

cubebbox = irit.list(plaux, plaux * irit.tz(size * 3), plaux * irit.rx(90),
                     plaux * irit.rx(90) * irit.ty(size * 3),
                     plaux * irit.ry((-90)),
                     plaux * irit.ry((-90)) * irit.tx(size * 3))
irit.attrib(cubebbox, "rgb", irit.GenStrObject("255, 255, 255"))
irit.free(plaux)


def cubeat(x, y, z):
    retval = irit.box((x - size / 2.0, y - size / 2.0, z - size / 2.0), size,
                      size, size)
    irit.attrib(
        retval, "rgb",
        irit.GenStrObject(
            str(int(irit.random(64, 255))) + "," +
            str(int(irit.random(64, 255))) + "," +
            str(int(irit.random(64, 255)))))
    return retval

Exemplo n.º 29
0
teapot = teapotorig * irit.sc( 0.2 ) * irit.sx( (-1 ) ) * irit.rx( 90 ) * irit.rz( 180 )

s = irit.planesrf( (-1 ), (-1 ), 1, 1 ) * irit.sc( 1.7 )
discs = irit.list( s * irit.sc( 0.01 ) * irit.sx( 2 ) * irit.tx( 0.58 ) * irit.tz( 0.42 ), s * irit.sc( 0.01 ) * irit.sx( 2 ) * irit.tx( 0.62 ) * irit.tz( 0.46 ), s * irit.sc( 0.05 ) * irit.sx( 1.5 ) * irit.tx( 0.65 ) * irit.tz( 0.55 ), s * irit.sc( 0.07 ) * irit.sx( 1.5 ) * irit.tx( 0.7 ) * irit.tz( 0.7 ), s * irit.sc( 0.09 ) * irit.sx( 1.5 ) * irit.tx( 0.65 ) * irit.tz( 0.85 ), s * irit.sc( 0.08 ) * irit.sx( 1.5 ) * irit.tx( 0.7 ) * irit.tz( 1 ), s * irit.sc( 0.07 ) * irit.tx( 0.7 ) * irit.tz( 1.1 ) )
tv = irit.tfromsrfs( discs, 3, irit.KV_OPEN )

#  Create a refined cylinder to warp out of the teapot...

c = irit.creparam( irit.pcircle( ( 0.5, 0.5, 0.001 ), 0.45 ), 0, 1 )
srf = irit.extrude( c, ( 0, 0, 0.99 ), 0 )
srf = irit.srefine( irit.srefine( srf, irit.COL, 0, irit.list( 0.1, 0.2, 0.3, 0.4, 0.6, 0.7,\
0.8, 0.9 ) ), irit.ROW, 0, irit.list( 0.1, 0.2, 0.3, 0.4, 0.5, 0.6,\
0.7, 0.8, 0.9 ) )
warpedsrf = warpsurface( (-srf ), tv )
irit.attrib( warpedsrf, "ptexture", irit.GenStrObject("g.gif" ))

irit.view( irit.list( teapot, warpedsrf ), irit.ON )

irit.save( "warp3trv", all )
irit.pause()

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

irit.SetViewMatrix(  save_mat2)

irit.free( teapotorig )
irit.free( teapot )
irit.free( warpedteapot )
irit.free( clr )
irit.free( warpedsrf )
Exemplo n.º 30
0
c2 = irit.pcircle((1, 2, 3), 1.25)
c2 = irit.creparam(c2, 0, 1)
irit.attrib(c2, "width", irit.GenRealObject(0.02))
irit.attrib(c2, "color", irit.GenRealObject(15))

s1 = irit.sbezier( irit.list( irit.list( irit.ctlpt( irit.E3, 0, 0, 0 ), \
                                         irit.ctlpt( irit.E3, 0.25, 1, 0.5 ), \
                                         irit.ctlpt( irit.E3, 0.5, 0.25, 1 ) ), irit.list( \
                                         irit.ctlpt( irit.E3, 0.5, (-1 ), 0 ), \
                                         irit.ctlpt( irit.E3, 0.75, 0.25, 0.5 ), \
                                         irit.ctlpt( irit.E3, 1, (-0.5 ), 1 ) ), irit.list( \
                                         irit.ctlpt( irit.E3, 1, 0, 0 ), \
                                         irit.ctlpt( irit.E3, 1.25, 1, 0.5 ), \
                                         irit.ctlpt( irit.E3, 1.3, 0.25, 1 ) ) ) )
irit.attrib(s1, "color", irit.GenRealObject(7))
irit.attrib(s1, "rgb", irit.GenStrObject("244,164,96"))

s2 = irit.spheresrf(1.25)
# s2 = sregion( sregion( sphereSrf( 1.25 ), row, 0, 2 ), col, 0, 4 );
s2 = irit.sreparam( irit.sreparam( s2, irit.ROW, 0, 1 ), irit.COL, 0,\
1 )
irit.attrib(s2, "color", irit.GenRealObject(7))
irit.attrib(s2, "rgb", irit.GenStrObject("164,244,96"))

t1 = irit.tbezier( irit.list( irit.list( irit.list( irit.ctlpt( irit.E3, (-0.69 ), 0.31, (-0.6 ) ), \
                                                    irit.ctlpt( irit.E3, (-0.68 ), 0.35, (-0.39 ) ), \
                                                    irit.ctlpt( irit.E3, (-0.67 ), 0.31, (-0.18 ) ) ), irit.list( \
                                                    irit.ctlpt( irit.E3, (-0.66 ), 0.63, (-0.65 ) ), \
                                                    irit.ctlpt( irit.E3, (-0.75 ), 0.67, (-0.23 ) ), \
                                                    irit.ctlpt( irit.E3, (-0.64 ), 0.63, (-0.11 ) ) ), irit.list( \
                                                    irit.ctlpt( irit.E3, (-0.63 ), 0.84, (-0.65 ) ), \