Exemplo n.º 1
0
def textgeom3daux(ply, wdth, dpth):
    retval = irit.nil()
    if (irit.ThisObject(ply) == irit.CURVE_TYPE):
        retval = irit.extrude((-ply), (0, 0, dpth), 0)
    if (irit.ThisObject(ply) == irit.POLY_TYPE):
        retval = irit.extrude(
            irit.ruledsrf(
                irit.offset(ply, irit.GenRealObject(-wdth / 2.0), 0, 0),
                irit.offset(ply, irit.GenRealObject(wdth / 2.0), 0, 0)),
            (0, 0, dpth), 3)
    return retval
Exemplo n.º 2
0
def offsetcrvlist( clst, ofst ):
    retval = irit.nil(  )
    i = 1
    while ( i <= irit.SizeOf( clst ) ):
        irit.snoc( irit.offset( irit.nth( clst, i ), irit.GenRealObject(ofst), 1e-006, 1 ), retval )
        i = i + 1
    return retval
Exemplo n.º 3
0
def cmpoffalltols(crv, fname, dist, tol, steps):
    if (do_offset_compare):
        irit.logfile(fname + "_" + "offset")
        irit.logfile(1)
        t = tol
        irit.printf("# offset (%s)", irit.list(fname))
        i = 0
        while (i <= steps):
            c = irit.offset(crv, dist, t, 0)
            computeerror(crv, irit.abs(dist), c)
            t = t * math.sqrt(0.1)
            i = i + 1
        irit.logfile(fname + "_" + "offseti")
        irit.logfile(1)
        t = tol
        irit.printf("# offseti (%s)", irit.list(fname))
        i = 0
        while (i <= steps):
            c = irit.offset(crv, dist, t, 1)
            computeerror(crv, irit.abs(dist), c)
            t = t * math.sqrt(0.1)
            i = i + 1
        t = tol
        irit.printf("# aoffset (%s)", irit.list(fname))
        irit.logfile(fname + "_" + "aoffset")
        irit.logfile(1)
        i = 0
        while (i <= steps):
            c = irit.aoffset(crv, dist, t, 0, 0)
            computeerror(crv, irit.abs(dist), c)
            t = t * math.sqrt(0.1)
            i = i + 1
        t = tol
        irit.printf("# loffset (%s)", irit.list(fname))
        irit.logfile(fname + "_" + "loffset")
        irit.logfile(1)
        i = 0
        while (i <= steps):
            c = irit.offset(crv, dist, t, 1)
            c = irit.loffset(crv, dist, 300, irit.SizeOf(c), 4)
            computeerror(crv, irit.abs(dist), c)
            t = t * math.sqrt(0.1)
            i = i + 1
        irit.logfile(0)
Exemplo n.º 4
0
def cornerunitbars( w, h, legw, legd ):
    sbar = irit.box( ( legw, 0, 0 ), w - 2 * legw, legd, legw )
    lbar = irit.box( ( legd, 0, 0 ), 2 * w - legd - legw, legd, legw )
    arcbar1 = irit.arc( ( w, 0, 0 ), ( w, w, 0 ), ( 2 * w, w, 0 ) )
    arcbar2 = irit.offset( arcbar1, (-legd ), 0.1, 0 )
    arcbar = irit.list( irit.extrude( arcbar1 + (-arcbar2 ) + irit.ctlpt( irit.E3, w, 0, 0 ), ( 0, 0, legw ), 0 ), irit.ruledsrf( arcbar1, arcbar2 ), irit.ruledsrf( arcbar1, arcbar2 ) * irit.tz( legw ) )
    barframe = irit.list( arcbar, sbar, sbar * irit.tx( w ) * irit.rz( 90 ) * irit.tx( 2 * w ), lbar * irit.rz( 90 ) * irit.tx( legd ), lbar * irit.tx( legw - legd ) * irit.ty( 2 * w - legd ) )
    retval = irit.list( barframe * irit.tz( 0.1 ), barframe * irit.tz( h - 0.1 ) )
    irit.attrprop( retval, "ptexture", woodtext )
    irit.attrprop( retval, "rgb", woodclr )
    return retval
