Exemple #1
0
def king(s, clr):
    kingbase = (-irit.surfprev( irit.cbspline( 3, irit.list( irit.ctlpt( irit.E2, 0.001, 1.04 ), \
                                                              irit.ctlpt( irit.E2, 0.04, 1.04 ), \
                                                              irit.ctlpt( irit.E2, 0.04, 1.02 ), \
                                                              irit.ctlpt( irit.E2, 0.06, 1.02 ), \
                                                              irit.ctlpt( irit.E2, 0.06, 1 ), \
                                                              irit.ctlpt( irit.E2, 0.08, 1 ), \
                                                              irit.ctlpt( irit.E2, 0.08, 0.97 ), \
                                                              irit.ctlpt( irit.E2, 0.1, 0.97 ), \
                                                              irit.ctlpt( irit.E2, 0.1, 0.94 ), \
                                                              irit.ctlpt( irit.E2, 0.07, 0.82 ), \
                                                              irit.ctlpt( irit.E2, 0.07, 0.8 ), \
                                                              irit.ctlpt( irit.E2, 0.09, 0.8 ), \
                                                              irit.ctlpt( irit.E2, 0.09, 0.78 ), \
                                                              irit.ctlpt( irit.E2, 0.07, 0.78 ), \
                                                              irit.ctlpt( irit.E2, 0.07, 0.74 ), \
                                                              irit.ctlpt( irit.E2, 0.1, 0.72 ), \
                                                              irit.ctlpt( irit.E2, 0.1, 0.7 ), \
                                                              irit.ctlpt( irit.E2, 0.14, 0.67 ), \
                                                              irit.ctlpt( irit.E2, 0.14, 0.64 ), \
                                                              irit.ctlpt( irit.E2, 0.06, 0.57 ), \
                                                              irit.ctlpt( irit.E2, 0.09, 0.33 ), \
                                                              irit.ctlpt( irit.E2, 0.21, 0.14 ), \
                                                              irit.ctlpt( irit.E2, 0.21, 0 ) ), irit.list( irit.KV_OPEN ) ) * irit.rx( 90 ) ) )
    kingcrosscrv = ( \
                                                              irit.ctlpt( irit.E2, (-0.07 ), 0 ) + \
                                                              irit.ctlpt( irit.E2, (-0.07 ), 0.53 ) + \
                                                              irit.ctlpt( irit.E2, (-0.3 ), 0.53 ) + \
                                                              irit.ctlpt( irit.E2, (-0.3 ), 0.67 ) + \
                                                              irit.ctlpt( irit.E2, (-0.07 ), 0.67 ) + \
                                                              irit.ctlpt( irit.E2, (-0.07 ), 1 ) + \
                                                              irit.ctlpt( irit.E2, 0, 1 ) )
    kingcrosssrf1 = irit.ruledsrf(kingcrosscrv, kingcrosscrv * irit.sx((-1)))
    kingcrosssrf2 = (-kingcrosssrf1) * irit.tz(0.08)
    kingcrosscrv2 = (kingcrosscrv + (-kingcrosscrv) * irit.sx((-1)))
    kingcrosssrf3 = irit.ruledsrf(kingcrosscrv2, kingcrosscrv2 * irit.tz(0.08))
    kingcross = irit.list(
        kingcrosssrf1, kingcrosssrf2, kingcrosssrf3) * irit.tz(
            (-0.04)) * irit.sc(0.16) * irit.rx(90) * irit.tz(1)
    irit.attrib(kingcross, "rgb", irit.GenStrObject("255,255,100"))
    irit.attrib(kingbase, "rgb", irit.GenStrObject(clr))
    retval = irit.list(kingbase, kingcross) * irit.sc(s)
    return retval
Exemple #2
0
def textgeom3daux(ply, wdth, dpth):
    retval = irit.nil()
    if (irit.ThisObject(ply) == irit.CURVE_TYPE):
        retval = irit.extrude((-ply), (0, 0, dpth), 0)
    if (irit.ThisObject(ply) == irit.POLY_TYPE):
        retval = irit.extrude(
            irit.ruledsrf(
                irit.offset(ply, irit.GenRealObject(-wdth / 2.0), 0, 0),
                irit.offset(ply, irit.GenRealObject(wdth / 2.0), 0, 0)),
            (0, 0, dpth), 3)
    return retval
def cornerunitshelf( w, h, legw, legd ):
    prof1 = ( irit.ctlpt( irit.E3, legd, legd, 0 ) + \
               irit.ctlpt( irit.E3, legd, 2 * w - legd, 0 ) + \
               irit.ctlpt( irit.E3, 2 * w - legd, 2 * w - legd, 0 ) )
    prof2 = ( \
               irit.ctlpt( irit.E3, legd, legd, 0 ) + irit.arc( ( w - legd, legd, 0 ), ( w, w, 0 ), ( 2 * w - legd, w - legd, 0 ) ) + \
               irit.ctlpt( irit.E3, 2 * w - legd, 2 * w - legd, 0 ) )
    shelfframe = irit.list( irit.extrude( prof1 + (-prof2 ), ( 0, 0, 0.03 ), 0 ), irit.ruledsrf( prof1, prof2 ), irit.ruledsrf( prof1, prof2 ) * irit.tz( 0.03 ) )
    irit.attrib( shelfframe, "ptexture", woodtext )
    irit.attrib( shelfframe, "rgb", woodclr )
    retval = irit.list( shelfframe ) * irit.tz( h )
    return retval
