To turn on a flag (whether it is on or off).
//bitwise or with FLAGS_NAME obj->flags |= FLAGS_NAME;
To turn off a flag (whether it is on or off).
//bitwise and with NOT( FLAGS_NAME ) obj->flags &= ~FLAGS_NAME;
To turn a flag on if it is off and off if it is on.
//bitwise xor with FLAGs_NAME obj->flags ^= FLAGS_NAME;
FLAGS_NAME stands for any of the flags defined below.
//sets the type of object
FLAGS_DAG
FLAGS_PRIM
FLAGS_CAMERA
FLAGS_LIGHT
//sets the type of object to undefined
FLAGS_NOTYPE
//sets the object to have a partially transparent shadow.
#define FLAGS_TRANSLUCENT
//sets the types of rays which the object appears in.
FLAGS_NOPRIMARY //can't be seen unless it's a reflected or transmitted
//or shadow ray.
FLAGS_NOSHADOW // doesn't cast a shadow. (lights: doesn't cast shadows)
FLAGS_NOREFLECT // doesn't appear in mirrors.
FLAGS_NOTRANSMIT // doesn't appear in transmitted rays.
FLAGS_ONLYTRANSMIT // only appears in transmitted rays
//indicates that when the dag-graph is traversed this object is one that
//needs to have its position placed in the global label-list.
//This flag has no meaning for primnodes.
FLAGS_LABELED
// designates that there is more than one texture applied to a given primnode,
// and that the texcol pointer should be used rather than the texture pointer.
// Set automatically when the primnode is created.
FLAGS_MULTITEXTURE
//Defined in the gateway objects section.
FLAGS_GATEWAY
FLAGS_ONEWAY_GATEWAY
FLAGS_NOT_THROUGH_GATEWAY
FLAGS_ONLY_THROUGH_GATEWAY