sio2_object.h File Reference

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  SIO2objectphysic
struct  SIO2objectanimation
struct  SIO2edge
struct  SIO2object

Enumerations

enum  SIO2_OBJECT_TYPE { SIO2_OBJECT_SOLID = ( 1 << 0 ), SIO2_OBJECT_TRANSPARENT = ( 1 << 1 ), SIO2_OBJECT_ALPHA_TESTED = ( 1 << 2 ) }
enum  SIO2_OBJECT_FLAGS {
  SIO2_OBJECT_ACTOR = ( 1 << 0 ), SIO2_OBJECT_GHOST = ( 1 << 1 ), SIO2_OBJECT_DYNAMIC = ( 1 << 2 ), SIO2_OBJECT_RIGIDBODY = ( 1 << 3 ),
  SIO2_OBJECT_SOFTBODY = ( 1 << 4 ), SIO2_OBJECT_BILLBOARD = ( 1 << 5 ), SIO2_OBJECT_HALO = ( 1 << 6 ), SIO2_OBJECT_TWOSIDE = ( 1 << 7 ),
  SIO2_OBJECT_NOSLEEPING = ( 1 << 8 ), SIO2_OBJECT_SHADOW = ( 1 << 9 ), SIO2_OBJECT_DYNAMIC_DRAW = ( 1 << 10 ), SIO2_OBJECT_INVISIBLE = ( 1 << 11 )
}
enum  SIO2_OBJECT_VBO_OFFSET {
  SIO2_OBJECT_SIZE = 0, SIO2_OBJECT_NORMALS, SIO2_OBJECT_VCOLOR, SIO2_OBJECT_TEXUV0,
  SIO2_OBJECT_TEXUV1, SIO2_OBJECT_NVBO_OFFSET
}

Functions

SIO2objectsio2ObjectInit (char *)
SIO2objectsio2ObjectFree (SIO2object *)
unsigned char sio2ObjectLoad (char *, char *, char *)
void sio2ObjectGenId (SIO2object *)
void sio2ObjectAddSound (SIO2object *, SIO2soundbuffer *, unsigned int)
void sio2ObjectBindSound (SIO2object *)
unsigned char sio2ObjectRender (SIO2object *, SIO2window *, SIO2camera *, unsigned char, unsigned char, unsigned char)
void sio2ObjectBindVBO (SIO2object *, unsigned char)
void sio2ObjectReset (void)
void sio2ObjectBillboard (SIO2object *, vec3 *)
unsigned int sio2ObjectGetNumVert (SIO2object *)
SIO2objectsio2ObjectSoftCopy (SIO2object *, char *)
SIO2objectsio2ObjectHardCopy (SIO2object *, char *)
void sio2ObjectEnableObjectCollisionCallback (SIO2object *)
void sio2ObjectDisableObjectCollisionCallback (SIO2object *)
void sio2ObjectUpdateType (SIO2object *)
void sio2ObjectPlay (SIO2object *, unsigned char)
void sio2ObjectPause (SIO2object *)
void sio2ObjectStop (SIO2object *)
unsigned char sio2ObjectSetAction (SIO2object *, SIO2action *, float, float)
unsigned char sio2ObjectNextAction (SIO2object *, SIO2action *, float, float)
void sio2ObjectUpdateTimeRatio (SIO2object *)
void sio2ObjectRenderAction (SIO2object *, SIO2window *)
unsigned char sio2ObjectSetFrame (SIO2object *, unsigned int)
void sio2ObjectInitPhysicAttributes (SIO2object *)
unsigned char sio2ObjectCopyPhysicAttributes (SIO2object *, SIO2object *)
void sio2ObjectInitAnimationAttributes (SIO2object *)
void sio2ObjectBuildEdges (SIO2object *)


Enumeration Type Documentation

Enumerator:
SIO2_OBJECT_ACTOR  The SIO2object is a physic actor.
SIO2_OBJECT_GHOST  The physic SIO2object will not restitute collisions.
SIO2_OBJECT_DYNAMIC  The SIO2object should use dynamic physic. (no rolling physic applied).
SIO2_OBJECT_RIGIDBODY  The SIO2object should used rigid body physic.
SIO2_OBJECT_SOFTBODY  The SIO2object should be treated as a soft body.
SIO2_OBJECT_BILLBOARD  The SIO2object should be rendered as a billboard on the Z (default) axis.
SIO2_OBJECT_HALO  The SIO2object should be billboard on the X (default) axis.
SIO2_OBJECT_TWOSIDE  The SIO2object should render all both front face and back face polygons.
SIO2_OBJECT_NOSLEEPING  The SIO2object collision object will never go to sleep.
SIO2_OBJECT_SHADOW  Tag the SIO2object to be used for shadow algorithm (use defined).
SIO2_OBJECT_DYNAMIC_DRAW  The SIO2object is a dynamic object. Use dynamic draw for the VBO creation.
SIO2_OBJECT_INVISIBLE  The object will be tagged as invisible for rendering. However you it will still be tested against the frustum.

