Friday, August 20, 2010

Parts

Today the engine has Parts, which are a collection of mass, collision solids, and visual models. Parts can be initialized from a simple text format:
Part {
version 1
mass Sphere { radius 0.5 density 100 }
solid Sphere { radius 0.5 material wood }
model Model { file media/test/sphere.model }
}


It's a sphere!

Here's a more interesting example:
Part {
version 1
mass Sum {
Box { size 1 1 1 density 100 }
Xform { Sphere { radius 0.5 density 100 } pos 1 0 0 }
Xform { Sphere { radius 0.5 density 100 } pos -1 0 0 }
Xform { Sphere { radius 0.5 density 100 } pos 0 1 0 }
Xform { Sphere { radius 0.5 density 100 } pos 0 -1 0 }
Xform { Sphere { radius 0.5 density 100 } pos 0 0 1 }
Xform { Sphere { radius 0.5 density 100 } pos 0 0 -1 }
}
solid Box { size 1 1 1 material wood }
solid Sphere { radius 0.5 material wood pos 1 0 0 }
solid Sphere { radius 0.5 material wood pos -1 0 0 }
solid Sphere { radius 0.5 material wood pos 0 1 0 }
solid Sphere { radius 0.5 material wood pos 0 -1 0 }
solid Sphere { radius 0.5 material wood pos 0 0 1 }
solid Sphere { radius 0.5 material wood pos 0 0 -1 }
model Model { file media/test/crate.model }
model Model { file media/test/sphere.model pos 1 0 0 }
model Model { file media/test/sphere.model pos -1 0 0 }
model Model { file media/test/sphere.model pos 0 1 0 }
model Model { file media/test/sphere.model pos 0 -1 0 }
model Model { file media/test/sphere.model pos 0 0 1 }
model Model { file media/test/sphere.model pos 0 0 -1 }
}


It's a whatever!

Now I'll see if I can advance the GUI system enough to give me a part palette.