Пример #1
0
def plotfunc2d(minx, maxx, n):
    pl = plotfunc2d2poly(minx, maxx, n)
    irit.color(pl, irit.YELLOW)
    irit.attrib(pl, "width", irit.GenRealObject(0.05))
    miny = 1e+006
    maxy = -1e+006
    i = 0
    while (i <= 2):
        miny = miny + i
        i = i + 1
    retval = pl
    i = 0
    while (i <= irit.SizeOf(pl) - 1):
        v = irit.coord(pl, i)
        real_val = irit.FetchRealObject(irit.coord(v, 1))
        if (real_val > maxy):
            maxy = irit.FetchRealObject(irit.coord(v, 1))
        if (real_val < miny):
            miny = irit.FetchRealObject(irit.coord(v, 1))
        i = i + 1
    ax = (irit.poly(
        irit.list((irit.min(minx, 0), 0, 0),
                  (irit.max(maxx, 0), 0, 0)), 1) + irit.poly(
                      irit.list((0, irit.min(miny, 0), 0),
                                (0, irit.max(maxy, 0), 0)), 1))

    irit.color(ax, irit.RED)
    irit.attrib(ax, "width", irit.GenRealObject(0.02))
    tr = irit.trans(
        ((-minx + maxx) / 2.0, (-miny + maxy) / 2.0, 0)) * irit.scale(
            (2.0 / (maxx - minx), 2.0 / (maxy - miny), 0))
    sv = irit.GetViewMatrix()
    irit.SetViewMatrix(irit.rotx(0))
    retval = irit.list(pl, ax) * tr
    irit.viewobj(irit.list(irit.GetViewMatrix(), retval))
    irit.printf("xdomain = [%lf %lf], ydomain = [%lf %lf]\n",
                irit.list(minx, maxx, miny, maxy))
    irit.SetViewMatrix(sv)
    return retval
Пример #2
0
#This is an IRIT script and as such requires both math and irit import:
#
import math
import irit
#



# 
#  Examples for trimming offsets with the TOFFSET command.
# 
#                                        Gershon ELber, Nov 2002
# 

save_mat = irit.GetViewMatrix()
irit.SetViewMatrix(  irit.sc( 0.4 ) * irit.ty( (-0.8 ) ))
irit.viewobj( irit.GetViewMatrix() )

#  Faster product using Bezier Decomposition
oldip = irit.iritstate( "bspprodmethod", irit.GenRealObject(0) )

irit.viewstate( "pllnaprx", 1 )
irit.viewstate( "pllnaprx", 1 )

# ############################################################################

c0 = irit.cbspline( 3, irit.list( irit.ctlpt( irit.E2, (-1 ), 3 ), \
                                  irit.ctlpt( irit.E2, (-0.3 ), 0 ), \
                                  irit.ctlpt( irit.E2, 0.3, 0 ), \
                                  irit.ctlpt( irit.E2, 1, 3 ) ), irit.list( irit.KV_OPEN ) )
irit.view( c0, irit.ON )
Пример #3
0
#This is an IRIT script and as such requires both math and irit import:
#
import math
import irit
#


# 
#  Examples of constructing uniform point distributions on freeforms.
# 
#                                        Gershon Elber, August 1996.
# 

save_mat = irit.GetViewMatrix()
irit.SetViewMatrix(  irit.rotx( 0 ))
irit.viewobj( irit.GetViewMatrix() )

# 
#  Some examples for curves.
# 

c1 = irit.cbezier( irit.list( irit.ctlpt( irit.E2, (-1 ), 0 ), \
                              irit.ctlpt( irit.E2, (-1 ), 0.1 ), \
                              irit.ctlpt( irit.E2, (-0.9 ), (-0.1 ) ), \
                              irit.ctlpt( irit.E2, 0.9, 0 ) ) )
irit.color( c1, irit.MAGENTA )

pts = irit.ffptdist( c1, 0, 1000 )
e2pts = irit.nil(  )
i = 1
while ( i <= irit.SizeOf( pts ) ):
Пример #4
0
#
import math
import irit
#

#
#  This solid was taken from: Geometric Modeling,
#  by Michael E. Mortenson page 441, figure 10.9
#
#                                Created by Gershon Elber,       Apr 90
#

t = irit.time(1)

save_mat = irit.GetViewMatrix()
irit.SetViewMatrix(irit.GetViewMatrix() * irit.scale((0.5, 0.5, 0.5)))
save_res = irit.GetResolution()

#
#  Try it with coplanar false for fun.
#
#  irit.iritstate( "coplanar", false );
#