Enumerator:
SIO2_OBJECT_SOLID  The object is rendered fully opaque.
SIO2_OBJECT_TRANSPARENT  The object have some material(s) that require alpha sorting to render properly.
SIO2_OBJECT_ALPHA_TESTED  The obect contain some material(s) that require alpha testing.

Enumerator:
SIO2_OBJECT_SIZE  The total size of the object VBO in bytes.
SIO2_OBJECT_NORMALS  The offset in bytes of the normals.
SIO2_OBJECT_VCOLOR  The offset in bytes of the vertex color.
SIO2_OBJECT_TEXUV0  The offset in bytes of the first UV channel.
SIO2_OBJECT_TEXUV1  The offset in bytes of the second UV channel.
SIO2_OBJECT_NVBO_OFFSET 


Function Documentation

void sio2ObjectAddSound ( SIO2object _SIO2object,
SIO2soundbuffer _SIO2soundbuffer,
unsigned int  _flags 
)

Create a new sound source and attach it to the current SIO2object. The sound source position will be updated if the _updatesoundsource parameter of the sio2ObjectRender function parameter is positive, in the case of an SIO2_SOUND_FX type.

_SIO2object: A valid SIO2object pointer.
_SIO2soundbuffer: A valid SIO2soundbuffer pointer.
_flags: The mask to use for the new SIO2sound. Check SIO2sound for more information.

References SIO2object::_SIO2sound, SIO2object::_SIO2transform, SIO2sound::flags, SIO2transform::loc, SIO2object::n_sound, SIO2object::name, SIO2_MAX_CHAR, SIO2_SOUND_AUTOPLAY, SIO2_SOUND_FX, sio2IsStateEnabled(), sio2SoundGenId(), sio2SoundInit(), sio2SoundPlay(), sio2SoundSetFx(), and SIO2object::snd_rad.

Referenced by sio2ObjectBindSound().

Here is the call graph for this function:

void sio2ObjectBillboard ( SIO2object _SIO2object,
vec3 _vec 
)

Function that re-align the SIO2object rotation to face the camera. Please take note that the up vector of the camera is assumed to be on the positive Z axis. Meaning that the direction vector of the SIO2object will point on the positive Y axis in order to align the rotation appropriately.

_SIO2object: A valid SIO2object pointer.
_vec3: The position of the object in world space.

References SIO2object::_SIO2transform, SIO2object::flags, SIO2transform::loc, SIO2_OBJECT_HALO, sio2CrossProduct(), sio2DotProductToDeg(), sio2IsStateEnabled(), sio2Normalize(), vec3::x, vec3::y, and vec3::z.

Referenced by sio2ObjectRender().

Here is the call graph for this function:

void sio2ObjectBindSound ( SIO2object _SIO2object  ) 

Helper function that loop through all the SIO2vertexgroup of an SIO2object analyze its material and determine if a SIO2soundbuffer is attached. If yes the function will automatically create a new sound source for the appropriate SIO2soundbuffer, and use the sound flags contained in the SIO2material to create the appropriate type of sound source.

_SIO2object: A valid SIO2object pointer.

References SIO2object::_SIO2instance, SIO2vertexgroup::_SIO2material, SIO2object::_SIO2sound, SIO2sound::_SIO2soundbuffer, SIO2material::_SIO2soundbuffer, SIO2object::_SIO2vertexgroup, SIO2object::n_sound, SIO2object::n_vgroup, SIO2material::sbname, SIO2material::sflags, SIO2_MATERIAL_MAX_SOUNDBUFFER, and sio2ObjectAddSound().

Referenced by sio2ResourceBindAllSounds().

Here is the call graph for this function:

void sio2ObjectBindVBO ( SIO2object _SIO2object,
unsigned char  _usematerial 
)

Attach the appropriate VBO ID to the current OpenGL context for rendering.

_SIO2object: A valid SIO2object pointer.
_usematerial: Determine whether or not to use material(s) when rendering the SIO2object.