def marbleshelfunit( w, h ):
    prof1 = ( irit.ctlpt( irit.E3, 2 * w, 0, 0 ) + irit.cbspline( 3, irit.list( \
               irit.ctlpt( irit.E3, 2 * w, w, 0 ), \
               irit.ctlpt( irit.E3, 2 * w, 2 * w, 0 ), \
               irit.ctlpt( irit.E3, w, 2 * w, 0 ) ), irit.list( irit.KV_OPEN ) ) + \
               irit.ctlpt( irit.E3, 0, 2 * w, 0 ) )
    prof2 = ( \
               irit.ctlpt( irit.E3, 0, 2 * w, 0 ) + \
               irit.ctlpt( irit.E3, 0, 0, 0 ) + \
               irit.ctlpt( irit.E3, 2 * w, 0, 0 ) )
    retval = irit.list( irit.extrude( prof1 + prof2, ( 0, 0, 0.025 ), 0 ), irit.ruledsrf( prof1, (-prof2 ) ), irit.ruledsrf( prof1, (-prof2 ) ) * irit.tz( 0.025 ) ) * irit.tz( h )
    irit.attrprop( retval, "ptexture", marbletext )
    irit.attrprop( retval, "rgb", marbleclr )
    return retval
Exemple #5
0
irit.free( c7 )

# 
#  Now create the steering (vertical) tail.
# 
c1 = ( irit.cbspline( 3, irit.list( irit.ctlpt( irit.E3, 0, 0, 0 ), \
                                    irit.ctlpt( irit.E3, 0, 0.02, 0 ), \
                                    irit.ctlpt( irit.E3, 1.5, 0.07, 0 ), \
                                    irit.ctlpt( irit.E3, 3, 0, 0 ) ), irit.list( irit.KV_OPEN ) ) + irit.cbspline( 3, irit.list( \
                                    irit.ctlpt( irit.E3, 3, 0, 0 ), \
                                    irit.ctlpt( irit.E3, 1.5, (-0.07 ), 0 ), \
                                    irit.ctlpt( irit.E3, 0, (-0.02 ), 0 ), \
                                    irit.ctlpt( irit.E3, 0, 0, 0 ) ), irit.list( irit.KV_OPEN ) ) ) * irit.trans( ( 7.7, 0, 0.3 ) )
c2 = c1 * irit.scale( ( 0.65, 0.65, 0.65 ) ) * irit.trans( ( 3.75, 0, 0.4 ) )
c3 = c1 * irit.scale( ( 0.16, 0.16, 0.16 ) ) * irit.trans( ( 9.5, 0, 2 ) )
vtail1 = irit.ruledsrf( c2, c1 )
vtail2 = irit.ruledsrf( c3, c2 )
if ( do_texture == 1 ):
    irit.attrib( vtail1, "texture", texture )
irit.attrib( vtail1, "rgb", irit.GenStrObject(redcolor) )
irit.color( vtail1, irit.RED )
if ( do_texture == 1 ):
    irit.attrib( vtail2, "texture", texture )
irit.attrib( vtail2, "rgb", irit.GenStrObject(redcolor) )
irit.color( vtail2, irit.RED )
irit.free( c1 )
irit.free( c2 )
irit.free( c3 )

vtailtop = irit.swpsclsrf( irit.circle( ( 0, 0, 0 ), 0.1 ), irit.cbezier( irit.list( irit.ctlpt( irit.E3, 10.732, 0, 2.048 ), \
                                                                                     irit.ctlpt( irit.E3, 10.972, 0, 2.048 ), \
Exemple #6
0
                               ), \
                              irit.ctlpt( irit.E2, 1, 1 ), \
                              irit.ctlpt( irit.E2, 1, 0 ) ) )
irit.awidth(c1, 0.02)

r1 = irit.coerce( irit.cpower( irit.list( irit.ctlpt( irit.E1, 0 ), \
                                          irit.ctlpt( irit.E1, 0.7 ), \
                                          irit.ctlpt( irit.E1, 0.3 ) ) ), irit.BEZIER_TYPE )
r2 = irit.coerce( irit.cpower( irit.list( irit.ctlpt( irit.E1, 0 ), \
                                          irit.ctlpt( irit.E1, 0.3 ), \
                                          irit.ctlpt( irit.E1, 0.7 ) ) ), irit.BEZIER_TYPE )

c1a = irit.compose(c1, r1)
c2a = irit.compose(c1, r2)

s1 = irit.ruledsrf(c1a, c1a * irit.tz(1))
irit.attrib(s1, "gray", irit.GenRealObject(0.2))
irit.awidth(s1, 0.012)

s2 = irit.ruledsrf(c2a * irit.sc(0.0001), c2a)
irit.attrib(s2, "gray", irit.GenRealObject(0.35))
irit.awidth(s2, 0.012)

all1 = irit.list(s1, s2, c1)
irit.interact(all1)
irit.save("crv5dcmp", all1)

#  system("illustrt -t 0.01 -l 0.01 -f 0 256 -I 8 crv5dcmp.itd crv5dcmp.imd | irit2ps -d -u - > crv5dcmp.ps");

#
#  Try to decompose
Exemple #7
0
#
#  Top round.
#
topround = irit.poly( lj8samplecurve( irit.cbezier( irit.list( irit.ctlpt( irit.E3, 0, (-0.7 ), 7.5 ), \

                                                                    irit.ctlpt( irit.E3, 0, 2.5, 8 ), \
                                                                    irit.ctlpt( irit.E3, 0, 5.7, 7.5 ) ) ), 10 ) + irit.list(  ( 0, 5.7, 7.2 ),  ( 0, 5.2, 7.2 ), irit.point( 0, 4.9, 6.8 ), irit.point( 0, 4.9, 6 ), irit.point( 0, 0.1, 6 ), irit.point( 0, 0.1, 6.3 ), irit.point( 0, (-0.2 ), 6.3 ), irit.point( 0, (-0.7 ), 7.1 ) ), 0 )