psort = irit.iritstate("polysort", irit.GenRealObject(0))

t1 = irit.box(((-2), (-0.35), 0), 4, 0.7, 0.4)
irit.SetResolution(80)
t2 = irit.cylin((0, 0, 0), (0, 0, 0.4), 1.4, 3)
s1 = t1 * t2
irit.free(t1)
Пример #5
0
#This is an IRIT script and as such requires both math and irit import:
#
import math
import irit
#

#
#  Convex Hull and related computation for freeform curves.
#
#                                Gershon Elber, February 1996
#

save_mat = irit.GetViewMatrix()
irit.SetViewMatrix(irit.sc(0.5))
irit.viewobj(irit.GetViewMatrix())
ri = irit.iritstate("randominit", irit.GenIntObject(1964))
#  Seed-initiate the randomizer,
irit.free(ri)

# ############################################################################

pts = irit.nil()
len = 1
numpts = 5
i = 0
while (i <= numpts):
    r = irit.random(0, 2)
    pt = irit.ctlpt(irit.E2, len * r * math.cos(i * 2 * math.pi / numpts),
                    len * r * math.sin(i * 2 * 3.14159 / numpts))
    irit.snoc(pt, pts)
    i = i + 1
Пример #6
0
#This is an IRIT script and as such requires both math and irit import:
#
import math
import irit
#

#
#  More examples of animated 3d bisector computations of 3-space crv and pt.
#
#                        Gershon Elber, August 1996.
#

speed = 5
filecount = 1000

irit.SetViewMatrix(irit.GetViewMatrix() * irit.sc(0.4))
irit.viewobj(irit.GetViewMatrix())

irit.viewstate("depthcue", 0)


def polesfree(srf, dpth, tmin, tmax):
    retval = irit.nil()
    return retval


def polesfree(srf, dpth, tmin, tmax):
    if (irit.ffpoles(srf) == 0):
        retval = irit.list(srf)
    else:
        if (dpth <= 0):
Пример #7
0
save_mat = irit.GetViewMatrix()

square = irit.poly( irit.list( ( 0, 0, 0 ), ( 0, 1, 0 ), ( 1, 1, 0 ), ( 1, 0, 0 ), ( 0, 0, 0 ) ), irit.TRUE )
irit.attrib( square, "width", irit.GenStrObject("0.02" ))
irit.color( square, irit.RED )

rectan = irit.poly( irit.list( ( 0, 0, 0 ), ( 0, 1, 0 ), ( 2, 1, 0 ), ( 2, 0, 0 ), ( 0, 0, 0 ) ), irit.TRUE )
irit.attrib( rectan, "width", irit.GenStrObject("0.02" ))
irit.color( rectan, irit.RED )

triang = irit.poly( irit.list( ( 0, 0, 0 ), ( 0, 1, 0 ), ( 1.5, 0.5, 0 ), ( 0, 0, 0 ) ), irit.TRUE )
irit.attrib( triang, "width", irit.GenStrObject("0.02" ))
irit.color( triang, irit.RED )

irit.SetViewMatrix(  irit.scale( ( 0.2, 0.2, 0.2 ) ))
cube_prisa = irit.list( square, 
						square * irit.trans( ( 1, 0, 0 ) ), 
						square * irit.trans( ( 2, 0, 0 ) ), 
						square * irit.trans( ( (-1 ), 0, 0 ) ), 
						square * irit.trans( ( 0, 1, 0 ) ), 
						square * irit.trans( ( 0, (-1 ), 0 ) ) )
irit.interact( irit.list( irit.GetViewMatrix(), cube_prisa ) )
irit.save( "cubepris", cube_prisa )
irit.free( cube_prisa )

box_prisa = irit.list( rectan, square * irit.trans( ( 2, 0, 0 ) ), square * irit.trans( ( (-1 ), 0, 0 ) ), rectan * irit.trans( ( 0, 1, 0 ) ), rectan * irit.trans( ( 0, 2, 0 ) ), rectan * irit.trans( ( 0, (-1 ), 0 ) ) )
irit.interact( irit.list( irit.GetViewMatrix(), box_prisa ) )
irit.save( "box_pris", box_prisa )
irit.free( box_prisa )
Пример #8
0
        tr1 = virttree3(newpos,
                        rotatevector2(dir, rfactor) * lfactor, size * wfactor,
                        blevel, level - 1)
        tr2 = virttree3(
            newpos,
            rotatevector2(dir, rfactor * irit.random((-1), 1)) * lfactor,
            size * wfactor, blevel, level - 1)
        tr3 = virttree3(newpos,
                        rotatevector2(dir, (-rfactor)) * lfactor,
                        size * wfactor, blevel, level - 1)
        retval = retval + tr1 + tr2 + tr3
    return retval