References SIO2::_SIO2state, SIO2state::flags, sio2, SIO2_BUFFER_OFFSET, SIO2_COLOR_ARRAY, SIO2_LIGHTING, SIO2_NORMAL_ARRAY, SIO2_OBJECT_NORMALS, SIO2_OBJECT_TEXUV0, SIO2_OBJECT_TEXUV1, SIO2_OBJECT_VCOLOR, SIO2_TEXTURE_COORD_ARRAY0, SIO2_TEXTURE_COORD_ARRAY1, sio2IsStateEnabled(), sio2StateDisable(), sio2StateEnable(), SIO2object::vbo, and SIO2object::vbo_offset.

Referenced by sio2ObjectRender().

Here is the call graph for this function:

void sio2ObjectBuildEdges ( SIO2object _SIO2object  ) 

Build the edges information based on the vertex buffer and indices.

_SIO2object: A valid SIO2object pointer that have access to the SIO2object vertices and indices of itself or its instance.

References SIO2object::_SIO2edge, SIO2object::_SIO2vertexgroup, SIO2object::buf, SIO2edge::ind, SIO2vertexgroup::ind, SIO2object::n_edge, SIO2vertexgroup::n_ind, SIO2object::n_vgroup, SIO2edge::nor, sio2CrossProduct(), sio2Normalize(), sio2ObjectGetNumVert(), vec3::x, vec3::y, and vec3::z.

Here is the call graph for this function:

unsigned char sio2ObjectCopyPhysicAttributes ( SIO2object _SIO2object0,
SIO2object _SIO2object1 
)

Copy the physic attributes from the _SIO2object1 to _SIO2object0.

_SIO2object0: A valid SIO2object pointer that doesn't have physic attributes set or need an update.
_SIO2object1: A valid SIO2object pointer currently have physic attributes set.

return 1 or 0 depending if the physic attributes copy took place or not.

References SIO2object::_SIO2objectphysic, SIO2objectphysic::bounds, SIO2objectphysic::citeration, SIO2objectphysic::damp, SIO2objectphysic::linstiff, SIO2objectphysic::margin, SIO2objectphysic::mass, SIO2objectphysic::piteration, SIO2objectphysic::rotdamp, SIO2objectphysic::shapematch, and sio2ObjectInitPhysicAttributes().

Referenced by sio2ObjectSoftCopy().

Here is the call graph for this function:

void sio2ObjectDisableObjectCollisionCallback ( SIO2object _SIO2object  ) 

Disable the SIO2object collision shape to receive custom material callbacks.

Check the Bullet documentation for more details.

_SIO2object: A valid SIO2object pointer.

References SIO2objectphysic::_btRigidBody, and SIO2object::_SIO2objectphysic.

Referenced by sio2SensorFree().

void sio2ObjectEnableObjectCollisionCallback ( SIO2object _SIO2object  ) 

Enable the SIO2object collision shape to receive custom material callbacks.

Check the Bullet documentation for more details.

_SIO2object: A valid SIO2object pointer.

References SIO2objectphysic::_btRigidBody, and SIO2object::_SIO2objectphysic.

Referenced by sio2SensorInitContact().

SIO2object* sio2ObjectFree ( SIO2object _SIO2object  ) 

void sio2ObjectGenId ( SIO2object _SIO2object  ) 

Generate a new VBO ID for the SIO2object. Please make sure that the SIO2object->buf pointer is loaded with the proper information in bytes. In addition, you also have to set the proper size of the VBO offset in SIO2object->vbo_offset.

_SIO2object: A valid SIO2object pointer.

References SIO2object::_SIO2vertexgroup, SIO2object::buf, SIO2object::flags, SIO2object::n_vgroup, SIO2_OBJECT_DYNAMIC_DRAW, SIO2_OBJECT_SIZE, sio2IsStateEnabled(), sio2ObjectUpdateType(), sio2VertexGroupGenId(), SIO2vertexgroup::vbo, SIO2object::vbo, and SIO2object::vbo_offset.

Referenced by sio2ResourceGenId().

Here is the call graph for this function:

unsigned int sio2ObjectGetNumVert ( SIO2object _SIO2object  ) 

SIO2object* sio2ObjectHardCopy ( SIO2object _SIO2object,
char _name 
)

Similar as sio2ObjectSoftCopy at the exception that this call will create a brand new SIO2object duplicating all the VBO information in memory. After duplication, you will have to call sio2ObjectGenID to generate a new VBO ID in order to make this new SIO2object functional inside your 3D world. If the new SIO2object have physic attributes your will have to call the sio2PhysicObjectAdd function to insert it inside your physic world.