topround = irit.extrude(topround, (2, 0, 0), 3) * irit.tx(0.001)

irit.SetResolution(4)
screen = irit.con2((0, 0, 0), (0, 0, (-0.15)), 0.3, 0.2, 3) * irit.rz(45)
topround = (topround -
            screen * irit.rx(5.5) * irit.sx(3) * irit.tx(1) * irit.tz(7.65))
irit.SetResolution(20)
screen = irit.ruledsrf( irit.ctlpt( irit.E3, 0.1414, 0.1414, (-0.14 ) ) + \
                        irit.ctlpt( irit.E3, (-0.1414 ), 0.1414, (-0.14 ) ), \
                        irit.ctlpt( irit.E3, 0.1414, (-0.1414 ), (-0.14 ) ) + \
                        irit.ctlpt( irit.E3, (-0.1414 ), (-0.1414 ), (-0.14 ) ) ) * irit.rx( 5.5 ) * irit.sx( 3 ) * irit.tx( 1 ) * irit.tz( 7.65 )
irit.attrib(screen, "rgb", irit.GenStrObject("20,100,20"))

tmpbody = irit.box((1, 0.75, 6.5), 2, 3.5, 0.15)
z = 7.2
while (z <= 7.5):
    tmpbody = tmpbody ^ irit.box(((-0.1), 1, z), 0.2, 3, 0.05)
    z = z + 0.1

topround = topround / tmpbody

base = (base + topround)

#
#  Top round control.
irit.color(s2, irit.GREEN)

i = testinter(s1, s2)

all = irit.list(s1, s2, i)

irit.interact(all)

irit.save("ssi19", all)

#
#  20. Two bi-quadratic surfaces with one intersecting curve and one point of
#  inter.
#
s1 = irit.ruledsrf( irit.ctlpt( irit.E3, 0, 1, 1 ) + \
                    irit.ctlpt( irit.E3, 1, 1, (-1 ) ), \
                    irit.ctlpt( irit.E3, 0, 0, (-1 ) ) + \
                    irit.ctlpt( irit.E3, 1, 0, 1 ) )

s2 = irit.ruledsrf( irit.ctlpt( irit.E3, 0, 1, 1 ) + \
                    irit.ctlpt( irit.E2, 1, 1 ), \
                    irit.ctlpt( irit.E1, 0 ) + \
                    irit.ctlpt( irit.E1, 1 ) )

irit.color(s1, irit.RED)
irit.color(s2, irit.GREEN)

i = testinter(s1, s2)

all = irit.list(s1, s2, i)
irit.interact(all)
import irit
#


# 
#  Animation of a snake motion,         Gershon Elber, May 2002.
# 

irit.viewstate( "depthcue", 0 )
irit.viewstate( "drawstyle", 1 )
irit.viewstate( "dsrfpoly", 1 )
irit.viewstate( "dsrfwire", 0 )
irit.viewstate( "polyaprx", 1 )

xyplane = (-irit.ruledsrf( irit.ctlpt( irit.E2, (-10 ), 50 ) + \
                           irit.ctlpt( irit.E2, 10, 50 ), \
                           irit.ctlpt( irit.E2, (-10 ), (-10 ) ) + \
                           irit.ctlpt( irit.E2, 10, (-10 ) ) ) )
irit.attrib( xyplane, "rgb", irit.GenStrObject("220,140,100" ))

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

def ctx( t, m ):
    x = m * math.sin( t )
    retval = irit.tx( x )
    return retval