irit.SetViewMatrix(
    irit.rotx((-90)) * irit.roty(135) * irit.rotx((-30)) * irit.scale(
        (0.2, 0.2, 0.2)) * irit.trans((0, (-0.5), 0)))

tree1 = virttree2(irit.point(0, 0, 0), irit.vector(0, 0, 1), 0.3, 4, 7)
irit.interact(irit.list(irit.GetViewMatrix(), tree1))
irit.free(tree1)

tree2 = virttree3(irit.point(0, 0, 0), irit.vector(0, 0, 1), 0.5, 3, 5)
irit.interact(tree2)
irit.free(tree2)


def forest3(n, m, blevel, level):
    retval = irit.nil()
    i = 0
    while (i <= n):
Пример #9
0
#
import math
import irit
#


# 
#  Routines to test the boolean operations among geometric objects:
# 
#  Intersection between a box and a cylinder - make a hole in the box
# 
b = irit.box( ( (-3 ), (-2 ), (-1 ) ), 6, 4, 2 )
c = irit.cylin( ( 0, 0, (-4 ) ), ( 0, 0, 8 ), 1, 3 )

save_view = irit.GetViewMatrix()
irit.SetViewMatrix(  irit.GetViewMatrix() * irit.scale( ( 0.1, 0.1, 0.1 ) ))

a1 = ( b + c )
irit.interact( irit.list( irit.GetViewMatrix(), a1 ) )

a2 = b * c
irit.interact( a2 )

a3 = ( b - c )
irit.interact( a3 )

c = ( irit.con2( ( 0, 0, 0 ), ( 0, 0, 28 ), 17, 12, 3 ) - irit.con2( ( 0, 0, (-1 ) ), ( 0, 0, 30 ), 14, 9, 3 ) )
a4 = ( c - irit.box( ( (-50 ), (-50 ), (-1 ) ), 100, 100, 28 ) )

irit.save( "closloop", irit.list( a1, a2, a3, a4 ) )
Пример #10
0
#This is an IRIT script and as such requires both math and irit import:
#
import math
import irit
#

#
#  Some examples of using reflection lines.
#
#                        Gershon Elber, October 1999
#

save_res = irit.GetResolution()
save_mat = irit.GetViewMatrix()

irit.SetViewMatrix(irit.rx(2) * irit.ry(2) * irit.sc(0.5))
irit.viewobj(irit.GetViewMatrix())

irit.SetViewMatrix(save_mat)

# ############################################################################

s = 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.rx( 90 )
s = irit.sraise(irit.sraise(s, irit.ROW, 3), irit.COL, 3)
s = (-irit.seditpt(s, irit.ctlpt(irit.E3, 0, 1, 0), 1, 1))
irit.color(s, irit.MAGENTA)

reflectlns = irit.nil()
Пример #11
0
    if (irit.ThisObject(txt) == irit.LIST_TYPE):
        retval = irit.nil()
        i = 1
        while (i <= irit.SizeOf(txt)):
            irit.snoc(textgeom3d(irit.nth(txt, i), wdth, dpth), retval)
            i = i + 1
    else:
        retval = textgeom3daux(txt, wdth, dpth)
    return retval


txtu = irit.textgeom("ABCDEFGHIJKLMNOPQRSTUVWXYZ", (0.02, 0, 0), 0.1)
txtl = irit.textgeom("a bcdefghijklmnopqrstuvwxyz", (0.02, 0, 0), 0.1)
txtn = irit.textgeom("0 1  2   34567890#$&*()+-=;:/?.,", (0.02, 0, 0), 0.1)

irit.SetViewMatrix(irit.sc(0.8) * irit.tx((-0.9)))
all = irit.list(txtu, txtl * irit.ty((-0.2)), txtn * irit.ty((-0.4)))
irit.interact(irit.list(irit.GetViewMatrix(), all))
irit.save("textgm1", irit.list(irit.GetViewMatrix(), all))

txtu3d = textgeom3d(txtu, 0.01, 0.1)
txtl3d = textgeom3d(txtl, 0.01, 0.1)
txtn3d = textgeom3d(txtn, 0.01, 0.1)
all = irit.convex(
    irit.list(txtu3d, txtl3d * irit.ty((-0.2)), txtn3d * irit.ty((-0.4))))
irit.interact(irit.list(irit.GetViewMatrix(), all))
irit.save("textgm2", irit.list(irit.GetViewMatrix(), all))