Please take note that all vertices and indices will be duplicated, this call will basically create a totally new SIO2object in local memory and video memory. This is indeed an expensive call. Only use sio2ObjectHardCopy for animated SIO2object or when the SIO2object use soft body physic. For the rest of the cases, please use sio2ObjectSoftCopy as much as you can.

_SIO2object: A valid "master" SIO2object handle.
_name: The name of the new SIO2object.

return an SIO2object handle pointing to the new SIO2object created.

References SIO2object::_SIO2instance, SIO2vertexgroup::_SIO2material, SIO2object::_SIO2vertexgroup, SIO2object::buf, SIO2vertexgroup::ind, SIO2object::instname, SIO2vertexgroup::mname, SIO2vertexgroup::mode, SIO2vertexgroup::n_ind, SIO2object::n_vgroup, SIO2vertexgroup::name, SIO2_OBJECT_NVBO_OFFSET, SIO2_OBJECT_SIZE, sio2MapBuffer(), sio2ObjectSoftCopy(), sio2StringCpy(), sio2UnmapBuffer(), sio2VertexGroupInit(), SIO2vertexgroup::vbo, SIO2object::vbo, and SIO2object::vbo_offset.

Here is the call graph for this function:

SIO2object* sio2ObjectInit ( char _name  ) 

Create a new SIO2object, this new SIO2object pointer will be added to the global sio2 SIO2resource handle.

_name: The name to use to associate the SIO2object within the SIO2resource.

return a new SIO2object structure pointer.

References SIO2::_SIO2resource, SIO2object::_SIO2transform, SIO2object::dst, SIO2object::name, sio2, SIO2_OBJECT, sio2ResourceAdd(), sio2StringCpy(), and sio2TransformLoadIdentity().

Referenced by sio2ObjectLoad(), and sio2ObjectSoftCopy().

Here is the call graph for this function:

void sio2ObjectInitAnimationAttributes ( SIO2object _SIO2object  ) 

Initialize in memory the necessary attributes for the SIO2object to playback animation.

_SIO2object: A valid SIO2object pointer.

References SIO2object::_SIO2objectanimation.

void sio2ObjectInitPhysicAttributes ( SIO2object _SIO2object  ) 

Initialize the necessary structure in memory to allow the SIO2object to use physic.

_SIO2object: A valid SIO2object pointer that doesn't currently have physic attributes set.

References SIO2object::_SIO2objectphysic, SIO2objectphysic::damp, and SIO2objectphysic::rotdamp.

Referenced by sio2ObjectCopyPhysicAttributes(), and sio2ObjectLoad().

unsigned char sio2ObjectLoad ( char _root,
char _tok,
char _val 
)

unsigned char sio2ObjectNextAction ( SIO2object _SIO2object,
SIO2action _SIO2action,
float  _interp,
float  _fps 
)

Force the current SIO2action running for the SIO2object to directly interpolate the current frame with the first frame of another SIO2action.

SIO2object: A valid SIO2object pointer.
SIO2action: A valid SIO2action pointer.
_interp: The interpolation time (in delta time) between and SIO2action loop or next action.
_fps: The frame per second that the SIO2action should playback.

return 1 or 0 depending if the SIO2action have been succesfully set.

References SIO2objectanimation::_SIO2action, SIO2action::_SIO2frame, SIO2objectanimation::_SIO2frame1, SIO2objectanimation::_SIO2frame2, SIO2object::_SIO2objectanimation, SIO2objectanimation::d_time, SIO2objectanimation::fps, SIO2objectanimation::interp, SIO2objectanimation::next_action, SIO2objectanimation::next_frame, SIO2action::s_frame, sio2ObjectGetNumVert(), sio2ObjectSetAction(), and SIO2objectanimation::t_ratio.

Here is the call graph for this function:

void sio2ObjectPause ( SIO2object _SIO2object  ) 

Pause an SIO2action, previously bind to the SIO2object.

SIO2object: A valid SIO2object pointer.

References SIO2object::_SIO2objectanimation, SIO2_PAUSE, and SIO2objectanimation::state.

void sio2ObjectPlay ( SIO2object _SIO2object,
unsigned char  _loop 
)

Play an SIO2action, previously bind to the SIO2object.

SIO2object: A valid SIO2object pointer.
_loop: Determine whether or not the SIO2action should loop when finished.