def snaket( t ):
    p =  irit.point( 0, 0, 0 )
    ct = irit.cbspline( 3, irit.list( p * \
									  ctx( 0 + t, 1.5 ) * \
									  irit.ty( 0.22 ), 
import math
import irit
#

#
#  Combination of a square, triangle, and a circle
#
#                                Gershon Elber, Feb 2009.
#

#
#  The Sqriancle
#

c = irit.circle((0, 0, 0), 1)

stc = irit.ruledsrf(c, c * irit.tz(2) * irit.sx(0.0001))
irit.attrib(stc, "rgb", irit.GenStrObject("255, 200, 200"))

stcisos = irit.getisocurvetubes(stc, 8, 4, 0.03)
irit.attrib(stcisos, "rgb", irit.GenStrObject("25, 20, 200"))
irit.attrib(stcisos, "specilar", irit.GenRealObject(2))

irit.view(irit.list(stc, stcisos), irit.ON)
irit.save("sqriacle", irit.list(stc, stcisos))
irit.pause()

irit.free(c)
irit.free(stc)
irit.free(stcisos)
import teapot
teapotorig = irit.load( "teapot" )

def interact( none ):
    irit.viewdclear(  )
    irit.viewobj( none )
    irit.pause(  )
echosrc2 = irit.iritstate( "echosource", echosrc2 )
irit.free( echosrc2 )

# 
#  Define the trivarate warping function.
# 

s1 = irit.ruledsrf( irit.ctlpt( irit.E3, 0.5, 0, 0 ) + \
                    irit.ctlpt( irit.E3, 1.5, 0, 0 ), \
                    irit.ctlpt( irit.E3, 0.5, 1.2, 0 ) + \
                    irit.ctlpt( irit.E3, 1.5, 1.2, 0 ) )
tv = irit.tfromsrfs( irit.list( s1, s1 * irit.ry( 30 ), s1 * irit.ry( 60 ), s1 * irit.ry( 90 ), s1 * irit.ry( 120 ), s1 * irit.ry( 150 ), s1 * irit.ry( 180 ) ), 3, irit.KV_OPEN )
tv = irit.treparam( irit.treparam( tv, irit.COL, 0, 0.5 ), irit.ROW, 0.2,\
0.8 )
irit.awidth( tv, 0.001 )
irit.free( s1 )

# 
#  Define our warping function.
# 

def warpsurface( srf, tv ):
    usize = irit.FetchRealObject(irit.nth( irit.ffmsize( srf ), 1 ))
    vsize = irit.FetchRealObject(irit.nth( irit.ffmsize( srf ), 2 ))
    clr = irit.getattr( srf, "color" )
irit.attrib(cntrs, "dwidth", irit.GenRealObject(3))
irit.color(cntrs, irit.RED)
irit.interact(irit.list(c, p, cntrs))

irit.free(c)
irit.free(p)
irit.free(cntrs)

#
#  Simple self intersecting surface.
#
c1 = irit.cbspline( 3, irit.list( irit.ctlpt( irit.E3, 0, (-1 ), 0 ), \
                                  irit.ctlpt( irit.E3, 0, 1, 0.2 ), \
                                  irit.ctlpt( irit.E3, 1, 0, 0.4 ), \
                                  irit.ctlpt( irit.E3, (-1 ), 0, 0.6 ) ), irit.list( irit.KV_OPEN ) )
s1 = irit.ruledsrf(c1, c1 * irit.tz(1) * irit.rz(10))
irit.color(s1, irit.GREEN)

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)
Exemple #13
0
#  An ellipsoid
#

s = irit.spheresrf(1.1) * irit.sx(2) * irit.sy(1.2)
d = irit.duality(s)
irit.color(d, irit.YELLOW)

view_mat1 = irit.GetViewMatrix() * irit.sc(0.5)
irit.interact(irit.list(s, d, irit.GetAxes(), view_mat1))

#
#  A ruled surface
#

s = irit.ruledsrf( irit.ctlpt( irit.E3, (-1 ), (-1 ), 0.2 ) + \
                   irit.ctlpt( irit.E3, (-1 ), 1, (-0.2 ) ), \
                   irit.ctlpt( irit.E3, 1, (-1 ), (-0.2 ) ) + \
                   irit.ctlpt( irit.E3, 1, 1, 0.2 ) ) * irit.tz( 0.35 )
d = irit.duality(s)
irit.color(d, irit.YELLOW)

view_mat1 = irit.GetViewMatrix() * irit.sc(0.3) * irit.ty(0.5)
irit.interact(irit.list(s, d, irit.GetAxes(), view_mat1))

#
#  A saddle surface
#

s = irit.sbezier( irit.list( irit.list( irit.ctlpt( irit.E3, 0, 0, 0 ), \
                                        irit.ctlpt( irit.E3, 0.05, 0.2, 0.1 ), \
                                        irit.ctlpt( irit.E3, 0.1, 0.05, 0.2 ) ), irit.list( \
                                        irit.ctlpt( irit.E2, 0.1, (-0.2 ) ), \
Exemple #14
0
                 s1 * irit.sc(2) * irit.ry(180) * irit.trans((2, 0, 0)))
irit.color(srfs, irit.RED)
irit.free(s1)

ts1 = irit.tfromsrfs(srfs, 3, irit.KV_FLOAT)
irit.color(ts1, irit.GREEN)

ts2 = irit.tfromsrfs(srfs, 5, irit.KV_OPEN)
irit.color(ts2, irit.YELLOW)

ts3 = irit.tfromsrfs(srfs, 5, irit.KV_PERIODIC)
irit.color(ts3, irit.MAGENTA)

irit.interact(irit.list(srfs, ts1, ts2, ts3))

s2 = irit.ruledsrf(irit.circle((0, 0, 0), 1), irit.circle((0, 0, 0), 0.7))

srfs = irit.list(s2,
                 s2 * irit.sc(0.5) * irit.tz(0.4), s2 * irit.tz(0.8),
                 s2 * irit.sc(0.5) * irit.tz(1.2))
irit.color(srfs, irit.RED)
irit.free(s2)

ts1 = irit.tfromsrfs(srfs, 3, irit.KV_FLOAT)
irit.color(ts1, irit.GREEN)

ts2 = irit.tfromsrfs(srfs, 5, irit.KV_OPEN)
irit.color(ts2, irit.YELLOW)

ts3 = irit.tfromsrfs(srfs, 5, irit.KV_PERIODIC)
irit.color(ts3, irit.MAGENTA)
Exemple #15
0
irit.color(wig, irit.RED)

paramumb = irit.sumbilic(wig, 0.05, 0.0001)
irit.interact(irit.list(evaltoeuclidean(wig, paramumb), wig))

irit.free(wig)
irit.free(c)
irit.free(s)
irit.free(paramumb)

# ############################################################################
#  Mean curvature evolute of surfaces.
# ############################################################################
c1 = irit.pcircle((0, 0, 0), 1)

scone = irit.ruledsrf(c1, c1 * irit.sc(0.1) * irit.tz(1))
irit.color(scone, irit.YELLOW)
sconeev = irit.evolute(scone)
irit.color(sconeev, irit.GREEN)
irit.interact(irit.list(irit.GetAxes(), scone, sconeev))

scylin = irit.ruledsrf(c1, c1 * irit.tz(1))
irit.color(scylin, irit.YELLOW)
scylinev = irit.evolute(scylin)
irit.color(scylinev, irit.GREEN)
irit.interact(irit.list(irit.GetAxes(), scylin, scylinev))

irit.save("sevolute",
          irit.list(irit.GetAxes(), scylin, scylinev, scone, sconeev))

irit.free(scone)
def cornerunitwalls( w, h, legw, legd ):
    lwall = irit.box( ( legd, 0, 0.2 ), 2 * w - 2 * legd, 0.002, h - 0.3 )
    irit.attrib( lwall, "ptexture", woodtext )
    irit.attrib( lwall, "rgb", woodclr )
    swall = irit.box( ( legd, 0, 0.2 ), w - 2 * legd, 0.002, h - 0.3 )
    irit.attrib( swall, "transp", irit.GenRealObject(0.3 ))
    arcbar1 = irit.arc( ( w, 0, 0 ), ( w, w, 0 ), ( 2 * w, w, 0 ) )
    arcbar2 = irit.offset( arcbar1, irit.GenRealObject(-0.03 ), 0.1, 0 )
    arcbar = irit.list( irit.extrude( arcbar1 + (-arcbar2 ) + irit.ctlpt( irit.E3, w, 0, 0 ), ( 0, 0, 0.03 ), 0 ), irit.ruledsrf( arcbar1, arcbar2 ), irit.ruledsrf( arcbar1, arcbar2 ) * irit.tz( 0.03 ) )
    rdoorframe = irit.list( irit.box( ( w, 0, 0.2 ), 0.03, 0.03, h - 0.3 ),\
    irit.box( ( 2 * w - 0.03, w - 0.03, 0.2 ), 0.03, 0.03, h - 0.3 ),\
    arcbar * irit.tz( 0.2 ), arcbar * irit.tz( h - 0.1 - 0.03 ) )
    irit.attrib( rdoorframe, "ptexture", woodtext )
    irit.attrib( rdoorframe, "rgb", woodclr )
    rdoorglass = irit.extrude( irit.offset( arcbar1, irit.GenRealObject(-0.02 ), 0.1, 0 ) + (-irit.offset( arcbar1, irit.GenRealObject(-0.03 ), 0.1, 0 ) ) + \
                                                               irit.ctlpt( irit.E3, w - 0.02, 0, 0 ), ( 0, 0, h - 0.3 - 0.04 ), 0 ) * irit.tz( 0.22 )
    irit.attrib( rdoorglass, "transp", irit.GenRealObject(0.3 ))
    rdoor = irit.list( rdoorframe, rdoorglass )
    rot_z = ( \
                                                               irit.ctlpt( irit.E1, 0 ) + \
                                                               irit.ctlpt( irit.E1, 130 ) )
    irit.attrib( rdoor, "animation", irit.list( irit.tx( (-w ) ), rot_z, irit.tx( w ) ) )
    retval = irit.list( lwall * irit.ty( 2 * w ), swall * irit.rz( 90 ) * irit.tx( 2 * w ) * irit.ty( w ), lwall * irit.rz( 90 ), swall, rdoor )
    return retval
def cornerunitbars( w, h, legw, legd ):
    sbar = irit.box( ( legw, 0, 0 ), w - 2 * legw, legd, legw )
    lbar = irit.box( ( legd, 0, 0 ), 2 * w - legd - legw, legd, legw )
    arcbar1 = irit.arc( ( w, 0, 0 ), ( w, w, 0 ), ( 2 * w, w, 0 ) )
    arcbar2 = irit.offset( arcbar1, (-legd ), 0.1, 0 )
    arcbar = irit.list( irit.extrude( arcbar1 + (-arcbar2 ) + irit.ctlpt( irit.E3, w, 0, 0 ), ( 0, 0, legw ), 0 ), irit.ruledsrf( arcbar1, arcbar2 ), irit.ruledsrf( arcbar1, arcbar2 ) * irit.tz( legw ) )
    barframe = irit.list( arcbar, sbar, sbar * irit.tx( w ) * irit.rz( 90 ) * irit.tx( 2 * w ), lbar * irit.rz( 90 ) * irit.tx( legd ), lbar * irit.tx( legw - legd ) * irit.ty( 2 * w - legd ) )
    retval = irit.list( barframe * irit.tz( 0.1 ), barframe * irit.tz( h - 0.1 ) )
    irit.attrprop( retval, "ptexture", woodtext )
    irit.attrprop( retval, "rgb", woodclr )
    return retval
		(-arc1a ) * irit.sx( (-1 ) ) ) * irit.sc( 0.75 )
sctn2 = ( arc1a + arc2b + (-arc2b ) * irit.sx( (-1 ) ) + \
		(-arc1a ) * irit.sx( (-1 ) ) ) * irit.sc( 0.75 )

sctn3 = ( arc1b + arc2d + (-arc2d ) * irit.sx( (-1 ) ) + \
		(-arc1b ) * irit.sx( (-1 ) ) ) * irit.ty( 0.04 ) * irit.sc( 0.65 )
sctn4 = ( arc1b + arc2c + (-arc2c ) * irit.sx( (-1 ) ) + \
		(-arc1b ) * irit.sx( (-1 ) ) ) * irit.ty( 0.04 ) * irit.sc( 0.65 )
irit.free( arc1a )
irit.free( arc1b )
irit.free( arc2a )
irit.free( arc2b )
irit.free( arc2c )
irit.free( arc2d )

rldsrf1 = irit.ruledsrf( sctn1, sctn2 * irit.tz( 0.5 ) ) * \
		  irit.ty( (-0.01 ) ) * irit.tz( (-0.001 ) ) * irit.sz( 1.004 )
piece1a = irit.box( ( (-0.5 ), 0, 0 ), 1, 1, 0.5 ) * rldsrf1

rldsrf2 = irit.ruledsrf( sctn3, sctn4 * irit.tz( 0.5 ) ) * \
		  irit.ty( (-0.01 ) ) * irit.tz( (-0.001 ) ) * irit.sz( 1.004 )
piece1b = irit.box( ( (-0.5 ), 0, 0 ), 1, 1, 0.5 ) * (-rldsrf2 )

irit.free( rldsrf1 )
irit.free( rldsrf2 )

irit.free( sctn1 )
irit.free( sctn2 )
irit.free( sctn3 )
irit.free( sctn4 )
Exemple #19
0
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 )


cbody = irit.csurface( irit.coerce( body, irit.KV_OPEN ), irit.COL, 1 )

cbodyin = irit.cregion( cbody, 0.6, 1 )
irit.color( cbodyin, irit.RED )
irit.adwidth( cbodyin, 3 )
cbodyout = (-irit.cregion( cbody, 0, 0.6 ) )
irit.color( cbodyout, irit.GREEN )
irit.adwidth( cbodyout, 3 )

ruled1 = irit.ruledsrf( cbodyin, cbodyout )
irit.interact( irit.list( ruled1, cbodyout, cbodyin ) )
irit.save( "distmtc1", irit.list( ruled1, cbodyout, cbodyin ) )

cbodyin2 = irit.ffmatch( cbodyout, cbodyin, 30, 100, 2, 0,\
(-1 ) )
irit.color( cbodyin2, irit.RED )
irit.adwidth( cbodyin2, 3 )
ruled2 = irit.ruledsrf( cbodyin2, cbodyout )
irit.interact( irit.list( ruled2, cbodyout, cbodyin2 ) )
irit.save( "distmtc2", irit.list( ruled2, cbodyout, cbodyin2 ) )

cbodyin3 = irit.ffmatch( cbodyout, cbodyin, 30, 100, 2, 0,\
(-2 ) )
irit.color( cbodyin3, irit.RED )
irit.adwidth( cbodyin3, 3 )
Exemple #20
0
crosssection32 = makecrosssection(c32)

fuseintakeout = irit.sfromcrvs(
    irit.list(crosssection32, crosssection31, crosssection30), 3, irit.KV_OPEN)
irit.attrib(fuseintakeout, "rgb", irit.GenStrObject("128, 128, 255"))
irit.attrib(fuseintakeout, "texture", irit.GenStrObject("camouf"))

c33 = irit.cbspline( 3, irit.list( irit.ctlpt( irit.E3, 4.6, 0, (-0.45 ) ), \
                                   irit.ctlpt( irit.E3, 4.6, 0.15, (-0.45 ) ), \
                                   irit.ctlpt( irit.E3, 4.6, 0.28, (-0.35 ) ), \
                                   irit.ctlpt( irit.E3, 4.6, 0.28, (-0.25 ) ), \
                                   irit.ctlpt( irit.E3, 4.6, 0.15, (-0.12 ) ), \
                                   irit.ctlpt( irit.E3, 4.6, 0, (-0.12 ) ) ), irit.list( irit.KV_OPEN ) )
crosssection33 = makecrosssection(c33)

fuseintakein = irit.list(irit.ruledsrf(crosssection32, crosssection33),
                         irit.ruledsrf(c33 * irit.sy((-1)), c33))
irit.attrib(fuseintakein, "rgb", irit.GenStrObject("64, 64, 64"))

irit.free(c30)
irit.free(c31)
irit.free(c32)
irit.free(c33)
irit.free(crosssection30)
irit.free(crosssection31)
irit.free(crosssection32)
irit.free(crosssection33)

#
#  Cockpit
#
irit.color(pt, irit.YELLOW)
irit.adwidth(pt, 3)

bisectsrf = irit.cbisector3d(irit.list(helix, pt), 1)
irit.color(bisectsrf, irit.GREEN)

irit.interact(irit.list(helix, pt, bisectsrf))

irit.save("bisectr6", irit.list(helix, pt, bisectsrf))

# ############################################################################
#
#  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 = (0, 0, 1)
irit.adwidth(irit.point(pt[0], pt[1], pt[2]), 3)
irit.color(irit.point(pt[0], pt[1], pt[2]), irit.YELLOW)

bisectsrf = irit.sbisector(s1, pt)
irit.color(bisectsrf, irit.GREEN)

irit.interact(irit.list(s1, pt, bisectsrf))

irit.save("bisectr7", irit.list(s1, pt, bisectsrf))

z = 1
import math
import irit
#

#
#  A cork blug.
#
#                                                Gershon Elber, Dec 1999
#
#  Can you compute the volume of this thing!?
#

save_mat = irit.GetViewMatrix()
irit.SetViewMatrix(irit.sc(0.4))

cork = irit.ruledsrf(irit.pcircle((0, 0, 0), 1),
                     irit.pcircle((0, 0, 0), 1) * irit.sx(0) * irit.tz(2))

irit.interact(
    irit.list(
        irit.GetViewMatrix(),
        cork * irit.rx((-90)) * irit.tx((-1.2)) * irit.ty(0.4),
        cork * irit.tx((-1.2)) * irit.ty((-1.2)),
        cork * irit.rx((-90)) * irit.ry(90) * irit.tx(1.2) * irit.ty(0.4),
        cork * save_mat * irit.tx(1.2) * irit.ty((-1.8))))

irit.save("corkplug", cork)

corkcross = irit.nth(irit.prisa(cork, 256, 1, irit.COL, (0, 0, 0), 1), 1)
irit.color(corkcross, irit.MAGENTA)

corkprisa = irit.prisa(cork, 256, 1, irit.COL, (0, 0, 0), 0)
Exemple #23
0

def forest3(n, m, blevel, level):
    retval = irit.nil()
    i = 0
    while (i <= n):
        j = 0
        while (j <= m):
            irit.snoc( virttree3( irit.point( i * 5, j * 5, 0 ), irit.vector( 0, 0, 1 ), 0.3, blevel, level ),\
            retval )
            j = j + 1
        i = i + 1
    return retval

base = irit.ruledsrf( irit.ctlpt( irit.E2, (-20 ), (-20 ) ) + \
                      irit.ctlpt( irit.E2, (-20 ), 40 ), \
                      irit.ctlpt( irit.E2, 40, (-20 ) ) + \
                      irit.ctlpt( irit.E2, 40, 40 ) )
irit.attrib(base, "rgb", irit.GenStrObject("244,164,96"))
irit.attrib(base, "ptexture", irit.GenStrObject("ground.rle"))
irit.viewobj(base)
irit.save("base", base)

frst = forest3(1, 1, 2, 4)
irit.view(irit.list(frst, base), irit.ON)

#
#  Be prepared, this one is quite large.
#
#  frst = forest3( 4, 4, 3, 5 );
#  viewstate( "PolyAprx", 0 );
#  viewstate( "PolyAprx", 0 );
c4a = irit.cbspline( 4, irit.list( irit.ctlpt( irit.E3, 0.53, 0.35, (-0.3 ) ), \
                                   irit.ctlpt( irit.E3, 0.423, (-0.01 ), 0.3 ), \
                                   irit.ctlpt( irit.E3, 0.198, (-0.19 ), 0.4 ), \
                                   irit.ctlpt( irit.E3, 0.263, 0.38, (-0.2 ) ), \
                                   irit.ctlpt( irit.E3, 0.432, 0.48, (-0.3 ) ), \
                                   irit.ctlpt( irit.E3, 0.521, (-0.08 ), 0.4 ) ), irit.list( irit.KV_OPEN ) )
irit.color(c4a, irit.MAGENTA)

c5 = irit.cbspline( 2, irit.list( irit.ctlpt( irit.E2, 0.54, 0.42 ), \
                                  irit.ctlpt( irit.E2, 0.46, 0.01 ) ), irit.list( irit.KV_OPEN ) )
irit.color(c5, irit.GREEN)

c6 = irit.pcircle((0, 0, 0), 1)
irit.color(c6, irit.RED)

s2 = irit.ruledsrf(c2, c2 * irit.tz(0.5))
irit.color(s2, irit.CYAN)

s3 = irit.sfromcrvs(
    irit.list(c3 * irit.tz((-0.5)), c3 * irit.sc(1.3), c3 * irit.tz(0.5)), 3,
    irit.KV_OPEN)
irit.color(s3, irit.YELLOW)

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

displayobjobjmdres(pt1, c6, 1e-010)

displayobjobjmdres(pt2, c2, 1e-010)

displayobjobjmdres(pt2, c4, 1e-010)
circ = irit.circle((0.1, 0.7, 3), math.pi)
printtest("circle", irit.isgeom(circ, irit.GEOM_CIRCULAR, 1e-010), 1)

pcirc = irit.pcircle((0.1, 0.7, 3), math.pi)
printtest("circle", irit.isgeom(pcirc, irit.GEOM_CIRCULAR, 1e-010), 0)
printtest("circle", irit.isgeom(pcirc, irit.GEOM_CIRCULAR, 0.01), 1)

irit.free(circ)
irit.free(pcirc)
irit.free(line)

#
#  Plane
#
pln = irit.ruledsrf( irit.ctlpt( irit.E3, 0, 0, 0 ) + \
                     irit.ctlpt( irit.E3, 1, 0, 0 ), \
                     irit.ctlpt( irit.E3, 0, 2, 0 ) + \
                     irit.ctlpt( irit.E3, 1, 1, 0 ) )
printtest("plane", irit.isgeom(pln, irit.GEOM_PLANAR, 1e-010), 1)

pln = pln * irit.rx(45) * irit.rz(45) * irit.tx(1) * irit.ty((-2))
printtest("plane", irit.isgeom(pln, irit.GEOM_PLANAR, 1e-010), 1)

pln = irit.ruledsrf( irit.ctlpt( irit.E3, 0, 0, 0 ) + \
                     irit.ctlpt( irit.E3, 1, 0, 0 ), \
                     irit.ctlpt( irit.E3, 0, 2, 0 ) + \
                     irit.ctlpt( irit.E3, 1, 1, 1 ) )
printtest("plane", irit.isgeom(pln, irit.GEOM_PLANAR, 0.001), 0)

pln = irit.ruledsrf( irit.cbezier( irit.list( irit.ctlpt( irit.E3, (-1 ), 0, 10.01 ), \
                                              irit.ctlpt( irit.E3, 0, 0.2, 10.01 ), \
                                              irit.ctlpt( irit.E3, 1, 0, 10.01 ) ) ), irit.cbezier( irit.list( \
#
#                        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()
x = (-1.6)
while (x <= 1.6):
    irit.snoc( irit.ctlpt( irit.E3, x, 2, (-10 ) ) + \
                irit.ctlpt( irit.E3, x, 2, 10 ), reflectlns )
    x = x + 0.8
irit.color(reflectlns, irit.CYAN)
irit.adwidth(reflectlns, 2)

irit.SetResolution(30)
#
#  The Blade
#

sec1 = irit.cbspline( 3, irit.list( irit.ctlpt( irit.E3, (-0.525 ), (-0.041 ), 0 ), \
                                    irit.ctlpt( irit.E2, (-0.0935 ), 0.102 ), \
                                    irit.ctlpt( irit.E2, 0.487, 0.14 ), \
                                    irit.ctlpt( irit.E2, 0.882, 0.112 ), \
                                    irit.ctlpt( irit.E2, 0.878, 0.198 ), \
                                    irit.ctlpt( irit.E2, 0.559, 0.403 ), \
                                    irit.ctlpt( irit.E2, (-0.183 ), 0.252 ), \
                                    irit.ctlpt( irit.E2, (-0.525 ), (-0.04 ) ) ), irit.list( irit.KV_OPEN ) ) * irit.tx( (-0.2 ) ) * irit.ty( (-0.2 ) )

sec2 = sec1 * irit.sy(0.5) * irit.sc(1.2) * irit.tz(2.5) * irit.rz(30)

bladeside = irit.ruledsrf(sec1, sec2)

bladetop = irit.ruledsrf(irit.cregion(sec2, 0, 0.5),
                         (-irit.cregion(sec2, 0.5, 1)))

blademain = irit.list(bladeside, bladetop) * irit.tz(0.2)
irit.free(bladeside)
irit.free(bladetop)

bladefillet = irit.sfromcrvs(
    irit.list(sec1 * irit.sc(1.35) * irit.sy(1.5) * irit.tz((-0.1)), sec1,
              sec1 * irit.tz(0.2)), 3, irit.KV_OPEN)
irit.free(sec1)
irit.free(sec2)

blade = irit.list(blademain, bladefillet) * irit.tx(0.1) * irit.ry(
Exemple #28
0
              (basexymin, basexymin, 16), (16, basexymin, 16)), irit.FALSE)
irit.color(wall1, irit.WHITE)
irit.attrib(wall1, "rgb", irit.GenStrObject("255,255,255"))
irit.color(wall2, irit.WHITE)
irit.attrib(wall2, "rgb", irit.GenStrObject("255,255,255"))

backgrd = irit.list(base, wall1, wall2)
irit.free(base)
irit.free(wall1)
irit.free(wall2)

# ############################################################################
#  First Morphing Sequence.                                                  #
# ############################################################################

srf1 = irit.ruledsrf(irit.circle((0, 0, baselvl + 0.01), 1),
                     irit.circle((0, 0, baselvl + 0.01), 0.01))
irit.color(srf1, irit.YELLOW)

bcross = irit.cbspline( 3, irit.list( irit.ctlpt( irit.E3, 0, 0, (-0.71 ) ), \
                                      irit.ctlpt( irit.E3, 0.2, 0, (-0.72 ) ), \
                                      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 ) ), \
Exemple #29
0
# ############################################################################
#
#  Case 1
#

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 ) ) ) )