irit.free(txtu)
irit.free(txtl)
irit.free(txtn)
Пример #12
0
#This is an IRIT script and as such requires both math and irit import:
#
import math
import irit
#


# 
#  This is the DtoP custom designed Gearbox 'EndPlate'
#                        Designed by Andy Bray <*****@*****.**> 1992
# 

save_mat = irit.GetViewMatrix()
irit.SetViewMatrix(  irit.GetViewMatrix() * 
					 irit.scale( ( 0.13, 0.13, 0.13 ) ))
save_res = irit.GetResolution()

cplnr = irit.iritstate( "coplanar", irit.GenIntObject(1) )
#  Try 'irit.iritstate("coplanar", false);'

box1 = irit.box( ( 0, 0, 1 ), 7.8, 10.4, 1.6 )
# If the line below is uncommented, then the file fails at the first operation
# most other resolutions work without problem. This could be because
# coincidentally something approximates colinear when it is not, but in that
# case a resultion of 50 or 20 might do it, and do not.
# resolution = 10;
hole1 = irit.cylin( ( 1, 1, 2.601 ), ( 0, 0, (-1.6015 ) ), 0.3, 3 )
solid1 = ( box1 - hole1 )
irit.free( hole1 )
irit.free( box1 )
irit.view( irit.list( irit.GetViewMatrix(), solid1 ), irit.ON )
Пример #13
0
#This is an IRIT script and as such requires both math and irit import:
#
import math
import irit
#


# 
#  A modern cup.
# 
#                                Gershon Elber, November 1995
# 

save_mat = irit.GetViewMatrix()
irit.SetViewMatrix(  irit.rotx( (-90 ) ) * irit.tx( (-0.5 ) ) * irit.ty( (-1 ) ) * irit.sc( 0.8 ))
irit.viewobj( irit.GetViewMatrix() )

ptlist = irit.nil(  )
i = 0
while ( i <= 7 ):
    irit.snoc(  irit.point( math.cos( i * 2 * math.pi/8 ), math.sin( i * 2 * 3.14159/8 ), 0 ), ptlist )
    i = i + 1

c1 = irit.coerce( irit.cbspline( 3, ptlist, irit.list( irit.KV_PERIODIC ) ), irit.KV_OPEN ) * irit.rz( (-22.5 ) )
c2 = irit.coerce( irit.cbspline( 2, ptlist, irit.list( irit.KV_PERIODIC ) ), irit.KV_OPEN ) * irit.sc( 1.1 )
irit.free( ptlist )

minsize = 0.01
body = irit.sfromcrvs( irit.list( c2 * irit.sc( minsize ) * irit.tz( 0.05 ), c2 * irit.sc( 0.7 ) * irit.tz( 0.05 ), c2 * irit.sc( 0.8 ) * irit.tz( 0.05 ), c2 * irit.sc( 0.9 ), c2, c2 * irit.tz( 2 ), c2 * irit.tz( 2.2 ), c1 * irit.tz( 2.2 ), c1 * irit.tz( 2 ), c1 * irit.tz( 0.4 ), c1 * irit.sc( 0.5 ) * irit.tz( 0.2 ), c1 * irit.sc( minsize ) * irit.tz( 0.2 ) ), 3, irit.KV_OPEN )
irit.free( c1 )
irit.free( c2 )
Пример #14
0
1, 2, 2, 2, 3, 3,\
3, 4, 4, 4, 4 ) ) )

cap = irit.sreparam( irit.sregion( cap, irit.COL, 0.0005, 2 ), irit.COL, 0,\
2 )


echosrc = irit.iritstate( "echosource", echosrc )
irit.free( echosrc )

irit.color( body, irit.RED )
irit.color( cap, irit.GREEN )
irit.color( spout, irit.BLUE )
irit.color( handle, irit.MAGENTA )

irit.SetViewMatrix(  irit.scale( ( 0.3, 0.3, 0.3 ) ))
teapot = irit.list( body, spout, handle, cap )

# interact( list( view_mat, Teapot ) );
irit.save( "teapot", teapot )

tea1 = teapot * irit.tx( 7 ) 
tea2 = teapot * irit.tx( 7 ) * irit.tz( 5 ) 
tea3 = teapot * irit.tz( 5 ) 

irit.SetViewMatrix(  irit.scale( ( 0.15, 0.15, 0.15 ) ) * irit.rx( 50 ) * irit.ry( 40 ) * irit.tx( (-0.7 ) ) * irit.ty( 0.2 ))
irit.interact( irit.list( irit.GetViewMatrix(), teapot, tea1, tea2, tea3 ) )
irit.free( tea1 )
irit.free( tea2 )
irit.free( tea3 )
Пример #15
0
#

