irit.save( "ffptdst5", irit.list( e3pts, s1 ) ) pts = irit.ffptdist( s1, 1, 1000 ) e3pts = irit.nil( ) i = 1 while ( i <= irit.SizeOf( pts ) ): prmpt = irit.nth( pts, i ) pt = irit.seval( s1, irit.FetchRealObject(irit.coord( prmpt, 0 )), irit.FetchRealObject(irit.coord( prmpt, 1 ) )) irit.snoc( pt, e3pts ) i = i + 1 irit.interact( irit.list( e3pts, s1 ) ) irit.save( "ffptdst6", irit.list( e3pts, s1 ) ) s2 = irit.surfrev( irit.ctlpt( irit.E3, 0, 0, 0 ) + \ irit.ctlpt( irit.E3, 0.5, 0, 0 ) + \ irit.ctlpt( irit.E3, 0, 0, 1 ) ) irit.color( s2, irit.MAGENTA ) pts = irit.ffptdist( s2, 0, 1000 ) e3pts = irit.nil( ) i = 1 while ( i <= irit.SizeOf( pts ) ): prmpt = irit.nth( pts, i ) pt = irit.seval( s2, irit.FetchRealObject(irit.coord( prmpt, 0 )), irit.FetchRealObject(irit.coord( prmpt, 1 ) )) irit.snoc( pt, e3pts ) i = i + 1 irit.interact( irit.list( e3pts, s2 ) ) irit.save( "ffptdst7", irit.list( e3pts, s2 ) )
# # Surface of revolution of freeform curves. # gcross = 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( 0, 0, 0, 1, 2, 3,\ 4, 4, 4 ) ) irit.color(gcross, irit.GREEN) irit.adwidth(gcross, 5) glass1 = irit.surfrev(gcross) irit.interact(irit.list(gcross, irit.GetAxes(), glass1)) glass2 = irit.surfrev2(gcross, 45, 180) irit.interact(irit.list(gcross, irit.GetAxes(), glass2)) glass3 = irit.surfrevaxs(gcross, (1, 0, 1)) irit.interact(irit.list(gcross, irit.GetAxes(), glass3)) glass4 = irit.surfrevax2(gcross, 45, 315, (1, 0, 0)) irit.interact(irit.list(gcross, irit.GetAxes(), glass4)) irit.free(gcross) irit.save( "surfrev", irit.list( t1, t2, t3, t4, glass1, glass2,\ glass3, glass4 ) )
irit.free(arc8) irit.free(arc9) cross1 = (prof1 + prof4 * irit.tx(60)) cross2 = (prof1 + prof2 * irit.tx(50) + prof4 * irit.tx(80)) irit.free(prof1) irit.free(prof1a) irit.free(prof2) irit.free(prof2a) irit.free(prof3) irit.free(prof3a) irit.free(prof4) irit.free(prof4a) leg1 = irit.surfrev(cross1 * irit.ry((-90))) leg2 = irit.surfrev(cross2 * irit.ry((-90))) irit.free(cross1) irit.free(cross2) legs = irit.list(leg1, leg1 * irit.tx(80), leg2 * irit.trans((0, 190, 0)), leg2 * irit.trans((80, 190, 0))) irit.attrib(legs, "rgb", irit.GenStrObject("244,164,96")) irit.free(leg1) irit.free(leg2) skel = irit.list( irit.box( ( (-1 ), (-1 ), 25 ), 80, 2, 20 ),\ irit.box( ( (-1 ), (-1 ), 25 ), 2, 190, 20 ),\ irit.box( ( (-1 ), 189, 25 ), 80, 2, 20 ),\ irit.box( ( 79, (-1 ), 25 ), 2, 190, 20 ),\ irit.box( ( (-1 ), 90, 25 ), 80, 2, 20 ) )
irit.ctlpt( irit.E3, 10.8, 0, 0.6 ), \ irit.ctlpt( irit.E3, 10.85, 0, 0.6 ), \ irit.ctlpt( irit.E3, 10.9, 0, 0.6 ) ), irit.list( irit.KV_OPEN ) ), irit.cbspline( 3, irit.list( \ irit.ctlpt( irit.E2, 0, 0.01 ), \ irit.ctlpt( irit.E2, 0.01, 1 ), \ irit.ctlpt( irit.E2, 0.5, 1 ), \ irit.ctlpt( irit.E2, 0.7, 1 ), \ irit.ctlpt( irit.E2, 1, 0.01 ) ), irit.list( irit.KV_OPEN ) ), irit.GenIntObject(0), 1 ) if ( do_texture == 1 ): irit.attrib( vtailpara, "texture", texture ) irit.attrib( vtailpara, "rgb", irit.GenStrObject(graycolor) ) irit.color( vtailpara, irit.WHITE ) vtailantn = (-irit.surfrev( irit.ctlpt( irit.E3, 0.001, 0, 1 ) + \ irit.ctlpt( irit.E3, 0.01, 0, 1 ) + \ irit.ctlpt( irit.E3, 0.01, 0, 0.8 ) + \ irit.ctlpt( irit.E3, 0.03, 0, 0.7 ) + \ irit.ctlpt( irit.E3, 0.03, 0, 0.3 ) + \ irit.ctlpt( irit.E3, 0.001, 0, 0 ) ) ) * irit.scale( ( 0.5, 0.5, 0.7 ) ) * irit.roty( (-90 ) ) * irit.trans( ( 10.8, 0, 1.9 ) ) if ( do_texture == 1 ): irit.attrib( vtailantn, "texture", texture ) irit.attrib( vtailantn, "rgb", irit.GenStrObject(redcolor) ) irit.color( vtailantn, irit.RED ) vtail = irit.list( vtail1, vtail2, vtailtop, vtailpara, vtailantn ) irit.free( vtail1 ) irit.free( vtail2 ) irit.free( vtailtop ) irit.free( vtailpara ) irit.free( vtailantn ) #
irit.ctlpt( irit.E2, 0.435, 0.06 ), \ irit.ctlpt( irit.E2, 0.44, 0.24 ), \ irit.ctlpt( irit.E2, 0.47, 0.3 ), \ irit.ctlpt( irit.E2, 0.62, 0.29 ), \ irit.ctlpt( irit.E2, 0.648, 0.26 ), \ irit.ctlpt( irit.E2, 0.648, (-0.26 ) ), \ irit.ctlpt( irit.E2, 0.62, (-0.29 ) ), \ irit.ctlpt( irit.E2, 0.47, (-0.3 ) ), \ irit.ctlpt( irit.E2, 0.44, (-0.24 ) ), \ irit.ctlpt( irit.E2, 0.435, (-0.06 ) ), \ irit.ctlpt( irit.E2, 0.4, (-0.052 ) ), \ irit.ctlpt( irit.E2, 0.1, (-0.055 ) ), \ irit.ctlpt( irit.E2, 0.1, (-0.055 ) ) ), irit.list( irit.KV_OPEN ) ) + \ irit.ctlpt( irit.E2, 0.1, 0.055 ) ) base = irit.surfrev((-basesec) * irit.rx(90)) irit.free(basesec) # # Place n blade on the base: # n = 30 blades = irit.nil() i = 1 while (i <= n): irit.snoc(blade * irit.rz(360 * i / n), blades) i = i + 1 irit.free(blade) all = irit.list(base, blades)
irit.ctlpt( irit.E3, (-0.1 ), 0, 1.1 ), \ irit.ctlpt( irit.E3, (-0.03 ), 0, 1.2 ), \ irit.ctlpt( irit.E3, (-0.03 ), 0, 1.3 ), \ irit.ctlpt( irit.E3, (-0.04 ), 0, 1.31 ), \ irit.ctlpt( irit.E3, (-0.08 ), 0, 1.32 ), \ irit.ctlpt( irit.E3, (-0.09 ), 0, 1.4 ), \ irit.ctlpt( irit.E3, (-0.08 ), 0, 1.5 ) ), irit.list( irit.KV_OPEN ) ) + (-circ ) + irit.cbspline( 3, irit.list( \ irit.ctlpt( irit.E3, (-0.07 ), 0, 2.7 ), \ irit.ctlpt( irit.E3, (-0.07 ), 0, 2.8 ), \ irit.ctlpt( irit.E3, (-0.01 ), 0, 2.9 ), \ irit.ctlpt( irit.E3, (-0.05 ), 0, 2.9 ), \ irit.ctlpt( irit.E3, (-0.05 ), 0, 3 ), \ irit.ctlpt( irit.E3, (-0.001 ), 0, 3 ) ), irit.list( irit.KV_OPEN ) ) ) irit.free(circ) body = irit.surfrev(bodysec) irit.free(bodysec) irit.attrib(body, "transp", irit.GenRealObject(0.95)) irit.color(body, irit.WHITE) base1sec = irit.cbspline( 3, irit.list( irit.ctlpt( irit.E3, (-0.08 ), 0, 1.4 ), \ irit.ctlpt( irit.E3, (-0.02 ), 0, 1.4 ), \ irit.ctlpt( irit.E3, (-0.01 ), 0, 1.7 ), \ irit.ctlpt( irit.E3, (-0.01 ), 0, 2 ) ), irit.list( irit.KV_OPEN ) ) base1 = irit.surfrev(base1sec) irit.free(base1sec) irit.attrib(base1, "transp", irit.GenRealObject(0.95)) irit.color(base1, irit.WHITE) niddle1sec = irit.cbspline( 3, irit.list( irit.ctlpt( irit.E3, (-0.002 ), 0, 1.7 ), \ irit.ctlpt( irit.E3, (-0.002 ), 0, 1.8 ), \
v6 = (0.9, 0, (-0.2)) v7 = (0.9, 0, (-0.25)) v8 = (0.6, 0, (-0.25)) v9 = (0.6, 0, (-0.2)) v10 = (0.7, 0, (-0.2)) v11 = (0.7, 0, 0.2) v12 = (0.6, 0, 0.2) cross = irit.poly( irit.list( v1, v2, v3, v4, v5, v6,\ v7, v8, v9, v10, v11, v12 ),\ 0 ) irit.view(cross, irit.ON) irit.SetResolution(40) t1 = irit.surfrev(cross) irit.free(cross) irit.interact(t1) irit.SetResolution(16) 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)
# # Layout (prisa) of a sphere - several resolutions/directions. # view_mat3d = irit.rotx((-90)) * irit.roty(135) * irit.rotx((-30)) * irit.scale( (0.5, 0.5, 0.5)) view_mat2d = irit.scale((0.15, 0.15, 0.15)) * irit.trans((0, (-0.8), 0)) s45 = math.sin(math.pi / 4) halfcirc = irit.cbspline( 3, irit.list( irit.ctlpt( irit.P3, 1, 0, 0, 1 ), \ irit.ctlpt( irit.P3, s45, (-s45 ), 0, s45 ), \ irit.ctlpt( irit.P3, 1, (-1 ), 0, 0 ), \ irit.ctlpt( irit.P3, s45, (-s45 ), 0, (-s45 ) ), \ irit.ctlpt( irit.P3, 1, 0, 0, (-1 ) ) ), irit.list( 0, 0, 0, 1, 1, 2,\ 2, 2 ) ) sp = irit.surfrev(halfcirc) irit.color(sp, irit.YELLOW) irit.interact(irit.list(view_mat3d, sp)) sp_prisa = irit.prisa(sp, samppercrv, (-0.6), irit.COL, (0, 0.1, 0), 0) irit.color(sp_prisa, irit.YELLOW) irit.interact(irit.list(view_mat3d, sp_prisa)) sp_prisa = irit.prisa(sp, samppercrv, 0.6, irit.COL, (0, 0.1, 0), 0) irit.interact(irit.list(view_mat2d, sp_prisa)) sp_prisa = irit.prisa(sp, samppercrv, (-0.3), irit.COL, (0, 0.1, 0), 0) irit.color(sp_prisa, irit.YELLOW) irit.interact(irit.list(view_mat3d, sp_prisa))
irit.ctlpt( irit.E3, 0.25, 0, (-0.7 ) ), \ irit.ctlpt( irit.E3, 0.25, 0, (-0.1 ) ), \ irit.ctlpt( irit.E3, 0.2, 0, (-0.05 ) ), \ irit.ctlpt( irit.E3, 0.15, 0, 0 ), \ irit.ctlpt( irit.E3, 0.1, 0, 0.6 ), \ irit.ctlpt( irit.E3, 0.11, 0, 0.61 ), \ irit.ctlpt( irit.E3, 0.12, 0, 0.61 ), \ irit.ctlpt( irit.E3, 0.12, 0, 0.65 ), \ irit.ctlpt( irit.E3, 0.09, 0, 0.65 ), \ irit.ctlpt( irit.E3, 0.07, 0, 0.64 ), \ irit.ctlpt( irit.E3, 0.1, 0, (-0.05 ) ), \ irit.ctlpt( irit.E3, 0.21, 0, (-0.1 ) ), \ irit.ctlpt( irit.E3, 0.21, 0, (-0.64 ) ), \ irit.ctlpt( irit.E3, 0.18, 0, (-0.67 ) ), \ irit.ctlpt( irit.E3, 0, 0, (-0.66 ) ) ), irit.list( irit.KV_OPEN ) ) srf2 = irit.surfrev(bcross) irit.free(bcross) irit.color(srf2, irit.GREEN) # # Must make them compatible before doing some morphing. # irit.ffcompat(srf1, srf2) # # Since we would like the animation to look as good as possible we need # to precompute as much as possible before invoking view to erase old # drawing and display new one. That is why we precompute isolines. # i = 0
t = irit.time( 1 ) save_mat = irit.GetViewMatrix() irit.SetViewMatrix( irit.GetViewMatrix() * irit.scale( ( 0.5, 0.5, 0.5 ) )) save_res = irit.GetResolution() irit.SetResolution( 12) t1 = irit.cbspline( 3, irit.list( irit.ctlpt( irit.E3, 0.25, 0, 1 ), \ irit.ctlpt( irit.E3, 0.01, 0, 1 ), \ irit.ctlpt( irit.E3, 0.04, 0, 1.1 ), \ irit.ctlpt( irit.E3, 0.04, 0, 1.25 ), \ irit.ctlpt( irit.E3, 0.04, 0, 1.3 ), \ irit.ctlpt( irit.E3, 0.001, 0, 1.3 ) ), irit.list( 0, 0, 0, 1, 2, 3,\ 4, 4, 4 ) ) t1 = irit.surfrev( t1 ) t2 = t1 * irit.rotx( 180 ) t = irit.gpolygon( irit.list( t1, t2 ), 1 ) irit.free( t1 ) irit.free( t2 ) irit.interact( irit.list( irit.GetViewMatrix(), t ) ) irit.SetResolution( 20) t3 = irit.cylin( ( 0, 0, (-2 ) ), ( 0, 0, 4 ), 0.1, 3 ) irit.view( t3, irit.OFF ) s1 = t3 * t irit.free( t ) irit.free( t3 )
# # Create the big cylinder ( no hole yet ) # c1 = irit.cylin((0, 0, 0), (0, 0, 0.7), 0.2, 3) irit.attrib(c1, "id", irit.GenRealObject(1)) # # And the small one ( including the torus & sphere cut # c2 = irit.cylin((1, 0, 0.05), (0, 0, 0.4), 0.15, 3) irit.attrib(c2, "id", irit.GenRealObject(2)) irit.SetResolution(8) t1 = irit.circpoly((0, 1, 0), (0.151, 0, 0.25), 0.03) irit.SetResolution(16) t2 = irit.surfrev(t1) * irit.trans((1, 0, 0)) irit.free(t1) irit.attrib(t2, "id", irit.GenRealObject(3)) b1 = (c2 - t2) irit.free(c2) irit.free(t2) irit.SetResolution(12) s1 = irit.sphere((1, 0, 0), 0.135) irit.attrib(s1, "id", irit.GenRealObject(4)) b2 = (b1 - s1) irit.free(b1) irit.free(s1) irit.view(irit.list(irit.GetViewMatrix(), b2), irit.ON)
carouselrod1 = irit.list( carouseltube, chairbase * irit.scale( ( 0.35, 0.35, 0.35 ) ) * irit.trans( ( (-0.93 ), 0, 0.03 ) ), chairbase * irit.roty( 90 ) * irit.scale( ( 0.35, 0.35, 0.35 ) ) * irit.trans( ( (-0.98 ), 0, 0.25 ) ), chairbase * irit.scale( ( 0.35, 0.35, 0.35 ) ) * irit.trans( ( (-0.93 ), 0, 0.03 ) ) * irit.rotz( 180 ), chairbase * irit.roty( 90 ) * irit.scale( ( 0.35, 0.35, 0.35 ) ) * irit.trans( ( (-0.98 ), 0, 0.25 ) ) * irit.rotz( 180 ) ) carouselrod2 = carouselrod1 * irit.rotz( 45 ) carouselrod3 = carouselrod1 * irit.rotz( 90 ) carouselrod4 = carouselrod1 * irit.rotz( 135 ) irit.free( carouseltube ) carouselrods = irit.list( carouselrod1, carouselrod2, carouselrod3, carouselrod4 ) irit.free( carouselrod1 ) irit.free( carouselrod2 ) irit.free( carouselrod3 ) irit.free( carouselrod4 ) carouselbase = (-irit.surfrev( irit.cbspline( 3, irit.list( irit.ctlpt( irit.E3, 0.001, 0, 0.5 ), \ irit.ctlpt( irit.E3, 0.03, 0, 0.5 ), \ irit.ctlpt( irit.E3, 0.03, 0, 0.35 ), \ irit.ctlpt( irit.E3, 0.06, 0, 0.2 ), \ irit.ctlpt( irit.E3, 0.07, 0, 0.06 ), \ irit.ctlpt( irit.E3, 0.13, 0, 0.015 ), \ irit.ctlpt( irit.E3, 0.13, 0, 0 ) ), irit.list( irit.KV_OPEN ) ) ) ) irit.color( carouselbase, irit.GREEN ) irit.attrib( carouselbase, "reflect", irit.GenRealObject(0.9 )) carousel = irit.list( carouselbase, carouselrods * irit.trans( ( 0, 0, 0.3 ) ) ) irit.free( carouselbase ) irit.free( carouselrods ) # # A swing # swingsiderod = irit.sweepsrf( irit.circle( ( 0, 0, 0 ), 0.01 ), irit.cbspline( 3, irit.list( irit.ctlpt( irit.E3, 0.2, 0, (-0.05 ) ), \ irit.ctlpt( irit.E3, 0.1, 0, 0.95 ), \
#This is an IRIT script and as such requires both math and irit import: # import math import irit # # # The Sphericon - See Scientific American, pp 98-99, October 1999. # # Gershon Elber, December 1999 # cone2 = irit.surfrev( irit.ctlpt( irit.E3, 0, 0, (-1 ) ) + \ irit.ctlpt( irit.E3, 1, 0, 0 ) + \ irit.ctlpt( irit.E3, 0, 0, 1 ) ) cone2half = irit.sregion(cone2, irit.COL, 0, 2) sphericon = irit.list(cone2half * irit.ry(90), cone2half * irit.rz(180)) irit.view(irit.list(sphericon, irit.GetAxes()), irit.ON) irit.save("sphercon", sphericon) irit.free(cone2) irit.free(cone2half) irit.free(sphericon) irit.pause()
base = (-irit.sfromcrvs(threads, 3, irit.KV_FLOAT)) irit.attrib(base, "rgb", irit.GenStrObject("200,200,200")) coverglasscross = irit.cbspline( 3, irit.list( irit.ctlpt( irit.E2, 0, width ), \ irit.ctlpt( irit.E2, (-0.2 ), width + 0.2 ), \ irit.ctlpt( irit.E2, (-0.8 ), width + 0.2 ), \ irit.ctlpt( irit.E2, (-1.4 ), width + 0.5 ), \ irit.ctlpt( irit.E2, (-1.6 ), width + 0.7 ), \ irit.ctlpt( irit.E2, (-2.6 ), width + 1.4 ), \ irit.ctlpt( irit.E2, (-4.9 ), width + 1.2 ), \ irit.ctlpt( irit.E2, (-5.7 ), width ), \ irit.ctlpt( irit.E2, (-5.7 ), 0.001 ) ), irit.list( irit.KV_OPEN ) ) * irit.ry( 90 ) coverglass = irit.surfrev(coverglasscross) * irit.ry((-90)) irit.attrib(coverglass, "rgb", irit.GenStrObject("255,255,255")) irit.attrib(coverglass, "transp", irit.GenRealObject(0.95)) wireholder = irit.swpcircsrf( irit.cbspline( 3, irit.list( irit.ctlpt( irit.E3, 0, 0, (-2 ) ), \ irit.ctlpt( irit.E3, 0, 0, 0.8 ), \ irit.ctlpt( irit.E3, 0, 0, 1.2 ), \ irit.ctlpt( irit.E3, 0.8, 0, 3 ) ), irit.list( irit.KV_OPEN ) ), 0.02, 1 ) wireholder1 = wireholder * irit.ry((-90)) * irit.tz(0.2) wireholder2 = wireholder1 * irit.rx(180) irit.attrib(wireholder1, "rgb", irit.GenStrObject("128,55,55")) irit.attrib(wireholder2, "rgb", irit.GenStrObject("128,55,55")) innerglass = irit.surfrev( irit.cbspline( 3, irit.list( irit.ctlpt( irit.E3, 0.3, 0, (-2 ) ), \ irit.ctlpt( irit.E3, 0.3, 0, 0.3 ), \
^ irit.coerce(irit.seval(dvs, 0.5, 0.5), irit.VECTOR_TYPE), irit.coerce(irit.seval(ns, 0.5, 0.5), irit.VECTOR_TYPE), irit.snormal(s, 0.5, 0.5))) # # A (portion of) sphere (rational surface). # halfcirc = irit.cbspline( 3, irit.list( irit.ctlpt( irit.P3, 1, 0, 0, 1 ), \ irit.ctlpt( irit.P3, s45, (-s45 ), 0, s45 ), \ irit.ctlpt( irit.P3, 1, (-1 ), 0, 0 ), \ irit.ctlpt( irit.P3, s45, (-s45 ), 0, (-s45 ) ), \ irit.ctlpt( irit.P3, 1, 0, 0, (-1 ) ) ), irit.list( 0, 0, 0, 1, 1, 2,\ 2, 2 ) ) irit.color(halfcirc, irit.WHITE) s = irit.surfrev(halfcirc) irit.color(s, irit.WHITE) irit.free(halfcirc) dus = irit.sderive(s, irit.ROW) irit.color(dus, irit.GREEN) dvs = irit.sderive(s, irit.COL) irit.color(dvs, irit.MAGENTA) if (display == 1): irit.interact(irit.list(irit.GetAxes(), s, dus, dvs)) ns = irit.snrmlsrf(s) irit.color(ns, irit.GREEN) if (display == 1): irit.interact(irit.list(irit.GetAxes(), s, ns))
save_approx_opt = irit.GetPolyApproxOpt() # ############################################################################# # # Create a glass surface # c = irit.cbspline( 4, irit.list( irit.ctlpt( irit.E3, 0.357, (-0.48 ), 0 ), \ irit.ctlpt( irit.E2, 0.369, (-0.41 ) ), \ irit.ctlpt( irit.E2, 0.045, (-0.41 ) ), \ irit.ctlpt( irit.E2, 0.05, (-0.22 ) ), \ irit.ctlpt( irit.E2, 0.05, 0.08 ), \ irit.ctlpt( irit.E2, 0.5, 0.1 ), \ irit.ctlpt( irit.E2, 0.5, 0.5 ), \ irit.ctlpt( irit.E2, 0.36, 0.7 ) ), irit.list( irit.KV_OPEN ) ) srf = irit.surfrev(c * irit.rx(90)) irit.free(c) # ############################################################################# # # Spikes like texture # srftext1 = irit.ruledsrf( irit.ctlpt( irit.E2, 0, 0 ) + \ irit.ctlpt( irit.E2, 0, 1 ), \ irit.ctlpt( irit.E2, 1, 0 ) + \ irit.ctlpt( irit.E2, 1, 1 ) ) srftext1 = irit.sraise(irit.sraise(srftext1, irit.ROW, 3), irit.COL, 3) srftext1 = irit.srefine(srftext1, irit.ROW, 0, irit.list(0.25, 0.5, 0.75)) srftext1 = irit.srefine(srftext1, irit.COL, 0, irit.list(0.25, 0.5, 0.75)) srftext1 = irit.coerce(srftext1, irit.E3)