Esempio n. 1
0
def evaltritangency(srfs, pts):
    retval = irit.nil()
    if (irit.ThisObject(srfs) == irit.SURFACE_TYPE):
        srf1 = srfs
        srf2 = srfs
        srf3 = srfs
    else:
        srf1 = irit.nth(srfs, 1)
        srf2 = irit.nth(srfs, 2)
        srf3 = irit.nth(srfs, 3)
    i = 1
    while (i <= irit.SizeOf(pts)):
        pt = irit.nth(pts, i)
        irit.snoc(
            irit.seval(srf1, irit.FetchRealObject(irit.coord(pt, 1)),
                       irit.FetchRealObject(irit.coord(pt, 2))) +
            irit.seval(srf2, irit.FetchRealObject(irit.coord(pt, 3)),
                       irit.FetchRealObject(irit.coord(pt, 4))), retval)
        irit.snoc(
            irit.seval(srf1, irit.FetchRealObject(irit.coord(pt, 1)),
                       irit.FetchRealObject(irit.coord(pt, 2))) +
            irit.seval(srf3, irit.FetchRealObject(irit.coord(pt, 5)),
                       irit.FetchRealObject(irit.coord(pt, 6))), retval)
        irit.snoc(
            irit.seval(srf2, irit.FetchRealObject(irit.coord(pt, 3)),
                       irit.FetchRealObject(irit.coord(pt, 4))) +
            irit.seval(srf3, irit.FetchRealObject(irit.coord(pt, 5)),
                       irit.FetchRealObject(irit.coord(pt, 6))), retval)
        i = i + 1
    return retval
Esempio n. 2
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
Esempio n. 3
0
def dominos(path, scl, piecetimestep):
    retval = irit.nil()
    animtime = 0
    dominopiece = irit.box(
        (-0.01, -0.006, 0), 0.02, 0.006, 0.05) * irit.sc(scl)
    rot_x = irit.cbezier( irit.list( irit.ctlpt( irit.E1, 0 ), \
                                     irit.ctlpt( irit.E1, 80 ) ) )
    crvdomain = irit.pdomain(path)
    t = irit.FetchRealObject(irit.nth(crvdomain, 1))
    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
Esempio n. 4
0
def srfframecrvs(srf, width):
    umin = irit.nth(irit.pdomain(srf), 1)
    umax = irit.nth(irit.pdomain(srf), 2)
    vmin = irit.nth(irit.pdomain(srf), 3)
    vmax = irit.nth(irit.pdomain(srf), 4)
    retval = irit.list(
        irit.swpcircsrf(
            irit.csurface(srf, irit.COL, irit.FetchRealObject(umin)), width,
            0),
        irit.swpcircsrf(
            irit.csurface(srf, irit.COL,
                          irit.FetchRealObject((umin + umax) / 2.0)), width,
            0),
        irit.swpcircsrf(
            irit.csurface(srf, irit.COL, irit.FetchRealObject(umax)), width,
            0),
        irit.swpcircsrf(
            irit.csurface(srf, irit.ROW, irit.FetchRealObject(vmin)), width,
            0),
        irit.swpcircsrf(
            irit.csurface(srf, irit.ROW,
                          irit.FetchRealObject((vmin + vmax) / 2.0)), width,
            0),
        irit.swpcircsrf(
            irit.csurface(srf, irit.ROW, irit.FetchRealObject(vmax)), width,
            0))
    return retval
Esempio n. 5
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
Esempio n. 6
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
Esempio n. 7
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
Esempio n. 8
0
def printspeedchanges( str, crv ):
    dc = irit.cderive( crv )
    speedsqr = irit.bbox( irit.symbdprod( dc, dc ) )
    irit.printf( "%s [%f %f]\n", 
				 irit.list( str, 
							asqrt( irit.FetchRealObject(irit.nth( speedsqr, 1 )) ), 
							asqrt( irit.FetchRealObject(irit.nth( speedsqr, 2 )) ) ) )