Exemplo n.º 5
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.º 6
0
def cornerunitwalls( w, h, legw, legd ):
    lwall = irit.box( ( legd, 0, 0.2 ), 2 * w - 2 * legd, 0.002, h - 0.3 )
    irit.attrib( lwall, "ptexture", woodtext )
    irit.attrib( lwall, "rgb", woodclr )
    swall = irit.box( ( legd, 0, 0.2 ), w - 2 * legd, 0.002, h - 0.3 )
    irit.attrib( swall, "transp", irit.GenRealObject(0.3 ))
    arcbar1 = irit.arc( ( w, 0, 0 ), ( w, w, 0 ), ( 2 * w, w, 0 ) )
    arcbar2 = irit.offset( arcbar1, irit.GenRealObject(-0.03 ), 0.1, 0 )
    arcbar = irit.list( irit.extrude( arcbar1 + (-arcbar2 ) + irit.ctlpt( irit.E3, w, 0, 0 ), ( 0, 0, 0.03 ), 0 ), irit.ruledsrf( arcbar1, arcbar2 ), irit.ruledsrf( arcbar1, arcbar2 ) * irit.tz( 0.03 ) )
    rdoorframe = irit.list( irit.box( ( w, 0, 0.2 ), 0.03, 0.03, h - 0.3 ),\
    irit.box( ( 2 * w - 0.03, w - 0.03, 0.2 ), 0.03, 0.03, h - 0.3 ),\
    arcbar * irit.tz( 0.2 ), arcbar * irit.tz( h - 0.1 - 0.03 ) )
    irit.attrib( rdoorframe, "ptexture", woodtext )
    irit.attrib( rdoorframe, "rgb", woodclr )
    rdoorglass = irit.extrude( irit.offset( arcbar1, irit.GenRealObject(-0.02 ), 0.1, 0 ) + (-irit.offset( arcbar1, irit.GenRealObject(-0.03 ), 0.1, 0 ) ) + \
                                                               irit.ctlpt( irit.E3, w - 0.02, 0, 0 ), ( 0, 0, h - 0.3 - 0.04 ), 0 ) * irit.tz( 0.22 )
    irit.attrib( rdoorglass, "transp", irit.GenRealObject(0.3 ))
    rdoor = irit.list( rdoorframe, rdoorglass )
    rot_z = ( \
                                                               irit.ctlpt( irit.E1, 0 ) + \
                                                               irit.ctlpt( irit.E1, 130 ) )
    irit.attrib( rdoor, "animation", irit.list( irit.tx( (-w ) ), rot_z, irit.tx( w ) ) )
    retval = irit.list( lwall * irit.ty( 2 * w ), swall * irit.rz( 90 ) * irit.tx( 2 * w ) * irit.ty( w ), lwall * irit.rz( 90 ), swall, rdoor )
    return retval
Exemplo n.º 7
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.º 8
0
trns = irit.trans(((-7.95), 0, (-4.18)))
irit.attrib(backdoor2, "animation", irit.list(trns, rot_y, trns ^ (-1)))
irit.free(rot_y)
irit.free(trns)

#
#  Front door
#
frontdoor = irit.poly(
    irit.list((0, 0.1, 1), (0, 0.4, 1), irit.point(0, 0.4, 1.3),
              irit.point(0, 4.6, 1.3), irit.point(0, 4.6, 1),
              irit.point(0, 4.9, 1), irit.point(0, 4.9, 6.5),
              irit.point(0, 0.1, 6.5)), irit.FALSE)
base = base / irit.extrude(frontdoor * irit.tx((-0.1)), (0.25, 0, 0), 3)
frontdoor = irit.extrude(
    irit.offset(frontdoor * irit.ry(90), irit.GenRealObject(0.05), 0.1, 0) *
    irit.ry((-90)), (0.03, 0, 0), 3)

tmpbody = irit.box(((-0.1), 1, 4), 1, 3, 1)
y = 1
while (y <= 4):
    tmpbody = tmpbody ^ irit.box(((-0.1), y, 2), 1, 0.07, 1)
    y = y + 0.2
frontdoor = frontdoor / tmpbody


frontdoor = irit.list( frontdoor + irit.box( ( 0.01, 2, 5.5 ), 0.3, 1, 0.4 ) - irit.box( ( (-0.1 ), 2.1, 5.55 ), 0.3, 0.8, 0.3 ),\
irit.box( ( 0, 2.12, 5.7 ), 0.02, 0.76, 0.13 ) )

#
#  Front tray
Exemplo n.º 9
0
    irit.interact(irit.list(p, irit.GetAxes()))
    irit.viewstate("drawvnrml", 0)

