This section provides a series of eight examples that illustrate many of features of the IVL language. The identifiers in these examples have been kept simple, but the full range of C identifiers is allowed.
Draw a cone with with two balls and a cylinder:
a = Cone b = Sphere c = Cylinder d = Sphere draw a draw b to the left of a draw c to the right of a draw d above a
Draw the same objects as the previous example, but set the color of the objects and use more complicated position modifiers. Note the use of and and the comma for an English-like syntax:
a = Cone a.diffuseColor = [.3 .2 .7] b = Sphere b.diffuseColor = [0 .5 .5] c = Cylinder c.diffuseColor = [.25 0 .1] d = Sphere d.diffuseColor = [.4 .2 0] draw a draw b to the left of a, above a and behind a draw c in front of b draw d to the right of b
Draw a big flat red sheet with a blue and a green cylinder on it:
base = Cube base.diffuseColor = [1 0 .0] base.scaleFactor = [ 6 .2 6] fl = Cylinder fl.diffuseColor = [0 0 1] fr = Cylinder fr.diffuseColor = [0 1 0] draw base draw fl above base draw fr above base to right of fl
Define a new object class. Note the use of distances in the modifiers so that the objects are not butted up against each other:
class ConeBall = ``coneball.wrl.gz'' a = ConeBall b = ConeBall draw a draw b 2 to the left of a
Draw a staircase, save it and draw another staircase right next to it:
a = Cube b = Cube c = Cube draw a draw b behind a draw c above b save as ``step.wrl'' class Step = ``step.wrl'' d = Step // Note that d will be down 1 unit // from a. This is normal since the // new object, d, has a center // at 0,0,0; the old object is // centered at 0,1,0 draw d to the left of a
Draw a cone and two objects which are animated according to data in files d and d2:
a = Cone b = Sphere c = Cube a.diffuseColor = [.25 .25 .75] b.diffuseColor = [1 0 .5] draw a draw b above a draw c to the left of a translate b with ``d2'' translate c with ``d''
Put some text up:
a = AsciiText a.diffuseColor = [.937 .517 .08235] a.string = "Eat at Joe's" draw a
Robot from page 58 of The Inventor Mentor[15]:
// Define a leg
thigh = Cube
thigh.scaleFactor = [ .6 1.1 .6]
calf = Cube
calf.scaleFactor = [ .5 1.1 .5]
foot = Cube
foot.scaleFactor = [.4 .4 1]
draw foot
draw calf above foot and -1 behind foot
draw thigh above calf
save as ``leg.iv''
// Construct robot
head = Sphere
head.scaleFactor = [1.5 1.5 1.5]
body = Cylinder
body.scaleFactor = [2.5 3 2.5]
draw head
draw body below head
class Leg = ``leg.iv''
lleg = Leg
rleg = Leg
draw lleg below body and -2.25 to the left of
body and -3.1 in front of body
draw rleg 0.5 to the right of lleg
Figure 1: View of ``Robot'' from the IVL viewer