Esempio n. 9
0
def makebboxunit(obj):
    b = irit.bbox(obj)
    xmin = irit.FetchRealObjecy(irit.nth(b, 1))
    xmax = irit.nth(b, 2)
    ymin = irit.nth(b, 3)
    ymax = irit.nth(b, 4)
    retval = obj * irit.tx((-xmin)) * irit.ty(
        (-ymin)) * irit.sx(1.0 / (xmax - xmin)) * irit.sy(1.0 / (ymax - ymin))
    return retval
Esempio n. 10
0
def cnvrtcrvs2domains( crvs, theta ):
    retval = irit.nil(  )
    i = 1
    while ( i <= irit.SizeOf( crvs ) ):
        dm = irit.pdomain( irit.nth( crvs, i ) )
        irit.snoc( irit.ctlpt( irit.E2, theta, irit.nth( dm, 1 ) ) + \
                    irit.ctlpt( irit.E2, theta, irit.nth( dm, 2 ) ), retval )
        i = i + 1
    return retval
Esempio n. 11
0
def makepolylines(listofctlpts):
    retval = irit.nil()
    i = 1
    while (i <= irit.SizeOf(listofctlpts)):
        pl = irit.nth(listofctlpts, i)
        if (irit.SizeOf(pl) > 1):
            irit.snoc(irit.poly(irit.nth(listofctlpts, i), 1), retval)

        i = i + 1
    return retval
Esempio n. 12
0
def printsurface( srf ):
    orders = irit.fforder( srf )
    msize = irit.ffmsize( srf )
    irit.printf( "surface of orders %d x %d, mesh size %d x %d and point type %s\n", orders + msize + irit.list( getpointtype( irit.coord( srf, 0 ) ) ) )
    irit.printf( "control mesh:\n", irit.nil(  ) )
    printctlmesh( srf )
    if ( 1 ):
        kvs = irit.ffkntvec( srf )
        printknotvector( "u ", irit.nth( kvs, 1 ) )
        printknotvector( "v ", irit.nth( kvs, 2 ) )
Esempio n. 13
0
def evaltv(tv, ulen, vlen, wlen):
    retval = irit.nil()
    dom = irit.pdomain(tv)
    i = 0
    while (i <= ulen - 1):
        u = irit.FetchRealObject(irit.nth(dom, 1)) + i * irit.FetchRealObject(
            irit.nth(dom, 2) - irit.nth(dom, 1)) / float(ulen - 1)
        lst2 = irit.nil()
        j = 0
        while (j <= vlen - 1):
            v = irit.FetchRealObject(irit.nth(
                dom, 3)) + j * irit.FetchRealObject(
                    irit.nth(dom, 4) - irit.nth(dom, 3)) / float(vlen - 1)
            lst3 = irit.nil()
            k = 0
            while (k <= wlen - 1):
                w = irit.FetchRealObject(irit.nth(
                    dom, 5)) + k * irit.FetchRealObject(
                        irit.nth(dom, 6) - irit.nth(dom, 5)) / float(wlen - 1)
                irit.snoc(irit.teval(tv, u, v, w), lst3)
                k = k + 1
            irit.snoc(lst3 * irit.tx(0), lst2)
            j = j + 1
        irit.snoc(lst2 * irit.tx(0), retval)
        i = i + 1
    retval = irit.tbezier(retval)
    return retval
Esempio n. 14
0
def printtrivar( tv ):
    orders = irit.fforder( tv )
    msize = irit.ffmsize( tv )
    irit.printf( "trivar of orders %d x %d x %d mesh size %d x %d x %d and point type %s\n", orders + msize + irit.list( getpointtype( irit.coord( tv, 0 ) ) ) )
    irit.printf( "control mesh:\n", irit.nil(  ) )
    printctlmesh( tv )
    if ( 1 ):
        kvs = irit.ffkntvec( tv )
        printknotvector( "u ", irit.nth( kvs, 1 ) )
        printknotvector( "v ", irit.nth( kvs, 2 ) )
        printknotvector( "w ", irit.nth( kvs, 3 ) )