#
#  reverse surface ( flip normals ).
#
q = irit.gpolygon((-sb), 1)
if (display == 1):
    irit.viewstate("drawvnrml", 1)
    irit.interact(irit.list(q, irit.GetAxes()))
    irit.viewstate("drawvnrml", 0)

#
#  Offset approximation by translation of srf/crv in normal direction.
#
cbo = irit.offset(cb, irit.GenRealObject(0.1), 0.1, 0)
if (display == 1):
    irit.interact(irit.list(irit.GetAxes(), cb, cbo))

sbo = irit.offset(sb, irit.GenRealObject(0.2), 0.1, 0)
if (display == 1):
    irit.interact(irit.list(irit.GetAxes(), sb, sbo))

#
#  Surface and Curve evaluation.
#

irit.save(
    "bezier2",
    irit.list(irit.ceval(cb, 0), irit.ceval(cb, 0.1), irit.ceval(cb, 0.3),
              irit.ceval(cb, 0.5), irit.ceval(cb, 0.9), irit.ceval(cb, 1),
Exemplo n.º 10
0
step = 0.01
ofst = -0.01 






j = 1
while ( j <= irit.SizeOf( crvs ) ):
    c = irit.coerce( irit.nth( crvs, j ), irit.KV_OPEN )
    irit.attrib( c, "rgb", irit.GenStrObject("0,255,128") )
    irit.attrib( c, "gray", irit.GenRealObject(0.5) )
    irit.awidth( c, 0.02 )
    co = irit.offset( c, irit.GenRealObject(ofst), 0.001, 1 )
    dms = buildoffsetvisibilitymap( c, step, ofst )
    irit.attrib( dms, "rgb", irit.GenStrObject("128, 128, 255" ))
    views = computeviews( c, dms, "" )
    viewptcurves = irit.nil(  )
    i = 1
    while ( i <= irit.SizeOf( views ) ):
        t = irit.FetchRealObject(irit.nth( views, i ) * step)
        pt = irit.coerce( irit.ceval( co, t ), irit.POINT_TYPE ) * irit.tz( 1 )
        v = offsetcrvlist( irit.cvisible( c, irit.Fetch3TupleObject(pt), 0.0001 ), 1/100.0 + i/130 )
        irit.attrib( v, "dash", irit.nth( dashlist, i ) )
        irit.awidth( v, 0.009 )
        rgb = randrgb(  )
        pt = pt * irit.sz( 0.01 )
        irit.attrib( v, "rgb", irit.GenStrObject(rgb ))
        irit.attrib( pt, "rgb", irit.GenStrObject(rgb ))
Exemplo n.º 11
0
irit.color(ns, irit.GREEN)
if (display == 1):
    irit.interact(irit.list(irit.GetAxes(), s, ns))

irit.save("nrml2srf", irit.list(irit.GetAxes(), s, ns, dus, dvs))

#
#  Compute two surfaces, one is an offset approximation to the surface and
#  the other is just a translation. Then compute the distance square scalar
#  surface between them and the original surface. With the data below both
#  Should have a distance square of 3 (if exact, the offset is obviously not).
#
s1 = s * irit.trans((1, (-1), 1))
irit.color(s1, irit.GREEN)

s2 = irit.offset(s, irit.GenRealObject(math.sqrt(3)), 1, 0)
irit.color(s2, irit.YELLOW)

dlevel = irit.iritstate("dumplevel", irit.GenRealObject(255))
distsqr1 = irit.symbdprod(irit.symbdiff(s, s1), irit.symbdiff(s, s1))
distsqr2 = irit.symbdprod(irit.symbdiff(s, s2), irit.symbdiff(s, s2))

dlevel = irit.iritstate("dumplevel", dlevel)

irit.save("dist1sqr", irit.list(distsqr1, distsqr2))

irit.free(s)
irit.free(s1)
irit.free(s2)
irit.free(distsqr1)
irit.free(distsqr2)
Exemplo n.º 12
0
s2 = subdivtodepth(tsrf1a, 8, irit.vector(0, 0.01, 0), irit.vector(0.01, 0, 0))
irit.interact(s2)

irit.save("trimsrf5", irit.list(s1, s2))

s1 = subdivtodepth(tsrf3a, 4, irit.vector(0, 0.04, 0), irit.vector(0.02, 0, 0))
irit.interact(s1)

s2 = subdivtodepth(tsrf3a, 8, irit.vector(0, 0.01, 0),
                   irit.vector(0.005, 0, 0))
irit.interact(s2)

irit.save("trimsrf6", irit.list(s1, s2))

offtsrf3a = irit.offset(tsrf3a, irit.GenRealObject(0.3), 1, 0)
irit.interact(irit.list(offtsrf3a, tsrf3a))

irit.save(
    "trimsrf7",
    irit.list(offtsrf3a, tsrf3a, irit.seval(tsrf1a, 0.5, 0.5),
              irit.stangent(tsrf1a, irit.ROW, 0.5, 0.5, 1),
              irit.stangent(tsrf1a, irit.COL, 0.5, 0.5, 1),
              irit.snormal(tsrf1a, 0.5, 0.5), irit.seval(tsrf3a, 0.5, 0.5),
              irit.stangent(tsrf3a, irit.ROW, 0.5, 0.5, 1),
              irit.stangent(tsrf3a, irit.COL, 0.5, 0.5, 1),
              irit.snormal(tsrf3a, 0.5, 0.5)))

irit.interact(irit.strimsrf(tsrf1a))
irit.interact(irit.ctrimsrf(tsrf1a, 1))
irit.interact(irit.ctrimsrf(tsrf3a, 0))
Exemplo n.º 13
0
irit.viewstate( "pllnaprx", 1 )
irit.viewstate( "pllnaprx", 1 )

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

c0 = irit.cbspline( 3, irit.list( irit.ctlpt( irit.E2, (-1 ), 3 ), \
                                  irit.ctlpt( irit.E2, (-0.3 ), 0 ), \
                                  irit.ctlpt( irit.E2, 0.3, 0 ), \
                                  irit.ctlpt( irit.E2, 1, 3 ) ), irit.list( irit.KV_OPEN ) )
irit.view( c0, irit.ON )
i = (-5 )
while ( i <= 5 ):
    if ( i != 0 ):
        ofst = 0.15 * i
        ofsttrim = abs( ofst ) * 0.999
        co = irit.offset( c0, irit.GenRealObject(ofst), 0.0001, 0 )
        none = irit.toffset( c0, co, irit.list( 1, 15, ofsttrim, 0.001 ) )
        irit.color( none, i + 6 )
        irit.viewobj( none )
    i = i + 1
c0off1 = none * irit.tx( 0 )
irit.pause(  )

irit.view( c0, irit.ON )
i = (-5 )
while ( i <= 5 ):
    if ( i != 0 ):
        ofst = 0.15 * i
        ofsttrim = abs( ofst ) * 0.99
        co = irit.offset( c0, irit.GenRealObject(ofst), 0.001, 0 )
        none = irit.toffset( c0, co, irit.list( 2, 0.01, ofsttrim, 1e-008 ) )
Exemplo n.º 14
0
irit.free( dms )
irit.free( crvsdm )
irit.free( vdir )
irit.free( crvse3 )

# ############################################################################
# 
#  View point almost on the boundary from inside (art gallery guards)
# 


res = irit.nil(  )
i = 1
while ( i <= irit.SizeOf( crvs ) ):
    c = irit.nth( crvs, i )
    co = irit.offset( c, irit.GenRealObject(-0.0001 ), 1e-006, 0 )
    tmin = irit.FetchRealObject( irit.nth( irit.pdomain( co ), 1 ) )
    tmax = irit.FetchRealObject( irit.nth( irit.pdomain( co ), 2 ) )
    dt = 0.06
    t = tmin
    while ( t <= tmax ):
        pt = irit.coerce( irit.ceval( co, t ), irit.POINT_TYPE )
        irit.adwidth( pt, 3 )
        irit.color( pt, irit.CYAN )
        vc = irit.cvisible( c, irit.Fetch3TupleObject( pt * irit.tz( 1 ) ), 1e-005 )
        irit.adwidth( vc, 3 )
        irit.color( vc, irit.YELLOW )
        if ( t == 0.12 or t == 0.36 or t == 0.6 or t == 0.84 ):
            irit.snoc( irit.list( pt, vc, c ) * irit.ty( i * 1.6 ) * irit.tx( t * 7 ), res )
        irit.view( irit.list( pt, vc, c ), irit.ON )
        t = t + dt
Exemplo n.º 15
0
                                  irit.ctlpt( irit.E3, 1, (-0.5 ), 0.1 ), \
                                  irit.ctlpt( irit.E3, 1, (-0.2 ), 0.2 ), \
                                  irit.ctlpt( irit.E3, 1.1, 0.3, 0 ), \
                                  irit.ctlpt( irit.E3, 1, 0.6, 0.1 ), \
                                  irit.ctlpt( irit.E3, 0.9, 1, 0 ) ), irit.list( irit.KV_OPEN ) )