#
#  Yet another simple 3D mechanical object. This one whas taken from
#  PC MAGAZINE volume 8 number 2, January 31, 1989, page 34. This was example
#  that was implemented under AutoCAD ver 10, and it looked nice so I tried
#  it... It took me about an hour to complete.
#
#                                Created by Gershon Elber,       Mar 89
#

save_mat = irit.GetViewMatrix()
save_res = irit.GetResolution()

irit.SetResolution(16)
irit.SetViewMatrix(irit.GetViewMatrix() * irit.trans((0.4, (-0.1), 0)))


def extractidparts(obj, id, rgb):
    retval = irit.nil()
    i = 0
    while (i <= irit.SizeOf(obj) - 1):
        p = irit.coord(obj, i)
        if (irit.getattr(p, "id") == irit.GenRealObject(id)):
            irit.snoc(p, retval)
        i = i + 1
    retval = irit.mergepoly(retval)
    irit.attrib(retval, "rgb", irit.GenStrObject(rgb))
    return retval

Пример #16
0
							 clr ), 
				   circs )
        i = i + 1
    irit.color( edges, irit.MAGENTA )
    irit.color( tans, irit.GREEN )
    if ( drawall ):
        all = irit.list( prim1, prim2, prim3, edges, tans, circs,\
        equapt )
    else:
        all = irit.list( prim1, prim2, prim3, circs )
    if ( irit.SizeOf( irit.GenStrObject(fname) ) > 0 ):
        irit.save( fname, all )
    irit.view( all, irit.ON )

save_mat = irit.GetViewMatrix()
irit.SetViewMatrix(  irit.sc( 0.8 ))
irit.viewobj( irit.GetViewMatrix() )

# ############################################################################

i = 0
while ( i <= 20 ):
    pt1 =  irit.point( irit.random( (-0.5 ), 0.5 ), irit.random( (-0.5 ), 0.5 ), 0 )
    pt2 =  irit.point( irit.random( (-0.5 ), 0.5 ), irit.random( (-0.5 ), 0.5 ), 0 )
    pt3 =  irit.point( irit.random( (-0.5 ), 0.5 ), irit.random( (-0.5 ), 0.5 ), 0 )
    skel2dcolor( pt1, pt2, pt3, 0.01, irit.list( 0.01, (-1e-010 ) ), 1, "" )
    irit.milisleep( delay )
    i = i + 1

skel2dcolor( pt1, pt2, pt3, 0.01, irit.list( 0.01, (-1e-010 ) ), 1, "skel2d1" )
irit.pause(  )
Пример #17
0
irit.SetResolution(30)

#
#  Computing self intersection by a Boolean operation with itself - Parametric.
#
dummy = irit.iritstate("intercrv", irit.GenRealObject(1))
uvbool = irit.iritstate("uvboolean", irit.GenRealObject(1))
s1inter = (s1 + s1)
irit.color(s1inter, irit.RED)
irit.attrib(s1inter, "dwidth", irit.GenRealObject(3))

paramdomain = irit.poly(irit.list((0, 0, 0), (0, 1, 0), (2, 1, 0), (2, 0, 0)),
                        irit.FALSE)
irit.color(paramdomain, irit.GREEN)

irit.SetViewMatrix(irit.tx((-1)) * irit.sc(0.6))
irit.interact(irit.list(irit.GetViewMatrix(), paramdomain, s1inter))

#
#  Computing self intersection by a Boolean operation with itself - Euclidean.
#
dummy = irit.iritstate("intercrv", irit.GenRealObject(1))
dummy = irit.iritstate("uvboolean", irit.GenRealObject(0))
s1inter = (s1 + s1)
irit.color(s1inter, irit.RED)
irit.attrib(s1inter, "dwidth", irit.GenRealObject(5))

irit.SetViewMatrix(save_mat * irit.sc(0.7) * irit.ty((-0.3)))
irit.interact(irit.list(irit.GetViewMatrix(), s1, s1inter))
irit.save("selfint1", irit.list(s1, s1inter))
Пример #18
0
#This is an IRIT script and as such requires both math and irit import:
#
import math
import irit
#

#
#  Extrusion example of the IRIT letters created manually:
#
#                                Created by Gershon Elber,       Mar 89
#

save_mat = irit.GetViewMatrix()
save_res = irit.GetResolution()

irit.SetViewMatrix(irit.GetViewMatrix() * irit.scale(((-1), 1, 1)))

