irit.snoc( p * irit.tx( 0 ), pts ) i = i + 1 irit.interact( irit.list( view_mat0, crv1, pts ) ) irit.save( "pt_incrv", irit.list( irit.GetViewMatrix(), crv1, pts ) ) irit.free( crv1 ) # ############################################################################# # # Point inclusion in a polyhedra: # pl1 = ( irit.sphere( ( 0, 0, 0 ), 1 ) - irit.cone( ( (-1.3 ), (-2 ), (-1 ) ), ( 5, 5, 5 ), 1, 0 ) ) irit.view( irit.list( irit.GetAxes(), pl1 ), irit.ON ) pts = irit.nil( ) i = 0 while ( i <= 1000 ): p = irit.point( irit.random( (-1 ), 1 ), irit.random( (-1 ), 1 ), irit.random( (-1 ), 1 ) ) if ( irit.FetchRealObject(irit.ppinclude( pl1, irit.Fetch3TupleObject(p) ) ) ): irit.color( p, irit.GREEN ) else: irit.color( p, irit.RED ) irit.snoc( p * irit.tx( 0 ), pts ) i = i + 1 irit.interact( irit.list( irit.GetViewMatrix(), pl1, pts ) )
import irit # # # Intersection of cone and a cylinder: # Try this one with resolution equal 20 - slower, but much nicer! # # Created by Gershon Elber, Jan. 89 # save_mat = irit.GetViewMatrix() irit.SetViewMatrix(irit.GetViewMatrix() * irit.scale((0.2, 0.2, 0.2))) save_res = irit.GetResolution() irit.SetResolution(8) cone1 = irit.cone((0, 0, (-1)), (0, 0, 4), 2, 3) cylin1 = irit.cylin((0, 3, 1), (0, (-6), 0), 0.7, 3) a1 = (cone1 + cylin1) irit.interact(irit.list(irit.GetViewMatrix(), a1)) a2 = cone1 * cylin1 irit.interact(a2) a3 = (cone1 - cylin1) irit.interact(a3) a4 = (cylin1 - cone1) irit.interact(a4)
retval = o return retval b = irit.box(((-3), (-2), (-1)), 6, 4, 2) t = 3.14 irit.save( "functn1", irit.list( irit.GenRealObject(math.sqrt( irit.sqr( t * 3.14 ) )) , \ irit.GenRealObject(irit.sqr( 2 )), \ irit.GenRealObject(irit.sqr( 2 ) + irit.sqr( 2 )), \ irit.GenRealObject(factor( 3 )), \ irit.GenRealObject(factor( 10 )), \ irit.GenRealObject(factor( 15 )), \ aint( b ), \ aint( irit.cone( ( 0, 0, (-1 ) ), ( 0, 0, 4 ), 2, 1 ) ) ) ) irit.free(b) # # Few parameters. Apply operator to two given operand. Note since operators # are overloaded, we can apply this function to many types. # def apply(oprnd1, oprtr, oprnd2): if (oprtr == "+"): retval = oprnd1 + oprnd2 if (oprtr == "*"): retval = oprnd1 * oprnd2 if (oprtr == "-"): retval = oprnd1 - oprnd2
axes15 = irit.GetAxes() * irit.scale((1.5, 1.5, 1.5)) # # Create primitive as approximated integral polynomial surfaces. # save_prim_rat_srfs = irit.iritstate("primratsrfs", irit.GenRealObject(0)) cyls = irit.list(irit.cylin(((-0.8), 0, 0), ((-0.5), 0.3, 0.3), 0.3, 0), irit.cylin((0.8, 0, 0), (0.8, 0, 0), 0.3, 1), irit.cylin((0, (-0.8), 0), (0.1, (-0.5), 0.2), 0.3, 3), irit.cylin((0, 0.8, 0), (0, 0.8, 0), 0.3, 2), irit.cylin((0, 0, (-0.8)), (0.4, 0.2, (-0.5)), 0.3, 3), irit.cylin((0, 0, 0.8), (0, 0, 0.8), 0.3, 1)) irit.color(cyls, irit.RED) cones = irit.list(irit.cone(((-0.5), 0, 0), ((-0.5), 0, 0), 0.5, 0), irit.cone((0.5, 0, 0), (0.5, 0, 0), 0.5, 1), irit.cone((0, (-0.5), 0), (0, (-0.5), 0), 0.5, 1), irit.cone((0, 0.5, 0), (0, 0.5, 0), 0.5, 0), irit.cone((0, 0, (-0.5)), (0, 0, (-0.5)), 0.5, 1), irit.cone((0, 0, 0.5), (0, 0, 0.5), 0.5, 1)) irit.color(cones, irit.RED) spr = irit.sphere((0, 0, 0), 0.5) irit.color(spr, irit.RED) trs = irit.torus((0, 0, 0), (0.1, 0.2, 1), 0.5, 0.2) irit.color(trs, irit.RED) # # Create primitive as exact rational surfaces. #
# # The most common example of wireframe ambiguity. See for example: # Geometric Modeling by Michael E. Mortenson, page 4... # save_res = irit.GetResolution() save_mat = irit.GetViewMatrix() irit.SetViewMatrix(irit.GetViewMatrix() * irit.scale( (0.6, 0.6, 0.6)) * irit.rotx(30) * irit.roty(20)) a = irit.box(((-0.5), (-0.5), (-0.55)), 1, 1, 1.1) irit.SetResolution(4) # To create 4 sided pyramids from cones... c1 = irit.cone((0, 0, (-0.6)), (0, 0, 0.6001), 0.6 * math.sqrt(2), 1) * irit.rotz(45) c2 = irit.cone((0, 0, 0.6), (0, 0, (-0.6)), 0.6 * math.sqrt(2), 1) * irit.rotz(45) a = (a - c1 - c2) irit.free(c1) irit.free(c2) irit.view(irit.list(irit.GetViewMatrix(), a), irit.ON) b = irit.box(((-0.3), (-0.3), (-1)), 0.6, 0.6, 2) c = (a - b) irit.free(a) irit.free(b) final = irit.convex(c) irit.free(c)
# Display of all primitives of the system: # BOX, GBOX, CONE, CYLIN, SPHERE, TORUS # # Created by Gershon Elber, Dec. 88 # save_mat = irit.GetViewMatrix() irit.SetViewMatrix(irit.GetViewMatrix() * irit.scale((0.5, 0.5, 0.5))) axes15 = irit.GetAxes() * irit.scale((1.5, 1.5, 1.5)) irit.interact( irit.list( irit.GetViewMatrix(), axes15, irit.box( ( (-0.5 ), (-0.5 ), (-0.5 ) ), 1, 1, 1 ),\ irit.gbox( ( (-0.25 ), (-0.25 ), (-0.25 ) ), ( 1.1, 0.1, 0.2 ), ( 0.4, 0.9, 0.2 ), ( 0.3, 0.05, 1.4 ) ) ) ) irit.interact( irit.list(irit.GetViewMatrix(), axes15, irit.cone(((-0.5), 0, 0), ((-0.5), 0, 0), 0.5, 0), irit.cone((0.5, 0, 0), (0.5, 0, 0), 0.5, 0), irit.cone((0, (-0.5), 0), (0, (-0.5), 0), 0.5, 0), irit.cone((0, 0.5, 0), (0, 0.5, 0), 0.5, 0), irit.cone((0, 0, (-0.5)), (0, 0, (-0.5)), 0.5, 0), irit.cone((0, 0, 0.5), (0, 0, 0.5), 0.5, 0))) irit.interact( irit.list(irit.GetViewMatrix(), axes15, irit.cone(((-0.5), 0, 0), ((-0.5), 0, 0), 0.5, 1), irit.cone((0.5, 0, 0), (0.5, 0, 0), 0.5, 1), irit.cone((0, (-0.5), 0), (0, (-0.5), 0), 0.5, 1), irit.cone((0, 0.5, 0), (0, 0.5, 0), 0.5, 1), irit.cone((0, 0, (-0.5)), (0, 0, (-0.5)), 0.5, 1), irit.cone((0, 0, 0.5), (0, 0, 0.5), 0.5, 1)))