def evalmeancrvs(srf, numeronly, hmin, hmax, hstep): h = irit.smean(srf, numeronly) irit.printf("h spans from %f to %f\n", irit.bbox(h)) meancntrs = irit.nil() x = hmin while (x <= hmax): aaa = irit.contour(h, irit.plane(1, 0, 0, (-x)), srf) if (irit.IsNullObject(aaa)): aaa = 0 else: irit.snoc(aaa, meancntrs) x = x + hstep irit.color(meancntrs, irit.YELLOW) minimal = irit.contour(h, irit.plane(1, 0, 0, 0.0001), srf) if (irit.ThisObject(minimal) == irit.POLY_TYPE): irit.color(minimal, irit.GREEN) irit.adwidth(minimal, 2) retval = irit.list(meancntrs, minimal) else: retval = meancntrs return retval
def evalgaussiancrvs(srf, numeronly, kmin, kmax, kstep): k = irit.sgauss(srf, numeronly) irit.printf("k spans from %f to %f\n", irit.bbox(k)) gausscntrs = irit.nil() x = kmin while (x >= kmax): aaa = irit.plane(1, 0, 0, (-x)) bbb = irit.contour(k, aaa, srf) irit.snoc(bbb, gausscntrs) x = x + kstep irit.color(gausscntrs, irit.MAGENTA) parabolic = irit.sparabolc(srf, 1) if (irit.ThisObject(parabolic) == irit.POLY_TYPE): irit.color(parabolic, irit.RED) irit.adwidth(parabolic, 2) retval = irit.list(parabolic, gausscntrs) else: retval = gausscntrs return retval
irit.rrinter(irit.cmesh(r1, irit.ROW, 0), irit.cmesh(r1, irit.ROW, 1), irit.cmesh(r2, irit.ROW, 0), irit.cmesh(r2, irit.ROW, 1), 10, 0), 1) irit.color(c, irit.RED) irit.adwidth(c, 3) irit.interact(irit.list(r1, r2, c)) zerosetsrf = irit.rrinter(irit.cmesh(r1, irit.ROW, 0), irit.cmesh(r1, irit.ROW, 1), irit.cmesh(r2, irit.ROW, 0), irit.cmesh(r2, irit.ROW, 1), 10, 1) zerosetsrfe3 = irit.coerce(zerosetsrf, irit.E3) * irit.rotx((-90)) * irit.roty( (-90)) * irit.sz(0.1) zeroset = irit.contour(zerosetsrfe3, irit.plane(0, 0, 1, 1e-005)) irit.color(zeroset, irit.RED) irit.adwidth(zeroset, 3) irit.interact(irit.list(irit.GetAxes(), zerosetsrfe3, zeroset)) # ############################################################################ # # Case 2 # c1 = irit.cbezier( irit.list( irit.ctlpt( irit.E3, (-1 ), 0, (-1 ) ), \ irit.ctlpt( irit.E3, 0, 1, (-1 ) ), \ irit.ctlpt( irit.E3, 0.3, 0, (-1 ) ), \ irit.ctlpt( irit.E3, 1, 0, (-1 ) ) ) )
# ############################################################################ irit.SetResolution(50) view_mat1 = irit.GetViewMatrix() * irit.sc(0.9) x = irit.sphere((0, 0, 0), 1) irit.color(x, irit.RED) irit.view(irit.list(view_mat1, irit.GetAxes(), x), irit.ON) allcntrs = irit.nil() l = (-0.95) while (l <= 0.99): c = irit.contour( x, irit.plane(1 / math.sqrt(3), 1 / math.sqrt(3), 1 / math.sqrt(3), l)) irit.viewobj(c) irit.milisleep(50) irit.snoc(c * irit.tx(0), allcntrs) l = l + 0.1 irit.interact(irit.list(irit.GetAxes(), x, allcntrs)) # ############ view_mat1 = irit.GetViewMatrix() * irit.sc(0.7) x = irit.torus((0, 0, 0), (0, 0, 1), 1, 0.3) irit.color(x, irit.RED) irit.view(irit.list(view_mat1, irit.GetAxes(), x), irit.ON) allcntrs = irit.nil() l = (-1.05)
irit.attrib( c1, "width", irit.GenRealObject(0.007 )) irit.color( c2, irit.YELLOW ) irit.attrib( c2, "dwidth", irit.GenRealObject(2 )) irit.attrib( c2, "width", irit.GenRealObject(0.007 )) bisectsrf = irit.cbisector2d( irit.list( c1, c2 ), 1, 1, 20, 1, 0 ) bisectsrfe3 = irit.coerce( bisectsrf, irit.E3 ) * \ irit.rotx( (-90 ) ) * \ irit.roty( (-90 ) ) * \ irit.sz( 0.1 ) irit.color( bisectsrfe3, irit.GREEN ) irit.attrib( bisectsrfe3, "width", irit.GenRealObject(0.005 )) irit.SetResolution( 60) cntrs = irit.contour( bisectsrfe3, irit.plane( 0, 0, 1, 1e-008 ) ) irit.adwidth( cntrs, 2 ) irit.attrib( cntrs, "width", irit.GenRealObject(0.015 )) irit.interact( irit.list( bisectsrfe3, pl, cntrs, view_mat3d ) ) bisectcrvs = irit.cbisector2d( irit.list( c1, c2 ), 0, 1, 30, 1,\ 0 ) irit.attrib( bisectcrvs, "dwidth", irit.GenRealObject(4 )) irit.attrib( bisectcrvs, "width", irit.GenRealObject(0.012 )) irit.attrib( bisectcrvs, "gray", irit.GenRealObject(0.5 )) irit.color( bisectcrvs, irit.GREEN ) all = irit.list( c1, c2, bisectcrvs ) irit.interact( irit.list( all, view_mat2d ) ) irit.free( all )
s1 = irit.cylinsrf( 4, 1 ) * irit.tz( (-2 ) ) irit.color( s1, irit.RED ) c1 = irit.cbezier( irit.list( irit.ctlpt( irit.E3, 0, 0, (-1 ) ), \ irit.ctlpt( irit.E3, 0, 0, 1 ) ) ) r1 = irit.cbezier( irit.list( irit.ctlpt( irit.E1, 1 ) ) ) s2 = irit.cylinsrf( 4, 1 ) * irit.tz( (-2 ) ) * irit.rx( 90 ) * irit.tx( 0.5 ) irit.color( s2, irit.MAGENTA ) c2 = irit.cbezier( irit.list( irit.ctlpt( irit.E3, 0.5, (-1 ), 0 ), \ irit.ctlpt( irit.E3, 0.5, 1, 0 ) ) ) r2 = irit.cbezier( irit.list( irit.ctlpt( irit.E1, 1 ) ) ) zerosetsrf = irit.coerce( irit.gginter( c1, r1, c2, r2, 10, 1 ),\ irit.E3 ) * irit.rotx( (-90 ) ) * irit.roty( (-90 ) ) irit.SetResolution( 100) zeroset = irit.contour( zerosetsrf, irit.plane( 0, 0, 1, 0 ) ) irit.color( zeroset, irit.GREEN ) irit.adwidth( zeroset, 3 ) irit.interact( irit.list( zerosetsrf * irit.sz( 0.1 ), zeroset, irit.GetAxes() ) * irit.sc( 3 ) ) c = irit.nth( irit.gginter( c1, r1, c2, r2, 100, 0 ),\ 1 ) irit.interact( irit.list( s1, s2, c ) ) irit.save( "rngrng1", irit.list( zerosetsrf, s1, s2, c ) ) a = 0.9 while ( a >= 0.05 ): s2 = irit.cylinsrf( 4, 1 ) * irit.tz( (-2 ) ) * irit.rx( 90 ) * irit.tx( a ) irit.color( s2, irit.MAGENTA )
# Two quadratic curves # c1 = irit.cbezier( irit.list( irit.ctlpt( irit.E2, (-0.5 ), 0.1 ), \ irit.ctlpt( irit.E2, 0, 0.3 ), \ irit.ctlpt( irit.E2, 0.5, 0.7 ) ) ) c2 = irit.coerce(c1 * irit.sy((-1)), irit.E2) irit.color(c1, irit.YELLOW) irit.color(c2, irit.YELLOW) irit.adwidth(c1, 3) irit.adwidth(c2, 3) bisectsrf = irit.cbisector3d(irit.list(c1, c2), 4) irit.color(bisectsrf, irit.RED) irit.SetResolution(25) bisectcrv = irit.contour(bisectsrf, irit.plane(0, 0, 1, epsilon)) irit.color(bisectcrv, irit.GREEN) irit.adwidth(bisectcrv, 3) irit.interact(irit.list(c1, c2, bisectcrv, bisectsrf)) # ############################################################################ # # Two quadratic curves # c1 = irit.cbezier( irit.list( irit.ctlpt( irit.E2, (-0.5 ), 0.5 ), \ irit.ctlpt( irit.E2, 0, 0.3 ), \ irit.ctlpt( irit.E2, 0.5, 0.7 ) ) ) c2 = irit.coerce(c1 * irit.sy((-1)), irit.E2) irit.color(c1, irit.YELLOW) irit.color(c2, irit.YELLOW)
t2 = irit.cylin(((-1), 0, 0), (2, 0, 0), 0.15, 3) t3 = irit.cylin((0, (-1), 0), (0, 2, 0), 0.15, 3) irit.view(irit.list(t2, t3), irit.OFF) s1 = (t1 - t2 - t3) irit.free(t1) irit.free(t2) irit.free(t3) final = irit.convex(s1) irit.free(s1) irit.interact(final) pls = irit.planeclip(final, irit.Fetch4TupleObject(irit.plane(1, (-1.23456), 0, 0))) irit.free(final) plfront = irit.nth(pls, 1) irit.color(plfront, irit.MAGENTA) plinter = irit.nth(pls, 2) irit.color(plinter, irit.YELLOW) irit.adwidth(plinter, 3) plback = irit.nth(pls, 3) irit.color(plback, irit.RED) pls = irit.list(plfront, plback, plinter) irit.interact(pls) irit.save("solid6", pls) irit.free(pls)
import irit # # # Some tests to the COORD and COERCE commands. # results = irit.nil( ) a = ( float(1), 2, 3 ) irit.snoc( irit.point(a[0], a[1], a[2] ), results ) a = ( 4, 5, 6 ) irit.snoc( irit.vector( a[0], a[1], a[2] ), results ) a = irit.plane( 10, 11, 12, 13 ) irit.snoc( irit.plane( irit.FetchRealObject(irit.coord( a, 0 )), irit.FetchRealObject(irit.coord( a, 1 )), irit.FetchRealObject(irit.coord( a, 2 )), irit.FetchRealObject(irit.coord( a, 3 )) ), results ) # # On lists, it does what NTH is doing. # a = irit.list( 11, 12.5, math.pi ) irit.snoc( irit.coord( a, 3 ), results ) # # On a matrix, it extract a single number (out of 4 by 4 = 16) # m = irit.rotx( 30 ) * irit.tx( 10 ) * irit.sc( 0.7 ) irit.snoc( m, results ) irit.snoc( irit.coord( m, 0 ), results ) irit.snoc( irit.coord( m, 2 ), results )
# # Ask all clients to send mouse/cursor events to the server. # irit.clntpickcrsr(irit.CLIENTS_ALL) # # Ask the server to keep mouse/cursor events to be read view ClntCrsr. # crsrkeep = irit.iritstate("cursorkeep", irit.GenIntObject(1)) # # Some examples of menus... Uses Button 1 (left button). # quit = 0 xyplane = irit.plane(0, 0, 1, 0) crv = irit.circle((0, 0, 0), 1) * irit.sx(0.5) * irit.rx(40) * irit.rz(44) irit.color(crv, irit.RED) srf = irit.swpcircsrf(irit.circle((0, 0, 0), 0.7), 0.2, 0) irit.color(srf, irit.GREEN) menu = menugengeometry( irit.list( "quit", "draw crv", "draw srf", "draw all", "ctl mesh" ), 0.7,\ 0.5, 0.5, 0.95, 0.95 ) irit.color(menu, irit.WHITE) irit.view(irit.list(menu, crv, srf), irit.ON) # Handle only button 1 down events: while (quit == 0): c = irit.clntcrsr(60000) if (irit.SizeOf(c) == 0): irit.printf("time out in input (one minute wait)\n", irit.nil()) quit = 1 else:
# import math import irit # # # Simple examples for the capability of the PRINTF command. # dlevel = irit.iritstate( "dumplevel", irit.GenRealObject(23)) irit.printf( "this is a line.\n", irit.nil( ) ) irit.printf( "this is a string %s.\n", irit.list( "\"STRING\"" ) ) irit.printf( "this is an integer %-8d, %u, %3o, %05x\n", irit.list( math.pi * 1000, math.pi * 1000, math.pi * 1000, math.pi * 1000 ) ) irit.printf( "this is a float %lf %8.2lg %9.5e\n", irit.list( math.pi, math.pi, math.pi ) ) irit.printf( "this is a vector [%8.5lvf], [%5.2lvg]\n", irit.list( ( 1, 2, 3 ), ( 1, 2, 3 ) ) ) irit.printf( "this is a point [%.5lpf], [%lpg]\n", irit.list( ( 1, 2, 3 ), ( 1, 2, 3 ) ) ) irit.printf( "this is a plane %lPf\n", irit.list( irit.plane( math.sin( 33 ), math.sin( 44 ), math.sin( 55 ), math.sin( 66 ) ) ) ) irit.printf( "this is a object %Df, until here...\n", irit.list( irit.GetAxes() ) ) dlevel = irit.iritstate( "dumplevel", irit.GenRealObject(255 )) irit.printf( "this is a object %8.6lDf, until here...\n", irit.list( irit.GetAxes() ) ) irit.printf( "this is a object %10.8lDg, until here...\n", irit.list( irit.GetAxes() ) ) dlevel = irit.iritstate( "dumplevel", dlevel ) irit.free( dlevel )