Esempio n. 15
0
def testinter(s1, s2):
    retval = irit.ssintr2(s1, s2, step, subdivtol, numerictol, euclidean)
    if (irit.SizeOf(retval) == 2):
        n = (irit.SizeOf(irit.nth(retval, 1)) +
             irit.SizeOf(irit.nth(retval, 2))) / 2.0
    else:
        if (irit.SizeOf(retval) == 1):
            n = irit.SizeOf(irit.nth(retval, 1)) / 2.0
        else:
            n = 0
    irit.printf("found %d intersection connected components.\n", irit.list(n))
    return retval
Esempio n. 16
0
def originalf(f, newf, deg, c, ptype):
    net = irit.nil()
    f_p = irit.coerce(f, irit.POWER_TYPE)
    tmp = irit.ffsplit(f_p)
    tmp3 = irit.ffsplit(newf)
    i = 1
    while (i <= c):
        t = irit.coord(irit.coord(irit.nth(tmp, i), deg), 1)
        tmp2 = irit.nth(tmp3, i) * irit.sc(irit.FetchRealObject(t))
        irit.snoc(irit.coerce(tmp2, irit.E1), net)
        i = i + 1
    retval = irit.ffmerge(net, ptype)
    return retval
Esempio n. 17
0
def polesfree(srf, dpth, tmin, tmax):
    if (irit.ffpoles(srf) == 0):
        retval = irit.list(srf)
    else:
        if (dpth <= 0):
            retval = irit.nil()
        else:
            t = (tmin + tmax) / 2
            srfs = irit.sdivide(srf, irit.ROW, t)
            retval = irit.polesfree(irit.nth(srfs, 1), dpth - 1, tmin,
                                    t) + irit.polesfree(
                                        irit.nth(srfs, 2), dpth - 1, t, tmax)
    return retval
Esempio n. 18
0
def computeoptimalmotion(theta1, theta2, phi1, phi2, eps):
    err = estimatesphericalcrv(theta1, theta2, phi1, phi2)
    irit.printf(" %12g %12g %12g %12g = %f\n",
                irit.list(theta1, theta2, phi1, phi2, err))
    if (err > eps):
        newpt = midgreatcircpt(theta1, theta2, phi1, phi2)
        theta = irit.FetchRealObject(irit.nth(newpt, 1))
        phi = irit.FetchRealObject(irit.nth(newpt, 2))
        retval = computeoptimalmotion(theta, theta2, phi, phi2,
                                      eps) + computeoptimalmotion(
                                          theta1, theta, phi1, phi, eps)
    else:
        retval = irit.list(computesphericalcrv(theta1, theta2, phi1, phi2))
    return retval
Esempio n. 19
0
def lj8samplecurve(crv, n):
    ptl = irit.nil()
    t0 = irit.nth(irit.pdomain(crv), 1)
    t1 = irit.nth(irit.pdomain(crv), 2)
    if (n < 2):
        n = 2
    dt = (t1 - t0) / (n + 0.0001 - 1)
    t = t0
    while (t <= t1):
        pt = irit.ceval(crv, irit.FetchRealObject(t))
        irit.snoc(pt, ptl)
        t = t + dt
    retval = ptl
    return retval
Esempio n. 20
0
def printctlmeshaux( mesh, ofst, dims ):
    if ( irit.SizeOf( dims ) == 1 ):
        i = 1
        while ( i <= irit.FetchRealObject(irit.nth( dims, 1 )) ):
            printctlpoint( irit.nth( mesh, i + ofst ) )
            i = i + 1
        irit.printf( "\n", irit.nil(  ) )
    else:
        dimsl = getlistwithoutlast( dims )
        d1 = getlistlast( dims )
        d2 = getlistproduct( dimsl )
        i = 1
        while ( i <= irit.FetchRealObject(d1) ):
            printctlmeshaux( mesh, ofst + d2 * ( i - 1 ), dimsl )
            i = i + 1