c2 = irit.cbezier( irit.list( irit.ctlpt( irit.E3, (-1 ), 0, 1 ), \
                              irit.ctlpt( irit.E3, 0, 1, 1 ), \
                              irit.ctlpt( irit.E3, 0.3, 1, 1 ), \
                              irit.ctlpt( irit.E3, 1, 0, 1 ) ) )

r1 = irit.ruledsrf(c1, c2)

r2 = r1 * irit.rx(90)

c = irit.nth(
    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),
Exemple #30
0
                                                               irit.ctlpt( irit.E2, 8, (-0.3 ) ), \
                                                               irit.ctlpt( irit.E2, 9, 1.5 ), \
                                                               irit.ctlpt( irit.E2, 10, (-0.3 ) ), \
                                                               irit.ctlpt( irit.E2, 11, 1.5 ) ), irit.list( irit.KV_PERIODIC ) ), irit.KV_OPEN ), 0, 1 ), irit.point( 0, 0, (-1 ) ), 2 ) ) * irit.sc( 0.11 ) * irit.tz( 0.911 )
    irit.attrib(queencrwn, "rgb", irit.GenStrObject("255,255,100"))
    irit.attrib(queenbase, "rgb", irit.GenStrObject(clr))
    retval = irit.list(queenbase, queencrwn) * irit.sc(s)
    return retval


#
#  The board
#

square = irit.ruledsrf( irit.ctlpt( irit.E2, 0, 0 ) + \
                        irit.ctlpt( irit.E2, 1, 0 ), \
                        irit.ctlpt( irit.E2, 0, 1 ) + \
                        irit.ctlpt( irit.E2, 1, 1 ) )

blacksqrs = irit.nil()
whitesqrs = irit.nil()

#  X + Y Even?
x = 1
while (x <= 8):
    y = 1
    while (y <= 8):
        if (abs(math.floor((x + y) / 2) * 2 - x + y) < 0.01):
            irit.snoc(square * irit.tx(x) * irit.ty(y), blacksqrs)
        else:
            irit.snoc(square * irit.tx(x) * irit.ty(y), whitesqrs)
        y = y + 1