s2 = irit.sfromcrvs( irit.list( c1, c2, c3, c4, c5 ), 3,\
irit.KV_OPEN )

ref_knots = irit.list( 0.2, 0.2667, 0.4, 0.4667, 0.5333, 0.6,\
0.7333, 0.8 )
s2r = irit.srefine( irit.srefine( s2, irit.ROW, 0, ref_knots ), irit.COL, 0,\
ref_knots )
irit.free(ref_knots)

s2o = irit.offset(s2r, irit.GenRealObject(0.3), 10, 0)
irit.color(s2o, irit.GREEN)

irit.SetResolution(20)

#
#  Computing self intersection by a Boolean operation with itself - Parametric.
#
dummy = irit.iritstate("intercrv", irit.GenRealObject(1))
dummy = irit.iritstate("uvboolean", irit.GenRealObject(1))
s2ointer = (s2o + s2o)
irit.color(s2ointer, irit.RED)
irit.attrib(s2ointer, "dwidth", irit.GenRealObject(3))

paramdomain = irit.poly(irit.list((0, 0, 0), (0, 1, 0), (1, 1, 0), (1, 0, 0)),
                        irit.FALSE)
Exemplo n.º 16
0
minsize = 0.01
body = irit.sfromcrvs( irit.list( c2 * irit.sc( minsize ) * irit.tz( 0.05 ), c2 * irit.sc( 0.7 ) * irit.tz( 0.05 ), c2 * irit.sc( 0.8 ) * irit.tz( 0.05 ), c2 * irit.sc( 0.9 ), c2, c2 * irit.tz( 2 ), c2 * irit.tz( 2.2 ), c1 * irit.tz( 2.2 ), c1 * irit.tz( 2 ), c1 * irit.tz( 0.4 ), c1 * irit.sc( 0.5 ) * irit.tz( 0.2 ), c1 * irit.sc( minsize ) * irit.tz( 0.2 ) ), 3, irit.KV_OPEN )