v1 = (0, 0, 0)
#  The I letter
v2 = (0.3, 0, 0)
v3 = (0.3, 0.1, 0)
v4 = (0.2, 0.1, 0)
v5 = (0.2, 0.5, 0)
v6 = (0.3, 0.5, 0)
v7 = (0.3, 0.6, 0)
v8 = (0, 0.6, 0)
v9 = (0, 0.5, 0)
v10 = (0.1, 0.5, 0)
v11 = (0.1, 0.1, 0)
v12 = (0, 0.1, 0)
Пример #19
0
                                                 irit.ctlpt( irit.E3, 0.4, 2.4, 0 ), \
                                                 irit.ctlpt( irit.E3, 1.3, 2.4, 0 ), \
                                                 irit.ctlpt( irit.E3, 1.3, 2.25, 0 ) ) ), irit.list( irit.list( 0, 0, 0, 0, 1, 1,\
1, 2, 2, 2, 2 ), irit.list( 0, 0, 0, 0, 1, 1,\
1, 2, 2, 2, 3, 3,\
3, 4, 4, 4, 4 ) ) )

echosrc = irit.iritstate("echosource", echosrc)
irit.free(echosrc)

irit.color(body, irit.RED)
irit.color(cap, irit.GREEN)
irit.color(spout, irit.BLUE)
irit.color(handle, irit.MAGENTA)

irit.SetViewMatrix(irit.scale((0.3, 0.3, 0.3)))

save_approx_opt = irit.GetPolyApproxOpt()
irit.SetPolyApproxOpt(1)
irit.SetPolyApproxTol(0.025)
pbody = (-irit.gpolygon(irit.sregion(body, irit.COL, 0.8, 3), 1))
pspout = (-irit.gpolygon(irit.sregion(spout, irit.COL, 0, 1), 1))
phandle = (-irit.gpolygon(handle, 1)) * irit.tx(0.15)

teapotaux = (pbody + pspout + phandle)

basey = 0.025
bodybase = irit.poly(
    irit.list(((-2), basey, (-2)), ((-2), basey, 2), (2, basey, 2),
              (2, basey, (-2))), irit.FALSE)
Пример #20
0
irit.free(mov_xyz)

mov_xyz = irit.creparam( irit.cbspline( 4, irit.list( irit.ctlpt( irit.E3, 0, 0, 3 ), \
                                                      irit.ctlpt( irit.E3, 1, (-1 ), 3 ), \
                                                      irit.ctlpt( irit.E3, 0.5, (-0.5 ), 0.5 ), \
                                                      irit.ctlpt( irit.E3, 0, 0, 0 ) ), irit.list( irit.KV_OPEN ) ), 0, 1 )
irit.attrib(grp2, "animation", irit.list(rot_y, rot_z, rot_x, mov_xyz, scl))

irit.free(mov_xyz)
irit.free(rot_x)
irit.free(rot_y)
irit.free(rot_z)

all = irit.list(grp1, grp2)

irit.SetViewMatrix(irit.sc(0.2) * irit.rotx(40) * irit.roty(30))

irit.interact(irit.list(all, irit.GetViewMatrix()))
irit.save("puz1anim", all)

irit.free(itemaux1)
irit.free(itemaux2)
irit.free(diagpoly)

# ############################################################################