References SIO2objectanimation::_SIO2action, SIO2object::_SIO2objectanimation, SIO2objectanimation::loop, SIO2_PLAY, and SIO2objectanimation::state.

unsigned char sio2ObjectRender ( SIO2object _SIO2object,
SIO2window _SIO2window,
SIO2camera _SIO2camera,
unsigned char  _usematerial,
unsigned char  _matrixtype,
unsigned char  _updatesoundsource 
)

Render a "visible" SIO2object. The visibility of the SIO2object is determined by the SIO2object->dst value (which much be greated than 0) or if the SIO2object->flags doesn't contain the SIO2_OBJECT_GHOST tags. Please take note that if the SIO2object is using physic, the SIO2object->_SIO2transform->mat matrix will be updated based on the value that Bullet is maintaining for the current SIO2object collision shape.

_SIO2object: A valid SIO2object pointer.
_SIO2window: Only used to gather the delta time of the current SIO2window rendering a valid OpenGL context.
_SIO2camera: Only used when the SIO2_OBJECT_BILLBOARD or SIO2_OBJECT_HALO tags are present in the SIO2object->flags.
_usematerial: A positive value will cause the rendering function to use materials.
_matrixtype: Determine what type of matrix should be used when rendering the SIO2object. Check SIO2transform for more information.
_updatesoundsource: Will force the render function to update all positional sound source attached to the SIO2object.

return 1 or 0 depending if the SIO2object have been rendered.

References SIO2objectphysic::_btRigidBody, SIO2objectphysic::_btSoftBody, SIO2objectanimation::_SIO2action, SIO2object::_SIO2instance, SIO2object::_SIO2ipo, SIO2::_SIO2object, SIO2object::_SIO2objectanimation, SIO2object::_SIO2objectphysic, SIO2object::_SIO2sound, SIO2camera::_SIO2transform, SIO2ipo::_SIO2transform, SIO2object::_SIO2transform, SIO2object::_SIO2vertexgroup, SIO2object::buf, SIO2object::dst, SIO2object::flags, SIO2sound::flags, SIO2transform::loc, SIO2objectphysic::mass, SIO2transform::mat, SIO2object::n_sound, SIO2object::n_vgroup, SIO2transform::rot, SIO2transform::scl, sio2, SIO2_OBJECT_BILLBOARD, SIO2_OBJECT_HALO, SIO2_OBJECT_INVISIBLE, SIO2_OBJECT_NORMALS, SIO2_OBJECT_TWOSIDE, SIO2_PLAY, SIO2_SOUND_FX, SIO2_TRANSFORM_MATRIX_APPLY, SIO2_TRANSFORM_MATRIX_BIND, sio2IsStateEnabled(), sio2MapBuffer(), sio2ObjectBillboard(), sio2ObjectBindVBO(), sio2ObjectRenderAction(), sio2SoundSetFx(), sio2TransformApply(), sio2TransformGetLocFromMatrix(), sio2TransformRender(), sio2TransformSetLoc(), sio2TransformSetMatrix(), sio2TransformSetRot(), sio2TransformSetScl(), sio2UnmapBuffer(), sio2VertexGroupRender(), SIO2object::snd_rad, SIO2ipo::state, SIO2object::userdata, SIO2object::vbo, SIO2object::vbo_offset, vec3::x, vec3::y, and vec3::z.

Referenced by sio2ResourceRender(), and sio2ResourceSelect3D().

Here is the call graph for this function:

void sio2ObjectRenderAction ( SIO2object _SIO2object,
SIO2window _SIO2window 
)

void sio2ObjectReset ( void   ) 

Reset the OpenGL machine state as well as the SIO2 state that the rendering of an SIO2object might have turn ON.

References SIO2::_SIO2object, SIO2::_SIO2state, SIO2::_SIO2vertexgroup, sio2, SIO2_COLOR_ARRAY, SIO2_NORMAL_ARRAY, and sio2StateDisable().

Referenced by sio2ResourceRender().

Here is the call graph for this function:

unsigned char sio2ObjectSetAction ( SIO2object _SIO2object,
SIO2action _SIO2action,
float  _interp,
float  _fps 
)

Assign an SIO2action to the current SIO2object passed in parameters. Please take note that in order to assign the SIO2action, the number of vertices and normals (if exported) need to fit with the number of vertices and normals contained in the SIO2frame in order to validate that the SIO2frame have been created for the specific SIO2object.

SIO2object: A valid SIO2object pointer.
SIO2action: A valid SIO2action pointer.
_interp: The interpolation time (in delta time) between and SIO2action loop or next action.
_fps: The frame per second that the SIO2action should playback.