Esempio n. 21
0
def raytraptris3d(srfs, subeps, numeps):
    pts = irit.raytraps(srfs, 1, subeps, numeps, 1)
    retval = irit.nil()
    if (irit.SizeOf(pts) > 1):
        irit.printf("%d solution(s) found\n", irit.list(irit.SizeOf(pts)))
    i = 1
    while (i <= irit.SizeOf(pts)):
        pt = irit.coord(pts, i)
        err = irit.getattr(pt, "rngerror")
        if (irit.ThisObject(err) == irit.NUMERIC_TYPE):
            irit.printf("error = %16.14f\n", irit.list(err))
        else:
            irit.printf("error is not provided\n", irit.nil())
        points = irit.nil()
        j = 1
        while (j <= irit.SizeOf(srfs)):
            irit.snoc(
                irit.seval(
                    irit.nth(srfs, j),
                    irit.FetchRealObject(irit.coord(pt, 1 + (j - 1) * 2)),
                    irit.FetchRealObject(irit.coord(pt, 2 + (j - 1) * 2))),
                points)
            j = j + 1
        irit.snoc(irit.poly(points, 0), retval)

        i = i + 1
    return retval
Esempio n. 22
0
def interptseval(crvs):
    retval = irit.nil()
    i = 1
    while (i <= irit.SizeOf(crvs)):
        crv = irit.nth(crvs, i)
        interpts = irit.getattr(crv, "interpts")
        j = 1
        while (j <= irit.SizeOf(interpts)):
            irit.snoc(
                irit.ceval(crv, irit.FetchRealObject(irit.nth(interpts, j))),
                retval)
            j = j + 1
        i = i + 1
    irit.printf("numer of intersections detected = %d\n",
                irit.list(irit.SizeOf(retval)))
    return retval
Esempio n. 23
0
def printknotvector( str, kv ):
    irit.printf( "    [%sknotvector:", irit.list( str ) )
    i = 1
    while ( i <= irit.SizeOf( kv ) ):
        irit.printf( " %-.6lg", irit.list( irit.nth( kv, i ) ) )
        i = i + 1
    irit.printf( "]\n", irit.nil(  ) )
Esempio n. 24
0
def getlistproduct( lst ):
    retval = 1
    i = 1
    while ( i <= irit.SizeOf( lst ) ):
        retval = retval * irit.FetchRealObject(irit.nth( lst, i ))
        i = i + 1
    return retval
Esempio n. 25
0
def getlistwithoutlast( lst ):
    retval = irit.nil(  )
    i = 1
    while ( i <= irit.SizeOf( lst ) - 1 ):
        irit.snoc( irit.nth( lst, i ), retval )
        i = i + 1
    return retval
Esempio n. 26
0
def evalantipodalptsonsrf( srf ):
    aps = irit.antipodal( srf, 0.001, (-1e-012 ) )
    irit.printf( "%d antipodal points detected\n", irit.list( irit.SizeOf( aps ) ) )
    retval = irit.nil(  )
    diam = 0
    i = 1
    while ( i <= irit.SizeOf( aps ) ):
        ap = irit.nth( aps, i )
        u1 = irit.coord( ap, 1 )
        v1 = irit.coord( ap, 2 )
        u2 = irit.coord( ap, 3 )
        v2 = irit.coord( ap, 4 )
        pt1 = irit.seval( srf, irit.FetchRealObject(u1), irit.FetchRealObject(v1) )
        pt2 = irit.seval( srf, irit.FetchRealObject(u2), irit.FetchRealObject(v2) )
        if ( irit.dstptpt( irit.coerce( pt1, irit.POINT_TYPE ), 
						   irit.coerce( pt2, irit.POINT_TYPE ) ) > diam ):
            diam = irit.dstptpt( irit.coerce( pt1, irit.POINT_TYPE ), 
								 irit.coerce( pt2, irit.POINT_TYPE ) )
            diamline = pt1 + pt2
        irit.snoc( irit.list( pt1 + pt2, pt1 * irit.tx( 0 ), pt2 * irit.tx( 0 ) ), retval )
        i = i + 1
    irit.color( retval, irit.YELLOW )
    irit.color( diamline, irit.CYAN )
    irit.adwidth( diamline, 3 )
    irit.snoc( irit.list( diamline ), retval )
    return retval
