Object Type Reference#

Syntax Notation#

<ObjectType> { type }

This is a short form to indicate one of several pre-canned sets of attributes. Type may be any word, and a Config definition will be searched for by the name egg-object-type-word, where word is the type word. This definition may contain any arbitrary egg syntax to be parsed in at this group level.

Example Definition#

In a config file, such as Config.prc, you would include this entry:

egg-object-type-surface-snow <Tag> surface { snow }

In an egg file, it can be appended to the appropriate part using this:

<ObjectType> { surface-snow }

Which would be equivalent to:

<Tag> surface { snow }

if the object type is defined in Config.prc.

Predefined Object Types#

A number of predefined ObjectType definitions are provided:

Barrier#

<ObjectType> { barrier }

This is equivalent to <Collide> { Polyset descend }. The geometry defined at this root and below defines an invisible collision solid, meant to block avatars from crossing them.

Use these to funnel avatars through doorways, keep them from falling off bridges, and so on.

Trigger#

<ObjectType> { trigger }

This is equivalent to <Collide> { Polyset descend intangible }. The geometry defined at this root and below defines an invisible trigger surface.

Triggers can be used to signal when avatars have entered a certain area of the model. One could place a trigger polygon in front of a door, for example, so the player can tell when the avatar has moved through the door.

Sphere#

<ObjectType> { sphere }

Equivalent to <Collide> { Sphere descend }. The geometry is replaced with the smallest collision sphere that will enclose it. Typically you model a sphere in polygons and put this flag on it to create a collision sphere of the same size.

Tube#

<ObjectType> { tube }

Equivalent to <Collide> { Tube descend }. As in sphere, above, but the geometry is replaced with a collision tube (a capsule). Typically you will model a capsule or a cylinder in polygons.

Bubble#

<ObjectType> { bubble }

Equivalent to <Collide> { Sphere keep descend }. A collision bubble is placed around the geometry, which is otherwise unchanged.

Ghost#

<ObjectType> { ghost }

Equivalent to <Scalar> collide-mask { 0 }. It means that the geometry beginning at this node and below should never be collided with–characters will pass through it.

Backstage#

<ObjectType> { backstage }

Note

This has no equivalent reference; it is treated as a special case.

It means that the geometry at this node and below should not be translated. This will normally be used on scale references and other modeling tools.

Modelers should use this flag on reference objects that they include to help in the modeling task (such as scale references)