irit.ctlpt( irit.E3, 0, 0, 10 ), \ irit.ctlpt( irit.E3, (-2 ), 0, 15 ), \ irit.ctlpt( irit.E3, (-13 ), 0, 15 ), \ irit.ctlpt( irit.E3, (-13 ), 0, 5 ), \ irit.ctlpt( irit.E3, (-5 ), 0, 0 ), \ irit.ctlpt( irit.E3, 0, 0, (-10 ) ) ), irit.list( irit.KV_OPEN ) ) ) * irit.sc( 0.5 ) * irit.trans( ( 40, 1, 65 ) ) # # We generate some colinear vertices here: # back = ( irit.extrude( \ irit.poly( \ irit.cnvrtpolytoptlist( \ irit.cnvrtcrvtopolygon( backcross, 50, 0 ) \ ) + \ backcrosspts, 0 \ ), \ ( 0, 2, 0 ), \ 3 \ ) - \ irit.extrude( \ irit.cnvrtcrvtopolygon( heartcross, 50, 0 ), \ ( 0, (-2 ), 0 ), \ 3 \ ) \ ) * irit.ty( 189 ) irit.attrib(back, "rgb", irit.GenStrObject("244,164,96")) irit.free(backcrosspts) irit.free(heartcross)
x3 = x3 / 1000.0 y3 = y3 / 1000.0 retval = irit.cbezier( irit.list( irit.ctlpt( irit.E2, x1, y1 ), \ irit.ctlpt( irit.E2, x1 + ( x2 - x1 ) * 2/3.0, y1 + ( y2 - y1 ) * 2/3.0 ), \ irit.ctlpt( irit.E2, x3 + ( x2 - x3 ) * 2/3.0, y3 + ( y2 - y3 ) * 2/3.0 ), \ irit.ctlpt( irit.E2, x3, y3 ) ) ) return retval c1 = (createcubicbezier(414, 331.5, 489, 314, 489, 294) + createcubicbezier(489, 294, 489, 274, 421.5, 259) + createcubicbezier(421.5, 259, 354, 244, 441.5, 259) + createcubicbezier(441.5, 259, 529, 274, 529, 294) + createcubicbezier(529, 294, 529, 314, 434, 331.5) + createcubicbezier(434, 331.5, 339, 349, 414, 331.5)) c1p = irit.cnvrtcrvtopolygon(c1, 128, 0) irit.free(c1) c2 = (createcubicbezier(356.5, 196.5, 289, 214, 289, 234) + createcubicbezier(289, 234, 289, 254, 356.5, 269) + createcubicbezier(356.5, 269, 424, 284, 336.5, 269) + createcubicbezier(336.5, 269, 249, 254, 249, 234) + createcubicbezier(249, 234, 249, 214, 336.5, 196.5) + createcubicbezier(336.5, 196.5, 424, 179, 356.5, 196.5)) c2p = irit.cnvrtcrvtopolygon(c2, 128, 0) irit.free(c2) c3 = (createcubicbezier(379, 334, 469, 314, 469, 294) + createcubicbezier(469, 294, 469, 274, 409, 264) + createcubicbezier(409, 264, 349, 254, 349, 234) + createcubicbezier(349, 234, 349, 214, 429, 194) +
irit.ctlpt( irit.E2, 0.7, 0 ), \ irit.ctlpt( irit.E2, 0.8, 0.5 ), \ irit.ctlpt( irit.E2, 0.85, 0.25 ) ), irit.list( irit.KV_OPEN ) ) irit.color(scalecrv, irit.GREEN) scltrs = irit.swpcircsrf(irit.circle((0, 0, 0), 1), scalecrv, 2) irit.interact(scltrs) ctlpts = irit.getctlpoints(scalecrv, 0) ctlvecs = irit.getctlpoints(scalecrv, 1) ctlpoly = irit.getctlpolygon(scalecrv) irit.interact(irit.list(scalecrv, ctlpts, ctlpoly)) irit.interact(irit.list(scalecrv, ctlvecs, ctlpoly)) irit.save("macros2", irit.list(trs, polytrs, ctlpts, ctlvecs, ctlpoly)) scalepoly = irit.cnvrtcrvtopolygon(scalecrv, 50, 1) irit.color(scalepoly, irit.RED) irit.interact(irit.list(scalepoly, scalecrv)) ctlpts = irit.getctlmeshpts(trs, 0) ctlvecs = irit.getctlmeshpts(trs, 1) ctlmesh = irit.getctlmesh(trs) irit.interact(irit.list(trs, ctlpts, ctlmesh)) irit.interact(irit.list(trs, ctlvecs, ctlmesh)) irit.save("macros3", irit.list(trs, polytrs, ctlpts, ctlvecs, ctlmesh, ctlpoly)) irit.free(polytrs) irit.free(scltrs) irit.free(ctlpoly)
crv = ( basecrv + basecrv * irit.ty( 1 ) + basecrv * irit.ty( 2 ) + basecrv * irit.ty( 3 ) + irit.cbspline( 3, irit.list( irit.ctlpt( irit.E2, 0, 4 ), \ irit.ctlpt( irit.E2, 0, 4.25 ), \ irit.ctlpt( irit.E2, (-0.4 ), 4.25 ), \ irit.ctlpt( irit.E2, (-0.4 ), 2 ), \ irit.ctlpt( irit.E2, (-0.4 ), (-0.25 ) ), \ irit.ctlpt( irit.E2, 0, (-0.25 ) ), \ irit.ctlpt( irit.E2, 0, 0 ) ), irit.list( irit.KV_OPEN ) ) ) crv = (-crv) irit.color(crv, irit.MAGENTA) tpath = irit.ncpcktpath( crv, 0.125, 0.15, 0.05, 0.5, 0,\ 1 ) irit.attrib(tpath, "ncretractzlevel", irit.GenRealObject(1)) irit.attrib(tpath, "ncmaxxybridgegap", irit.GenRealObject(0.1)) pl = irit.cnvrtcrvtopolygon(crv, 500, 0) irit.color(pl, irit.RED) tpath2 = irit.ncpcktpath( pl, 0.08, 0.09, 0.025, 15, 0,\ 1 ) irit.attrib(tpath2, "ncretractzlevel", irit.GenRealObject(1)) irit.attrib(tpath2, "ncmaxxybridgegap", irit.GenRealObject(0.05)) all = irit.list( irit.list(crv, tpath) * irit.tx((-1)), irit.list(pl, tpath2) * irit.tx(1)) * irit.sc(0.35) * irit.ty((-0.75)) irit.interact(all) # ################################
# The smoke on top. # flagcross = ( irit.cbspline( 4, irit.list( irit.ctlpt( irit.E2, (-0.31 ), 0.87 ), \ irit.ctlpt( irit.E2, (-0.28 ), 1 ), \ irit.ctlpt( irit.E2, (-0.1 ), 1 ), \ irit.ctlpt( irit.E2, 0.28, 0.83 ), \ irit.ctlpt( irit.E2, 0.43, 1.03 ), \ irit.ctlpt( irit.E2, 0.5, 1.25 ) ), irit.list( irit.KV_OPEN ) ) + (-irit.cbspline( 4, irit.list( \ irit.ctlpt( irit.E2, (-0.55 ), 0.87 ), \ irit.ctlpt( irit.E2, (-0.51 ), 1.2 ), \ irit.ctlpt( irit.E2, (-0.17 ), 1.31 ), \ irit.ctlpt( irit.E2, 0.29, 1.13 ), \ irit.ctlpt( irit.E2, 0.51, 1.29 ) ), irit.list( irit.KV_OPEN ) ) ) + \ irit.ctlpt( irit.E2, (-0.31 ), 0.87 ) ) flagcrossp = irit.cnvrtcrvtopolygon( flagcross, 150, 0 ) flagsolid = irit.extrude( flagcrossp, ( 0, 0, 0.12 ), 3 ) all = irit.list( wheel, techsolid, flagsolid ) irit.view( all, irit.ON ) irit.pause() irit.save( "techlogo", all ) irit.free( tech ) irit.free( tech1 ) irit.free( tech1clip ) irit.free( techsolid ) irit.free( wheel ) irit.free( flagcross )