Esempio n. 27
0
def animbisectcrv2( crv1, crv2, data, cntr ):
    irit.color( crv1, irit.YELLOW )
    irit.color( crv2, irit.YELLOW )
    irit.adwidth( crv1, 4 )
    irit.adwidth( crv2, 4 )
    i = 0
    while ( i <= irit.SizeOf( cntr ) - 1 ):
        pt = irit.coord( cntr, i )
        pt1 = irit.ceval( crv1, irit.FetchRealObject(irit.coord( pt, 0 ) ))
        pt2 = irit.ceval( crv2, irit.FetchRealObject(irit.coord( pt, 1 ) ))
        nrml1 = cnormalplnr( crv1, irit.coord( pt, 0 ) )
        nrml2 = cnormalplnr( crv2, irit.coord( pt, 1 ) )
        aaa = irit.ptslnln( irit.Fetch3TupleObject(irit.coerce( pt1, irit.POINT_TYPE )), 
										  irit.Fetch3TupleObject(nrml1), 
										  irit.Fetch3TupleObject(irit.coerce( pt2, irit.POINT_TYPE )), 
										  irit.Fetch3TupleObject(nrml2 ))
        if (irit.IsNullObject(aaa)):
            interpt = irit.GenNullObject();
        else:
            interpt = irit.nth( aaa, 1 )
        if ( irit.ThisObject(interpt) == irit.POINT_TYPE ):
            irit.color( pt1, irit.GREEN )
            irit.color( pt2, irit.GREEN )
            irit.color( interpt, irit.WHITE )
            bisectlns = irit.coerce( pt1, irit.E2 ) + irit.coerce( interpt, irit.E2 ) + irit.coerce( pt2, irit.E2 )
            irit.color( bisectlns, irit.MAGENTA )
            if ( irit.FetchRealObject(irit.coord( interpt, 1 )) < 10 and \
				 irit.FetchRealObject(irit.coord( interpt, 1 )) > (-10 ) and \
				 irit.FetchRealObject(irit.coord( interpt, 2 )) < 10 and \
				 irit.FetchRealObject(irit.coord( interpt, 2 )) > (-10 ) ):
                irit.view( irit.list( crv1, crv2, data, pt1, pt2, interpt, \
                bisectlns ), irit.ON )
        i = i + 1
Esempio n. 28
0
def srflistframecrvs(srflist, width):
    retval = irit.nil()
    i = 1
    while (i <= irit.SizeOf(srflist)):
        retval = retval + srfframecrvs(irit.nth(srflist, i), width)
        i = i + 1
    return retval
Esempio n. 29
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
Esempio n. 30
0
def getbisectpt( crv1, crv2, pt ):
    pt1 = irit.ceval( crv1, irit.FetchRealObject(irit.coord( pt, 0 ) ))
    pt2 = irit.ceval( crv2, irit.FetchRealObject(irit.coord( pt, 1 ) ))
    nrml1 = irit.cnormalplnr( crv1, irit.FetchRealObject(irit.coord( pt, 0 ) ))
    nrml2 = irit.cnormalplnr( crv2, irit.FetchRealObject(irit.coord( pt, 1 ) ))
    interpts = irit.ptslnln( irit.coerce( pt1, irit.POINT_TYPE ), nrml1, irit.coerce( pt2, irit.POINT_TYPE ), nrml2 )
    retval = irit.nth( interpts, 1 )
    return retval