handaxis = irit.crefine( irit.cbspline( 3, irit.list( irit.ctlpt( irit.E3, 0, 0, 0 ), \
                                                      irit.ctlpt( irit.E3, 0.3, 0, 0.1 ), \
                                                      irit.ctlpt( irit.E3, 0.5, 0, 0.5 ), \
                                                      irit.ctlpt( irit.E3, 0.5, 0, 0.8 ), \
                                                      irit.ctlpt( irit.E3, 0, 0, 0.8 ) ), irit.list( irit.KV_OPEN ) ), 0, irit.list( 0.1, 0.23, 0.43, 0.57 ) )
handle = irit.swpsclsrf( c1 * irit.sx( 0.7 ), handaxis * irit.sc( 1.5 ), irit.GenRealObject(0.15), irit.list( 0, 1, 0 ), 1 ) * irit.trans( ( 1, 0, 0.4 ) )


cup = irit.list( body, handle )
irit.color( cup, irit.WHITE )

irit.save( "cup", cup )
irit.interact( cup )

bodyin = irit.sregion( body, irit.ROW, 0.6, 1 )
irit.color( bodyin, irit.RED )
bodyout = irit.sregion( body, irit.ROW, 0, 0.6 )
irit.color( bodyout, irit.GREEN )
irit.interact( irit.list( bodyout, bodyin ) )

handleout = handle
irit.color( handleout, irit.RED )
handlein = irit.offset( handleout, irit.GenRealObject(0.05), 0.05, 0 )
irit.color( handlein, irit.GREEN )

irit.interact( irit.list( handleout, handlein ) )
Exemplo n.º 17
0
      createcubicbezier(349, 234, 349, 214, 429, 194) +
      createcubicbezier(429, 194, 509, 174, 409, 194) +
      createcubicbezier(409, 194, 309, 214, 309, 234) +
      createcubicbezier(309, 234, 309, 254, 369, 264) +
      createcubicbezier(369, 264, 429, 274, 429, 294) +
      createcubicbezier(429, 294, 429, 314, 359, 334) +
      createcubicbezier(359, 334, 289, 354, 379, 334))
