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
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
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
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
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
irit.printf( "principal curvatures at (u, v) = (%f, %f) equal %.9f and %.9f\n", irit.list(irit.coord(umb, 0), irit.coord(umb, 1), irit.nth(crvtr, 1), irit.nth(crvtr, 3))) irit.snoc( irit.seval(srf, irit.FetchRealObject(irit.coord(umb, 0)), irit.FetchRealObject(irit.coord(umb, 1))), retval) i = i + 1 irit.color(retval, irit.YELLOW) return retval # ################################ s = irit.surfprev( irit.cregion(irit.pcircle((0, 0, 0), 1), 0.001, 1.999) * irit.rx(90)) * irit.sx(0.8) * irit.sy(1.2) irit.color(s, irit.RED) paramumb = irit.sumbilic(s, 0.2, 1e-006) irit.interact(irit.list(evaltoeuclidean(s, paramumb), s)) # ################################ c = irit.cbspline( 4, irit.list( irit.ctlpt( irit.E2, 0.215, 0.427 ), \ irit.ctlpt( irit.E2, 1.34, 0.317 ), \ irit.ctlpt( irit.E2, 1.25, (-0.791 ) ), \ irit.ctlpt( irit.E2, (-0.573 ), (-1.05 ) ), \ irit.ctlpt( irit.E2, 1.12, (-1.31 ) ), \ irit.ctlpt( irit.E2, 1.19, (-1.51 ) ) ), irit.list( irit.KV_OPEN ) ) s = irit.sregion(irit.surfprev(c * irit.rx(90)), irit.COL, 0, 1)
# # # Examples of surface accessibility analysis. # # Gershon Elber, December 1999 # # ############################################################################ # # Plane surface - sphere check surface example. # c = irit.cregion(irit.pcircle((0, 0, 0), 1), 1, 3) * irit.ry(90) psphere = irit.surfprev(c) * irit.sc(0.3) * irit.tz(1) irit.color(psphere, irit.YELLOW) pln = irit.ruledsrf( irit.ctlpt( irit.E3, (-1 ), (-1 ), 0 ) + \ irit.ctlpt( irit.E3, (-1 ), 1, 0 ), \ irit.ctlpt( irit.E3, 1, (-1 ), 0 ) + \ irit.ctlpt( irit.E3, 1, 1, 0 ) ) irit.color(pln, irit.RED) pts = irit.saccess(pln, irit.GenRealObject(0), psphere, irit.GenRealObject(0), 0.1, 1e-005) spts = irit.nil() sptserr = irit.nil() i = 1 while (i <= irit.SizeOf(pts)):
all = irit.list(irit.GetAxes() * irit.sc(1.1), reflectlns, rf, s) irit.interact(all) irit.attrib( s, "rflctlines", irit.list((0, 0, 1), irit.list(((-3), 2, 0), ((-1.5), 2, 0), irit.point(0, 2, 0), irit.point(1.5, 2, 0), irit.point(3, 2, 0)))) all = irit.list(reflectlns, s) irit.interact(all) irit.save("rflct2ln", all) # ############################################################################ s = irit.surfprev(irit.cregion(irit.pcircle((0, 0, 0), 1), 1, 3) * irit.ry(90)) irit.color(s, irit.MAGENTA) reflectlns = irit.nil() x = (-3) while (x <= 3): irit.snoc( irit.ctlpt( irit.E3, x, 2, (-10 ) ) + \ irit.ctlpt( irit.E3, x, 2, 10 ), reflectlns ) x = x + 1.5 irit.color(reflectlns, irit.CYAN) irit.adwidth(reflectlns, 2) irit.SetResolution(2) rf = irit.rflctln( s, (0, 0, 1), irit.list(
# # Gershon Elber, Oct 2002 # oldcnvxpl2vrtices = irit.iritstate("cnvxpl2vrtcs", irit.GenRealObject(0)) # ############################################################################ c = irit.cbspline( 4, irit.list( irit.ctlpt( irit.E2, 0, 0.15 ), \ irit.ctlpt( irit.E2, 0.25, 0.15 ), \ irit.ctlpt( irit.E2, 0.52, 0.4 ), \ irit.ctlpt( irit.E2, 0.85, 0.3 ), \ irit.ctlpt( irit.E2, 0.85, 0 ) ), irit.list( irit.KV_OPEN ) ) c = ((-c) + c * irit.sx((-1))) srf8a = irit.surfprev(c * irit.ry(90)) * irit.sx(0.9) * irit.homomat( irit.list(irit.list(1, 0, 0.2, 0), irit.list(0, 1, 0, 0), irit.list(0, 0, 1, 0), irit.list(0, 0, 0, 1))) * irit.homomat( irit.list(irit.list(1, 0, 0, 0), irit.list(0, 1, 0.2, 0), irit.list(0, 0, 1, 0), irit.list(0, 0, 0, 1))) irit.color(srf8a, irit.YELLOW) irit.awidth(srf8a, 0.001) k = irit.srfkernel(srf8a, 5, 3) irit.interact(irit.list(srf8a, k)) irit.save("srf1krnl", irit.list(k, srf8a)) # ############################################################################
# # Layout (prisa) of a wine glass. # view_mat3d = irit.rotx((-90)) * irit.roty(130) * irit.rotx((-35)) * irit.scale( (0.5, 0.5, 0.5)) * irit.trans((0, (-0.5), 0)) view_mat2d = irit.scale((0.1, 0.1, 0.1)) * irit.trans((0, (-0.8), 0)) cross = irit.cbspline( 3, irit.list( irit.ctlpt( irit.E3, 0.7, 0, 0 ), \ irit.ctlpt( irit.E3, 0.7, 0, 0.06 ), \ irit.ctlpt( irit.E3, 0.1, 0, 0.1 ), \ irit.ctlpt( irit.E3, 0.1, 0, 0.6 ), \ irit.ctlpt( irit.E3, 0.6, 0, 0.6 ), \ irit.ctlpt( irit.E3, 0.8, 0, 0.8 ), \ irit.ctlpt( irit.E3, 0.8, 0, 1.4 ), \ irit.ctlpt( irit.E3, 0.6, 0, 1.6 ) ), irit.list( irit.KV_OPEN ) ) wglass = irit.surfprev(cross * irit.scale((1.6, 1.6, 1.6))) irit.color(wglass, irit.YELLOW) irit.interact(irit.list(view_mat3d, wglass)) wgl_prisa = irit.prisa(wglass, samppercrv, (-0.1), irit.COL, (0, 0.25, 0), 0) irit.color(wgl_prisa, irit.YELLOW) irit.interact(irit.list(view_mat3d, wgl_prisa)) irit.save("prisa1", irit.list(view_mat3d, wgl_prisa)) 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(srfs) irit.free(ts1) irit.free(ts2) irit.free(ts3) # # Jacobian analysis (zero set). # crv1 = irit.cbspline( 4, irit.list( irit.ctlpt( irit.E3, 0.5677, (-0.6246 ), 0 ), \ irit.ctlpt( irit.E3, 0.3509, (-0.5846 ), 0 ), \ irit.ctlpt( irit.E3, 0.0416, (-0.5054 ), 0 ), \ irit.ctlpt( irit.E3, (-0.0508 ), 0.0277, 0 ), \ irit.ctlpt( irit.E3, 0.8692, 0.2523, 0 ), \ irit.ctlpt( irit.E3, 0.393, 0.8592, 0 ) ), irit.list( irit.KV_OPEN ) ) srf1 = irit.surfprev(crv1 * irit.rx(90)) irit.awidth(srf1, 0.005) irit.color(srf1, irit.RED) irit.free(crv1) tv1 = irit.tfromsrfs( irit.list(srf1, srf1 * irit.tx(3) * irit.ty(3), srf1 * irit.tx(6)), 3, irit.KV_OPEN) irit.awidth(tv1, 0.001) irit.color(tv1, irit.RED) irit.view(tv1, irit.ON) tv1zerojacobian = (-irit.tvzrjacob(tv1, 1, 1, irit.GenRealObject(0))) all = irit.list(tv1zerojacobian, srf1, srf1 * irit.tx(6)) irit.interact(all)
retval = irit.list( irit.list(ag, sp, irit.GetAxes()) * irit.sc(0.6) * irit.tx(spc), irit.list(s1, irit.GetAxes()) * irit.tx((-spc))) return retval # ############################################################################ c = irit.cbspline( 4, irit.list( irit.ctlpt( irit.E2, 0, 0.15 ), \ irit.ctlpt( irit.E2, 0.25, 0.15 ), \ irit.ctlpt( irit.E2, 0.52, 0.4 ), \ irit.ctlpt( irit.E2, 0.85, 0.3 ), \ irit.ctlpt( irit.E2, 0.85, 0 ) ), irit.list( irit.KV_OPEN ) ) c = ((-c) + c * irit.sx((-1))) srfeight = irit.surfprev(c * irit.ry(90)) irit.color(srfeight, irit.YELLOW) irit.awidth(srfeight, 0.001) sparabs = computeparaboliclines(srfeight) irit.interact(irit.list(srfeight, sparabs)) # # View the aspect graph with silhouettes... # saspect = computetopoaspectgraph(srfeight, 0.9) irit.viewstate("polyaprx", 1) irit.viewstate("polyaprx", 1) irit.viewstate("numisos", 0) irit.viewstate("numisos", 0)
# save_res = irit.GetResolution() # ############################################################################ gcross = irit.cbspline( 4, irit.list( irit.ctlpt( irit.E3, 0.3, 0, 0 ), \ irit.ctlpt( irit.E3, 0.3, 0, 0.05 ), \ irit.ctlpt( irit.E3, 0.1, 0, 0.1 ), \ irit.ctlpt( irit.E3, 0.1, 0, 0.35 ), \ irit.ctlpt( irit.E3, 0.4, 0, 0.4 ), \ irit.ctlpt( irit.E3, 0.53, 0, 0.57 ), \ irit.ctlpt( irit.E3, 0.47, 0, 0.79 ), \ irit.ctlpt( irit.E3, 0.32, 0, 1 ) ), irit.list( irit.KV_OPEN ) ) * irit.tz( (-0.5 ) ) irit.color(gcross, irit.WHITE) glass = irit.surfprev(gcross) irit.color(glass, irit.CYAN) irit.interact(glass) # Isoclines: irit.SetResolution(25) isocs = irit.list( irit.isocline( glass, ( 1, (-2 ), 1 ), 90, 1, 0 ),\ irit.isocline( glass, ( 1, (-2 ), 1 ), 75, 1, 0 ),\ irit.isocline( glass, ( 1, (-2 ), 1 ), 60, 1, 0 ),\ irit.isocline( glass, ( 1, (-2 ), 1 ), 45, 1, 0 ),\ irit.isocline( glass, ( 1, (-2 ), 1 ), 30, 1, 0 ),\ irit.isocline( glass, ( 1, (-2 ), 1 ), 15, 1, 0 ) ) irit.color(isocs, irit.YELLOW) irit.adwidth(isocs, 3) irit.interact(irit.list(irit.GetAxes(), glass, isocs, (1, (-2), 1)))
irit.color(srf, irit.MAGENTA) crv = irit.circle((0.5, 0.5, 0), 0.4) irit.color(crv, irit.YELLOW) ccrv = irit.compose(srf, crv) irit.color(ccrv, irit.CYAN) if (display == 1): irit.interact(irit.list(srf, crv, ccrv)) irit.save("cs2comps", irit.list(srf, crv, ccrv)) # ################################ srf = irit.sreparam( irit.surfprev( irit.ctlpt( irit.E3, 1, 0, (-1 ) ) + \ irit.ctlpt( irit.E3, 1, 0, 1 ) ), irit.COL, 0,\ 1 ) * irit.sc( 0.5 ) irit.color(srf, irit.MAGENTA) crv = irit.pcircle((0.45, 0.55, 0), 0.4) irit.color(crv, irit.YELLOW) ccrv = irit.compose(srf, crv) irit.color(ccrv, irit.CYAN) if (display == 1): irit.interact(irit.list(irit.GetAxes(), srf, crv, ccrv)) irit.save("cs3comps", irit.list(srf, crv, ccrv)) x = (-1.1)
printtest("srf of revolution", irit.isgeom(ruled, irit.GEOM_SRF_OF_REV, 1e-005), 0) printtest("srf of revolution", irit.isgeom(extr, irit.GEOM_SRF_OF_REV, 1e-005), 0) crv = irit.cbezier( irit.list( irit.ctlpt( irit.E3, 0.1, 0, 0 ), \ irit.ctlpt( irit.E3, 1, 0, 0 ), \ irit.ctlpt( irit.E3, 1, 0, 1 ) ) ) # too slow for regular testing. #srev = surfrev( crv ); #PrintTest( "Srf of revolution", isgeom( srev, irit.GEOM_SRF_OF_REV, 1e-10 ), 1 ); # srev = irit.surfprev(crv) * irit.tx(1) * irit.ty(2) * irit.sc(0.5) * irit.rx( 10) * irit.ry(20) * irit.rz(30) printtest("srf of revolution", irit.isgeom(srev, irit.GEOM_SRF_OF_REV, 0.1), 1) printtest("srf of revolution", irit.isgeom(srev, irit.GEOM_SRF_OF_REV, 0.01), 0) crv = irit.cbspline( 3, irit.list( irit.ctlpt( irit.E3, 0.3, 0, 0 ), \ irit.ctlpt( irit.E3, 0.3, 0, 0.05 ), \ irit.ctlpt( irit.E3, 0.1, 0, 0.05 ), \ irit.ctlpt( irit.E3, 0.1, 0, 0.4 ), \ irit.ctlpt( irit.E3, 0.5, 0, 0.4 ), \ irit.ctlpt( irit.E3, 0.6, 0, 0.8 ) ), irit.list( irit.KV_OPEN ) ) srev = irit.surfprev(crv) * irit.tx((-1)) * irit.tz( (-5)) * irit.sc(0.25) * irit.rx(55) * irit.ry((-220)) * irit.rz((-130)) printtest("srf of revolution", irit.isgeom(srev, irit.GEOM_SRF_OF_REV, 0.1), 1) printtest("srf of revolution", irit.isgeom(srev, irit.GEOM_SRF_OF_REV, 0.001),
s2 = irit.blhermite(c1, c2, d1, d2, csec1, n) irit.color(s2, irit.GREEN) s3 = irit.blhermite(c1, c2, d1, d2, csec2, n) irit.color(s3, irit.YELLOW) irit.save("blending1", irit.list(s1, s2, s3)) irit.interact(irit.list(irit.GetAxes(), s1, s2, s3)) # # Blend on a (polynomial approximation of a) sphere: # s = (-irit.surfprev( irit.cregion(irit.pcircle((0, 0, 0), 1), 0, 2) * irit.rx(90))) irit.attrprop(s, "u_resolution", irit.GenIntObject(3)) irit.attrprop(s, "v_resolution", irit.GenIntObject(3)) ds = irit.sderive(s, irit.ROW) c1 = (-irit.csurface(s, irit.ROW, 0.8)) c2 = (-irit.csurface(s, irit.ROW, 1.2)) d1 = (-irit.csurface(ds, irit.ROW, 0.8)) d2 = (-irit.csurface(ds, irit.ROW, 1.2)) s1 = irit.hermite(c1, c2, d1, d2) irit.color(s1, irit.RED) n = irit.csurface(s, irit.ROW, 1)
irit.view(pls, irit.ON) i = i + 1 irit.save("warp1ply", warpsurface(pls, tv)) # ############################################################################ gcross = irit.cbspline( 3, irit.list( irit.ctlpt( irit.E3, 0.3, 0, 0 ), \ irit.ctlpt( irit.E3, 0.2, 0, 0.05 ), \ irit.ctlpt( irit.E3, 0.05, 0, 0.05 ), \ irit.ctlpt( irit.E3, 0.05, 0, 0.4 ), \ irit.ctlpt( irit.E3, 0.4, 0, 0.4 ), \ irit.ctlpt( irit.E3, 0.3, 0, 0.8 ) ), irit.list( irit.KV_OPEN ) ) irit.color(gcross, irit.WHITE) glass = irit.surfprev(gcross) * irit.sc(0.8) * irit.ry(90) * irit.tx( 0.25) * irit.ty(0.5) irit.SetResolution(10) pls = irit.gpolygon(glass, 1) irit.free(glass) irit.free(gcross) i = 1 while (i <= 10): pls = warpsurface(pls, tv) irit.view(pls, irit.ON) i = i + 1 irit.save("warp2ply", warpsurface(pls, tv)) # ############################################################################