return 1 or 0 depending if the SIO2action have been succesfully set.

References SIO2objectanimation::_SIO2action, SIO2action::_SIO2frame, SIO2objectanimation::_SIO2frame1, SIO2objectanimation::_SIO2frame2, SIO2object::_SIO2instance, SIO2object::_SIO2objectanimation, SIO2objectanimation::curr_frame, SIO2objectanimation::fps, SIO2objectanimation::interp, SIO2objectanimation::next_frame, SIO2action::s_frame, sio2ObjectGetNumVert(), and sio2ObjectUpdateTimeRatio().

Referenced by sio2ObjectNextAction().

Here is the call graph for this function:

unsigned char sio2ObjectSetFrame ( SIO2object _SIO2object,
unsigned int  _frame 
)

Set the current SIO2action to a specific SIO2frame.

_SIO2object: A valid SIO2object pointer.
_frame: The frame number in the SIO2action array to be assigned.

return 1 or 0 depending if the SIO2frame of the current SIO2action have been succesfully set.

References SIO2objectanimation::_SIO2action, SIO2action::_SIO2frame, SIO2object::_SIO2objectanimation, SIO2frame::buf, SIO2object::buf, SIO2objectanimation::curr_frame, SIO2action::n_frame, SIO2objectanimation::next_frame, SIO2_OBJECT_NORMALS, sio2MapBuffer(), sio2ObjectGetNumVert(), sio2ObjectUpdateTimeRatio(), sio2UnmapBuffer(), SIO2object::vbo, and SIO2object::vbo_offset.

Here is the call graph for this function:

SIO2object* sio2ObjectSoftCopy ( SIO2object _SIO2object,
char _name 
)

Create a soft copy of an SIO2object, commonly called "instance" in SIO2. Please take note that the SIO2object passed in parameters to this function need to be a "master" SIO2object, in other words not another instance.

In addition, to have the new SIO2object working in worldspace you will have to assign the SIO2transform parameters and specify where this new SIO2object will be located in world space. In the case that the new SIO2object is using physic, you will have to manually add it to the SIO2physic world of your choice. All variables will be duplicated and ready to be added in a SIO2physic handle.

Also in the case of duplicating a physic object of the type SIO2_PHYSIC_TRIANGLEMESH or SIO2_CONVEXHULL, you will have to map (sio2MapBuffer) the parent VBO buffer before sending the new SIO2object to the sio2PhysicAddObject function.

Please take note that soft body objects or animated objects cannot be duplicated with this function. You will have to use sio2ObjectHardCopy for this type of SIO2object.

_SIO2object: A valid "master" SIO2object pointer.
_name: The name to use for the new SIO2object.

return an SIO2object handle pointing to the new SIO2object created.

References SIO2object::_SIO2instance, SIO2object::_SIO2ipo, SIO2object::dim, SIO2object::flags, SIO2object::instname, SIO2object::name, SIO2object::rad, sio2ObjectCopyPhysicAttributes(), sio2ObjectInit(), sio2StringCpy(), SIO2object::snd_rad, and SIO2object::type.

Referenced by sio2ObjectHardCopy().

Here is the call graph for this function:

void sio2ObjectStop ( SIO2object _SIO2object  ) 

void sio2ObjectUpdateTimeRatio ( SIO2object _SIO2object  ) 

void sio2ObjectUpdateType ( SIO2object _SIO2object  ) 

Update the SIO2object->type. Basically there's 3 type of SIO2object in SIO2, SIO2_OBJECT_SOLID, SIO2_OBJECT_TRANSPARENT and SIO2_OBJECT_ALPHA_TESTED, all of them require a different type of sorting when rendered. This function will analyze the SIO2object and its SIO2material(s) and determine in which category the SIO2object should be used by the sio2ResourceRender function.

_SIO2object: A valid SIO2object pointer.

References SIO2object::_SIO2instance, SIO2vertexgroup::_SIO2material, SIO2object::_SIO2vertexgroup, SIO2material::alvl, SIO2material::blend, SIO2object::n_vgroup, SIO2_OBJECT_ALPHA_TESTED, SIO2_OBJECT_SOLID, SIO2_OBJECT_TRANSPARENT, sio2DisableState(), sio2EnableState(), and SIO2object::type.

Referenced by sio2ObjectGenId().

Here is the call graph for this function:


Generated on Thu Mar 4 15:41:44 2010 for SIO2 Engine by  doxygen 1.5.6