c3p = irit.cnvrtcrvtopolygon((-c3), 128, 0)
irit.free(c3)

t1 = irit.poly( irit.list( ( 354, 359, 0 ),
         ( 439, 359, 0 ),
         ( 379, 479, 0 ),
         ( 314, 349, 0 ) ), irit.TRUE ) * \
  irit.sc( 0.001 )
t2 = irit.offset(t1, irit.GenRealObject(0.0065), 0, 0)
t3 = irit.offset(t1, irit.GenRealObject(-0.0065), 0, 0)
techlist = irit.nil()
i = 0
while (i <= irit.SizeOf(t2) - 1):
    irit.snoc(irit.coord(t2, i), techlist)
    i = i + 1
i = irit.SizeOf(t3) - 1
while (i >= 0):
    irit.snoc(irit.coord(t3, i), techlist)
    i = i + (-1)

tech = irit.poly(techlist, irit.FALSE)
irit.free(t1)
irit.free(t2)
irit.free(t3)
Exemplo n.º 18
0
def outlinechar(char):
    ochar = irit.offset(char, irit.GenRealObject(-0.02), 0, 0)
    retval = (irit.extrude(char, (0, 0, 1), 3) -
              irit.extrude(ochar, (0, 0, 1.2), 3) * irit.tz((-0.1)))
    return retval
Exemplo n.º 19
0
irit.free(crv1a)
irit.free(crv2a)
irit.free(crv1b)
irit.free(crv2b)

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




crv = irit.cbezier( irit.list( irit.ctlpt( irit.E1, (-0.2 ) ), \
                               irit.ctlpt( irit.E2, 0.25, 1.2 ), \
                               irit.ctlpt( irit.E2, 0.75, 0.7 ), \
                               irit.ctlpt( irit.E2, 1.3, 0.05 ) ) )
crv1 = (-crv)
crv2a = irit.offset(crv1, irit.GenRealObject((-0.8)), 1, 0)
crv2b = irit.offset(crv1, irit.GenRealObject((-0.18)), 1, 0)
irit.save(
    "dist2ff3",
    irit.list(testccdistfunc(crv1, crv2a, irit.nil()),
              testccdistfunc(crv1, crv2a, irit.list(0.5)),
              testccdistfunc(crv1, crv2b, irit.nil()),
              testccdistfunc(crv1, crv2b, irit.list(0.5))))
irit.free(crv)
irit.free(crv1)
irit.free(crv2a)
irit.free(crv2b)

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

Exemplo n.º 20
0

# 
#  Few examples of text warping through surfaces using the textwarp function.
# 
#                                                Gershon Elber, Jan 2003.
# 

c1 = irit.cbezier( irit.list( irit.ctlpt( irit.E2, (-2 ), 0 ), \
                              irit.ctlpt( irit.E2, (-1 ), 1 ), \
                              irit.ctlpt( irit.E2, 0, (-1 ) ), \
                              irit.ctlpt( irit.E2, 1, 0 ) ) )
c2 = irit.cbezier( irit.list( irit.ctlpt( irit.E1, (-0 ) ), \
                              irit.ctlpt( irit.E1, (-1.8 ) ), \
                              irit.ctlpt( irit.E1, (-0 ) ) ) )
s1 = irit.sreparam( irit.ruledsrf( c1, irit.offset( c1, irit.GenRealObject(-0.4 ), 0.02, 0 ) ), irit.COL, 0,\
6 )
irit.color( s1, irit.RED )
t1 = irit.textwarp( s1, "computer graphics", 0.09, 0.25, 0.75, 0 )
irit.color( t1, irit.CYAN )
irit.adwidth( t1, 2 )
irit.interact( irit.list( t1, s1 ) )

t1 = irit.textwarp( s1, "computer graphics", 0.1, 0.25, 0.75, 1 )
irit.color( t1, irit.CYAN )
irit.adwidth( t1, 2 )
irit.interact( irit.list( t1, s1 ) )


s2 = irit.sreparam( irit.ruledsrf( c1, irit.offset( c1, c2, 0.01, 0 ) ), irit.COL, 0,\
6 )