scl = irit.creparam( irit.cbspline( 3, irit.list( irit.ctlpt( irit.E1, 5 ), \
                                                  irit.ctlpt( irit.E1, 5 ), \
                                                  irit.ctlpt( irit.E1, 2 ), \
                                                  irit.ctlpt( irit.E1, 2 ), \
                                                  irit.ctlpt( irit.E1, 5 ), \
Пример #21
0
import irit
#


# 
#  Simple molecule - 8 atoms connected as a cube.
# 

t = irit.time( 1 )

save_res = irit.GetResolution()
save_view = irit.GetViewMatrix()

irit.SetViewMatrix(  irit.GetViewMatrix() * \
					 irit.scale( ( 0.6, 0.6, 0.6 ) ) * \
					 irit.rotx( 20 ) * \
					 irit.roty( 45 ) * \
					 irit.trans( ( (-0.3 ), 0.2, 0 ) ))

irit.SetResolution(  16)
s1 = irit.sphere( ( 0, 0, 0 ), 0.2 )
s2 = irit.sphere( ( 1, 0, 0 ), 0.2 )

irit.SetResolution(  8)
c1 = irit.cylin( ( 0, 0, 0 ), ( 1, 0, 0 ), 0.05, 3 )

irit.view( irit.list( irit.GetViewMatrix(), s1, s2, c1 ), irit.ON )

b1 = ( (s1 ^ s2) + c1 )
irit.free( s1 )
irit.free( s2 )
Пример #22
0
import math
import irit
#


# 
#  A simple example of curve morphing.
# 
#                                        Gershon Elber, March 1996.
# 

# 
#  Sets the viewing direction on the display device.
# 
save_mat = irit.GetViewMatrix()
irit.SetViewMatrix(  irit.roty( 180 ))
irit.viewobj( irit.GetViewMatrix() )
irit.SetViewMatrix(  save_mat)

irit.viewstate( "polyaprx", 1 )
irit.viewstate( "widthlines", 1 )

# 
#  Animation speed. The lower this number, the faster the animations will be,
#  skipping more frames.
# 
speed = 0.25

echosrc = irit.iritstate( "echosource", irit.GenIntObject(0 ))

# ###########################################################################
Пример #23
0
#
import math
import irit
#

#
#  Yet another simple 3D mechanical object.
#
#                                Created by Gershon Elber,       Sep 89
#

save_mat = irit.GetViewMatrix()
save_res = irit.GetResolution()

irit.SetResolution(16)
irit.SetViewMatrix(irit.GetViewMatrix() * irit.trans(
    (0, (-0.3), 0)) * irit.scale((0.8, 0.8, 0.8)))
b1 = irit.box(((-0.6), (-0.3), 0), 1.2, 0.6, 0.6)
c1 = irit.cylin((0, (-0.25), 0.59), (0, 0.5, 0), 0.55, 3)
s1 = (b1 + c1)
irit.color(s1, irit.YELLOW)
irit.free(b1)
irit.free(c1)
irit.view(irit.list(irit.GetViewMatrix(), s1), irit.ON)

b2 = irit.box(((-0.4), (-0.4), (-0.1)), 0.8, 0.8, 0.35)
irit.view(b2, irit.OFF)
s2 = (s1 - b2)
irit.free(s1)
irit.free(b2)
irit.color(s2, irit.YELLOW)
irit.view(s2, irit.ON)
Пример #24
0
#This is an IRIT script and as such requires both math and irit import:
#
import math
import irit
#

#
#  Some examples of 3d bisector computations between surfaces and points.
#
#                        Gershon Elber, February 1997.
#

save_res = irit.GetResolution()
irit.SetResolution(60)
save_mat = irit.GetViewMatrix()
irit.SetViewMatrix(irit.rotz(35) * irit.rotx((-60)) * irit.sc(0.3))
irit.viewobj(irit.GetViewMatrix())

irit.viewstate("depthcue", 1)
irit.viewstate("widthlines", 1)

# ############################################################################
#
#  A bilinear surface: sphere--plane bisector
#
s1 = 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(s1, irit.RED)
pt = irit.point(0, 0, 1)
Пример #25
0
c2 = irit.cylin((0, (-length) / 2, 0), (0, length, 0), radius, 3)
c3 = irit.cylin((0, 0, (-length) / 2), (0, 0, length), radius, 3)

irit.attrib(c1, "width", irit.GenRealObject(0.0001))
irit.attrib(c2, "width", irit.GenRealObject(0.0001))
irit.attrib(c3, "width", irit.GenRealObject(0.0001))

c12 = c1 * c2
c123 = c12 * c3
irit.attrib(c123, "width", irit.GenRealObject(0.005))
irit.color(c123, irit.RED)
irit.adwidth(c123, 3)

all = irit.list(c123, c1, c2, c3)

irit.SetViewMatrix(irit.sc(1.1))
irit.viewobj(irit.GetViewMatrix())

tr = 0.4
proj1 = all * irit.trans(((-tr), tr, 0))
proj2 = all * irit.rotx(90) * irit.trans((tr, tr, 0))
proj3 = all * irit.roty(90) * irit.trans(((-tr), (-tr), 0))
proj4 = all * irit.roty(30) * irit.rotx(20) * irit.trans((tr, (-tr), 0))

allproj = irit.list(proj1, proj2, proj3, proj4)

irit.save("cylin3a", allproj)
irit.interact(allproj)

c123a = c123 * irit.roty(30) * irit.rotx(20) * irit.scale((3, 3, 3))
irit.attrib(c123a, "width", irit.GenRealObject(0.015))
Пример #26
0
#
import math
import irit
#

#
#  Some examples of voronoi cell of freeform curves.
#
#                        M. Ramanathan, January 2005.
#

#
#  Set states.
#
save_mat = irit.GetViewMatrix()
irit.SetViewMatrix(irit.sc(1))
irit.viewobj(irit.GetViewMatrix())

#  Faster product using Bezier decomposition
iprod = irit.iritstate("bspprodmethod", irit.GenRealObject(0))

# ############################################################################
#
#  Example 0 - Two simple open curves
#

c1 = irit.cbezier( irit.list( irit.ctlpt( irit.E2, (-0.441758 ), (-0.503296 ) ), \
                              irit.ctlpt( irit.E2, 0.560439, (-0.516483 ) ) ) ) * irit.ty( 0.3 )

c2 = irit.cbezier( irit.list( irit.ctlpt( irit.E2, 0.608924, (-0.358027 ) ), \
                              irit.ctlpt( irit.E2, 0.164947, (-0.371462 ) ), \
Пример #27
0
#
import math
import irit
#

#
#  Some examples of 3d alpha-sector computations of 3-space freeform curves.
#
#                        Gershon Elber, October 1998.
#

#
#  Set states.
#
save_mat = irit.GetViewMatrix()
irit.SetViewMatrix(irit.GetViewMatrix() * irit.sc(0.35))
irit.viewobj(irit.GetViewMatrix())

#  Faster product using Bezier decomposition.
iprod = irit.iritstate("bspprodmethod", irit.GenIntObject(0))

# ############################################################################
#
#  A point and a line in the XY plane
#
c1 = irit.cbezier( irit.list( irit.ctlpt( irit.E2, (-0.3 ), (-1 ) ), \
                              irit.ctlpt( irit.E2, (-0.3 ), 1 ) ) )
pt2 = irit.point(0.4, 0.2, 0)
irit.color(c1, irit.RED)
irit.adwidth(c1, 3)
irit.color(pt2, irit.RED)
Пример #28
0

# 
#  A model of the B58 Bomber.
# 
# 
#                        Gershon Elber, October 1991.
# 

if ( irit.GetMachine() == irit.MSDOS ):
    irit.SetResolution(8)
else:
    irit.SetResolution(10)

save_mat = irit.GetViewMatrix()
irit.SetViewMatrix(irit.GetViewMatrix() * irit.trans( ( 5, 2, 0 ) ) * irit.scale( ( 0.15, 0.15, 0.15 ) ) )

# 
#  Set up for colored or wood texture version. set do_texture to 1 for
#  wood version, otherwise color version. Note locally (in irit) it will
#  always be displayed in colors.
# 
do_texture = 0



if ( do_texture == 1 ):
    woodcolor = "244,164,96"
    texture = "wood,1"
    redcolor = woodcolor
    graycolor = woodcolor
Пример #29
0
#This is an IRIT script and as such requires both math and irit import:
#
import math
import irit
#

#
#  Intersection of two boxes:
#
#                                Created by Gershon Elber,       Jan. 89
#
save_mat = irit.GetViewMatrix()
irit.SetViewMatrix(save_mat * irit.scale((0.15, 0.15, 0.15)))

b1 = irit.box(((-3), (-2), (-1)), 6, 4, 2)
b2 = irit.box(((-4), (-3), (-2)), 2, 2, 4)

a1 = (b2 + b1)
irit.interact(irit.list(irit.GetViewMatrix(), a1))

a2 = b2 * b1
irit.interact(a2)

a3 = (b2 - b1)
irit.interact(a3)

a4 = (b1 - b2)
irit.interact(a4)

icrv = irit.iritstate("intercrv", irit.GenIntObject(1))
a5 = b2 * b1
Пример #30
0
irit.free(m1)
irit.free(c1)
irit.view(m2, irit.ON)

c2 = irit.circle((0.55, 0, 0), 0.12)
c2 = irit.extrude(c2, ((-0.2), 0, 0.2), 0)
c2 = c2 * irit.circpoly((0, 0, 1), (0.55, 0, 0.05), 0.25)
c3 = irit.circle(((-0.55), 0, 0), 0.12)
c3 = irit.extrude(c3, (0.2, 0, 0.2), 0)
c3 = c3 * irit.circpoly((0, 0, 1), ((-0.55), 0, 0.05), 0.25)
c2 = putrgbonvertices(c2, irit.GenStrObject("255,0,255"))
c3 = putrgbonvertices(c3, irit.GenStrObject("255,128,128"))
irit.view(irit.list(c2, c3), irit.OFF)

m3 = (m2 - c2 - c3)
irit.free(m2)
irit.free(c2)
irit.free(c3)
final = irit.convex(m3)
irit.free(m3)

irit.printf("total time = %f\n", irit.list(irit.time(0)))
#  In Seconds

irit.interact(final)

irit.save("solid3", final)
irit.free(final)
irit.SetResolution(save_res)
irit.SetViewMatrix(save_mat)