My Project
|
A static mesh based physical object in the scene please note that it keeps the static mesh object as its member rather than inheriting from it. More...
#include <MeshPhysicsObject.h>
Public Member Functions | |
virtual CBaseObject::_SceneObjectType | GetType () |
virtual std::string | ToString (DWORD nMethod) |
convert the object to an NPL string by which this object may be created or deleted. More... | |
CMeshPhysicsObject (void) | |
virtual int | GetAttributeClassID () |
attribute class ID should be identical, unless one knows how overriding rules work. More... | |
virtual const char * | GetAttributeClassName () |
a static string, describing the attribute class object's name | |
virtual const char * | GetAttributeClassDescription () |
a static string, describing the attribute class object | |
virtual int | InstallFields (CAttributeClass *pClass, bool bOverride) |
this class should be implemented if one wants to add new attribute. More... | |
ATTRIBUTE_SUPPORT_CREATE_FACTORY (CMeshPhysicsObject) | |
ATTRIBUTE_METHOD1 (CMeshPhysicsObject, IsFaceCullingDisabled_s, bool *) | |
ATTRIBUTE_METHOD1 (CMeshPhysicsObject, SetFaceCullingDisabled_s, bool) | |
void | SetFaceCullingDisabled (bool bDisableFaceCulling) |
whether we will turn off any material level face culling setting. More... | |
bool | IsFaceCullingDisabled () |
whether we will turn off any material level face culling setting. More... | |
virtual void | SetPhysicsGroup (int nGroup) |
set the physics group ID to which this object belongs to default to 0, must be smaller than 32. More... | |
virtual int | GetPhysicsGroup () |
Get the physics group ID to which this object belongs to default to 0, must be smaller than 32. More... | |
int | GetStaticActorCount () |
get the number of physics actors. More... | |
virtual bool | CanHasPhysics () |
if the object may contain physics | |
HRESULT | InitObject (MeshEntity *ppMesh, float fOBB_X, float fOBB_Y, float fOBB_Z, bool bApplyPhysics, const Matrix4 &localTransform) |
mesh asset file name ending with _a or _b (such as "tree_b.x" )will be forced no physics initially. More... | |
virtual void | Cleanup () |
clean up | |
virtual void | Rotate (float x, float y, float z) |
Rotate the object.This only takes effects on objects having 3D orientation, such as static mesh and physics mesh. More... | |
virtual void | SetRotation (const Quaternion &quat) |
set rotation using a quaternion. More... | |
virtual void | GetRotation (Quaternion *quat) |
get rotation using a quaternion | |
virtual void | SetScaling (float s) |
set the scale of the object. More... | |
virtual float | GetScaling () |
get the size scale | |
virtual void | Reset () |
reset the object to its default settings. More... | |
virtual void | SetAnimation (int nAnimID) |
Set the current animation id. More... | |
virtual int | GetAnimation () |
get the scaling. More... | |
virtual void | SetAnimFrame (int nFrame) |
set the current animation frame number relative to the beginning of current animation. More... | |
virtual int | GetAnimFrame () |
get the current animation frame number relative to the beginning of current animation. More... | |
virtual void | SetUseGlobalTime (bool bUseGlobalTime) |
whether to use global time to sync animation. More... | |
virtual bool | IsUseGlobalTime () |
whether to use global time to sync animation. More... | |
virtual void | SetLocalTransform (const Matrix4 &mXForm) |
update the local transform of the mesh object. More... | |
virtual void | GetLocalTransform (Matrix4 *localTransform) |
get local transform | |
virtual void | SetBoundingBox (float fOBB_X, float fOBB_Y, float fOBB_Z, float fFacing) |
Set the object shape to box and bounding box parameters if fFacing is 0, it is a axis aligned bounding box (AABB). More... | |
virtual void | SetBoundRect (FLOAT fWidth, FLOAT fHeight, FLOAT fFacing) |
Set the object shape to rect (a plane) and rect parameters if fFacing is 0, it is a axis aligned bounding box (AABB). More... | |
virtual void | SetRadius (FLOAT fRadius) |
Set the object shape to Sphere and sphere parameters. More... | |
virtual Matrix4 * | GetRenderMatrix (Matrix4 &out, int nRenderNumber=0) |
return the world matrix of the object for rendering More... | |
virtual Matrix4 * | GetAttachmentMatrix (Matrix4 &pOut, int nAttachmentID=0, int nRenderNumber=0) |
Get the specified attachment matrix of the current model. More... | |
virtual bool | HasAttachmentPoint (int nAttachmentID=0) |
whether it has an attachment point More... | |
virtual bool | IsPersistent () |
whether the object is persistent in the world. More... | |
virtual void | SetPersistent (bool bPersistent) |
whenever a persistent object is made non-persistent, the SaveToDB() function will actually removed it from the database and the action can not be recovered. More... | |
CMeshObject * | GetMeshObject () |
get the mesh object associated with the object | |
virtual void | LoadPhysics () |
load the physics objects. More... | |
virtual void | UnloadPhysics () |
load the physics object | |
virtual void | SetAlwaysLoadPhysics (bool bEnable) |
by default physics is lazy-load when player walk into its bounding box, setting this to false will always load the physics. More... | |
virtual bool | ViewTouch () |
this function is called, when the object is in view range. More... | |
virtual void | EnablePhysics (bool bEnable) |
this function will turn on or off the physics of the object. More... | |
virtual bool | IsPhysicsEnabled () |
virtual void | CompressObject (CompressOption option=(CompressOption) 0xffff) |
unload physics. More... | |
virtual void | SetPosition (const DVector3 &v) |
always bottom center of the bounding shape | |
virtual void | SetYaw (float fFacing) |
virtual void | Animate (double dTimeDelta, int nRenderNumber=0) |
animate the model by a given delta time. More... | |
virtual HRESULT | Draw (SceneState *sceneState) |
only for drawable objects | |
virtual AssetEntity * | GetPrimaryAsset () |
Set scaling. More... | |
virtual IViewClippingObject * | GetViewClippingObject () |
return the view clipping object used for object-level clipping when rendering this object. | |
virtual int | GetPrimaryTechniqueHandle () |
when batch-rendering a group of objects, objects are usually sorted by their render techniques and then by their primary asset. More... | |
virtual void | SetPrimaryTechniqueHandle (int nHandle) |
Set a new render technique handle. More... | |
virtual CParameterBlock * | GetEffectParamBlock (bool bCreateIfNotExist=false) |
get effect parameter block with this object. More... | |
virtual float | GetCtorPercentage () |
Get the object construction percentage (progress) in the range[0,1]. More... | |
virtual void | SetCtorPercentage (float fPercentage) |
Set the object construction percentage (progress) in the range[0,1]. More... | |
virtual void | AutoSelectTechnique () |
automatically select the proper technique for the rendering of the object. More... | |
virtual void | SetOnAssetLoaded (const char *sCallbackScript) |
set the callback scipt whenever the primary asset is successfully loaded. More... | |
virtual void | OnSelect (int nGroupID) |
called when an object is selected. More... | |
virtual void | OnDeSelect () |
called whenever an object is un-selected. More... | |
virtual bool | IsTransparent () |
whether the object contains transparent material. More... | |
virtual void | SetTransparent (bool bIsTransparent) |
Set whether the object is transparent. More... | |
virtual bool | HasAlphaBlendedObjects () |
return true if the object contains alpha blended render pass. More... | |
virtual int | GetNumReplaceableTextures () |
get the total number of replaceable textures, which is the largest replaceable texture ID. More... | |
virtual TextureEntity * | GetDefaultReplaceableTexture (int ReplaceableTextureID) |
get the default replaceable texture by its ID. More... | |
virtual TextureEntity * | GetReplaceableTexture (int ReplaceableTextureID) |
get the current replaceable texture by its ID. More... | |
virtual bool | SetReplaceableTexture (int ReplaceableTextureID, TextureEntity *pTextureEntity) |
set the replaceable texture at the given index with a new texture. More... | |
![]() | |
ATTRIBUTE_DEFINE_CLASS (CTileObject) | |
virtual bool | IsTileObject () |
if true, we will attach this object to quad-tree terrain tile according to its attributes when adding to the scene if false, we will automatically attach it to a container object named after its class name. | |
virtual DVector3 | GetPosition () |
always bottom center of the bounding shape | |
virtual void | GetBoundingBox (float *fOBB_X, float *fOBB_Y, float *fOBB_Z, float *fFacing) |
virtual void | GetBoundRect (float *fWidth, float *fHeight, float *fFacing) |
virtual float | GetRadius () |
virtual float | GetYaw () |
get object Yaw: is facing the positive x axis, if yaw is 0. | |
virtual float | GetHeight () |
get object height y axis: only for object that has a Height property, usually is height of the bounding box | |
virtual void | SetHeight (float fHeight) |
virtual float | GetWidth () |
get object width: x axis | |
virtual void | SetWidth (float fWidth) |
virtual float | GetDepth () |
get object depth: z axis | |
virtual void | SetDepth (float fDepth) |
virtual void | SetAABB (const Vector3 *vMin, const Vector3 *vMax) |
Set AABB information. More... | |
virtual Vector3 | GetLocalAABBCenter () |
virtual void | GetOBB (CShapeOBB *obb) |
get the oriented bounding box in world space. More... | |
virtual void | GetAABB (CShapeAABB *aabb) |
virtual DVector3 | GetObjectCenter () |
get the center of the object in world space | |
virtual void | SetObjectCenter (const DVector3 &v) |
set the center of the object in world space | |
virtual void | GetVerticesWithOrigin (const Vector3 *vOrigin, Vector3 *pVertices, int *nNumber) |
![]() | |
virtual void | Clone (CBaseObject *obj) |
Clone the object's contains to a pointer. More... | |
virtual CBaseObject * | Clone () |
Clone the object's contains and return a pointer to the newly created object. More... | |
int | GetID () |
the ID of the object. More... | |
virtual bool | AddChildAttributeObject (IAttributeFields *pChild, int nRowIndex=-1, int nColumnIndex=0) |
add child object. More... | |
virtual void * | QueryObjectByName (const std::string &sObjectType) |
convert to object of a given type. More... | |
virtual void * | QueryObject (int nObjectType) |
convert to object of a given type. More... | |
ATTRIBUTE_METHOD1 (CBaseObject, GetID_s, int *) | |
ATTRIBUTE_METHOD1 (CBaseObject, IsGlobal_s, bool *) | |
ATTRIBUTE_METHOD1 (CBaseObject, GetFacing_s, float *) | |
ATTRIBUTE_METHOD1 (CBaseObject, SetFacing_s, float) | |
ATTRIBUTE_METHOD1 (CBaseObject, GetYaw_s, float *) | |
ATTRIBUTE_METHOD1 (CBaseObject, SetYaw_s, float) | |
ATTRIBUTE_METHOD1 (CBaseObject, GetPitch_s, float *) | |
ATTRIBUTE_METHOD1 (CBaseObject, SetPitch_s, float) | |
ATTRIBUTE_METHOD1 (CBaseObject, GetRoll_s, float *) | |
ATTRIBUTE_METHOD1 (CBaseObject, SetRoll_s, float) | |
ATTRIBUTE_METHOD1 (CBaseObject, GetHeight_s, float *) | |
ATTRIBUTE_METHOD1 (CBaseObject, SetHeight_s, float) | |
ATTRIBUTE_METHOD1 (CBaseObject, GetWidth_s, float *) | |
ATTRIBUTE_METHOD1 (CBaseObject, SetWidth_s, float) | |
ATTRIBUTE_METHOD1 (CBaseObject, GetDepth_s, float *) | |
ATTRIBUTE_METHOD1 (CBaseObject, SetDepth_s, float) | |
ATTRIBUTE_METHOD1 (CBaseObject, GetRadius_s, float *) | |
ATTRIBUTE_METHOD1 (CBaseObject, SetRadius_s, float) | |
ATTRIBUTE_METHOD1 (CBaseObject, GetPosition_s, DVector3 *) | |
ATTRIBUTE_METHOD1 (CBaseObject, SetPosition_s, DVector3) | |
ATTRIBUTE_METHOD1 (CBaseObject, GetAssetFileName_s, const char **) | |
ATTRIBUTE_METHOD1 (CBaseObject, SetAssetFileName_s, const char *) | |
ATTRIBUTE_METHOD1 (CBaseObject, GetTechHandle_s, int *) | |
ATTRIBUTE_METHOD1 (CBaseObject, SetTechHandle_s, int) | |
ATTRIBUTE_METHOD1 (CBaseObject, GetCtorPercentage_s, float *) | |
ATTRIBUTE_METHOD1 (CBaseObject, SetCtorPercentage_s, float) | |
ATTRIBUTE_METHOD1 (CBaseObject, GetHomeZone_s, const char **) | |
ATTRIBUTE_METHOD1 (CBaseObject, SetHomeZone_s, const char *) | |
ATTRIBUTE_METHOD1 (CBaseObject, GetShowBoundingBox_s, bool *) | |
ATTRIBUTE_METHOD1 (CBaseObject, SetShowBoundingBox_s, bool) | |
ATTRIBUTE_METHOD1 (CBaseObject, GetPhysicsGroup_s, int *) | |
ATTRIBUTE_METHOD1 (CBaseObject, SetPhysicsGroup_s, int) | |
ATTRIBUTE_METHOD1 (CBaseObject, GetPhysicsGroupMask_s, DWORD *) | |
ATTRIBUTE_METHOD1 (CBaseObject, SetPhysicsGroupMask_s, DWORD) | |
ATTRIBUTE_METHOD1 (CBaseObject, GetSelectGroupIndex_s, int *) | |
ATTRIBUTE_METHOD1 (CBaseObject, SetSelectGroupIndex_s, int) | |
ATTRIBUTE_METHOD (CBaseObject, Reset_s) | |
DEFINE_SCRIPT_EVENT_GET (CBaseObject, OnAssetLoaded) | |
ATTRIBUTE_METHOD1 (CBaseObject, SetOnAssetLoaded_s, const char *) | |
ATTRIBUTE_METHOD1 (CBaseObject, GetRenderOrder_s, float *) | |
ATTRIBUTE_METHOD1 (CBaseObject, SetRenderOrder_s, float) | |
ATTRIBUTE_METHOD1 (CBaseObject, GetRenderImportance_s, int *) | |
ATTRIBUTE_METHOD1 (CBaseObject, SetRenderImportance_s, int) | |
ATTRIBUTE_METHOD1 (CBaseObject, GetRenderDistance_s, float *) | |
ATTRIBUTE_METHOD1 (CBaseObject, SetRenderDistance_s, float) | |
ATTRIBUTE_METHOD1 (CBaseObject, GetAnimation_s, int *) | |
ATTRIBUTE_METHOD1 (CBaseObject, SetAnimation_s, int) | |
ATTRIBUTE_METHOD1 (CBaseObject, GetAnimFrame_s, int *) | |
ATTRIBUTE_METHOD1 (CBaseObject, SetAnimFrame_s, int) | |
ATTRIBUTE_METHOD1 (CBaseObject, IsAnimEnabled_s, bool *) | |
ATTRIBUTE_METHOD1 (CBaseObject, EnableAnim_s, bool) | |
ATTRIBUTE_METHOD1 (CBaseObject, IsUseGlobalTime_s, bool *) | |
ATTRIBUTE_METHOD1 (CBaseObject, SetUseGlobalTime_s, bool) | |
ATTRIBUTE_METHOD1 (CBaseObject, GetChildCount_s, int *) | |
ATTRIBUTE_METHOD1 (CBaseObject, GetNormal_s, Vector3 *) | |
ATTRIBUTE_METHOD1 (CBaseObject, SetNormal_s, Vector3) | |
ATTRIBUTE_METHOD1 (CBaseObject, IsTransparent_s, bool *) | |
ATTRIBUTE_METHOD1 (CBaseObject, SetTransparent_s, bool) | |
ATTRIBUTE_METHOD1 (CBaseObject, IsVisible_s, bool *) | |
ATTRIBUTE_METHOD1 (CBaseObject, SetVisibility_s, bool) | |
ATTRIBUTE_METHOD1 (CBaseObject, IsShadowCaster_s, bool *) | |
ATTRIBUTE_METHOD1 (CBaseObject, SetShadowCaster_s, bool) | |
ATTRIBUTE_METHOD1 (CBaseObject, IsShadowReceiver_s, bool *) | |
ATTRIBUTE_METHOD1 (CBaseObject, SetShadowReceiver_s, bool) | |
ATTRIBUTE_METHOD1 (CBaseObject, IsBillboarded_s, bool *) | |
ATTRIBUTE_METHOD1 (CBaseObject, SetBillboarded_s, bool) | |
ATTRIBUTE_METHOD1 (CBaseObject, IsSkipRender_s, bool *) | |
ATTRIBUTE_METHOD1 (CBaseObject, SetSkipRender_s, bool) | |
ATTRIBUTE_METHOD1 (CBaseObject, IsSkipPicking_s, bool *) | |
ATTRIBUTE_METHOD1 (CBaseObject, SetSkipPicking_s, bool) | |
ATTRIBUTE_METHOD1 (CBaseObject, IsSkipTerrainNormal_s, bool *) | |
ATTRIBUTE_METHOD1 (CBaseObject, SetSkipTerrainNormal_s, bool) | |
ATTRIBUTE_METHOD1 (CBaseObject, GetSelectionEffect_s, int *) | |
ATTRIBUTE_METHOD1 (CBaseObject, SetSelectionEffect_s, int) | |
ATTRIBUTE_METHOD1 (CBaseObject, IsHeadOnZEnabled_s, bool *) | |
ATTRIBUTE_METHOD1 (CBaseObject, SetHeadOnZEnabled_s, bool) | |
ATTRIBUTE_METHOD1 (CBaseObject, IsHeadOn3DScalingEnabled_s, bool *) | |
ATTRIBUTE_METHOD1 (CBaseObject, SetHeadOn3DScalingEnabled_s, bool) | |
ATTRIBUTE_METHOD1 (CBaseObject, IsHeadOnUseGlobal3DScaling_s, bool *) | |
ATTRIBUTE_METHOD1 (CBaseObject, SetHeadOnUseGlobal3DScaling_s, bool) | |
ATTRIBUTE_METHOD1 (CBaseObject, GetHeadOnNearZoomDist_s, float *) | |
ATTRIBUTE_METHOD1 (CBaseObject, SetHeadOnNearZoomDist_s, float) | |
ATTRIBUTE_METHOD1 (CBaseObject, GetHeadOnFarZoomDist_s, float *) | |
ATTRIBUTE_METHOD1 (CBaseObject, SetHeadOnFarZoomDist_s, float) | |
ATTRIBUTE_METHOD1 (CBaseObject, GetHeadOnMinUIScaling_s, float *) | |
ATTRIBUTE_METHOD1 (CBaseObject, SetHeadOnMinUIScaling_s, float) | |
ATTRIBUTE_METHOD1 (CBaseObject, GetHeadOnMaxUIScaling_s, float *) | |
ATTRIBUTE_METHOD1 (CBaseObject, SetHeadOnMaxUIScaling_s, float) | |
ATTRIBUTE_METHOD1 (CBaseObject, GetHeadOnAlphaFadePercentage_s, float *) | |
ATTRIBUTE_METHOD1 (CBaseObject, SetHeadOnAlphaFadePercentage_s, float) | |
ATTRIBUTE_METHOD1 (CBaseObject, GetHeadOn3DFacing_s, float *) | |
ATTRIBUTE_METHOD1 (CBaseObject, SetHeadOn3DFacing_s, float) | |
ATTRIBUTE_METHOD1 (CBaseObject, IsPersistent_s, bool *) | |
ATTRIBUTE_METHOD1 (CBaseObject, SetPersistent_s, bool) | |
ATTRIBUTE_METHOD1 (CBaseObject, IsDead_s, bool *) | |
ATTRIBUTE_METHOD1 (CBaseObject, SetDead_s, bool) | |
ATTRIBUTE_METHOD1 (CBaseObject, IsTileObject_s, bool *) | |
ATTRIBUTE_METHOD1 (CBaseObject, SetTileObject_s, bool) | |
ATTRIBUTE_METHOD1 (CBaseObject, GetFrameNumber_s, int *) | |
ATTRIBUTE_METHOD1 (CBaseObject, SetFrameNumber_s, int) | |
ATTRIBUTE_METHOD1 (CBaseObject, GetOpacity_s, float *) | |
ATTRIBUTE_METHOD1 (CBaseObject, SetOpacity_s, float) | |
ATTRIBUTE_METHOD1 (CBaseObject, IsLastFrameRendered_s, bool *) | |
ATTRIBUTE_METHOD (CBaseObject, DestroyChildren_s) | |
ATTRIBUTE_METHOD1 (CBaseObject, GetRenderMatrix_s, Matrix4 *) | |
ATTRIBUTE_METHOD1 (CBaseObject, SetLocalTransform_s, const Matrix4 &) | |
ATTRIBUTE_METHOD1 (CBaseObject, GetLocalTransform_s, Matrix4 *) | |
ATTRIBUTE_METHOD1 (CBaseObject, IsPhysicsEnabled_s, bool *) | |
ATTRIBUTE_METHOD1 (CBaseObject, EnablePhysics_s, bool) | |
ATTRIBUTE_METHOD1 (CBaseObject, IsLODEnabled_s, bool *) | |
ATTRIBUTE_METHOD1 (CBaseObject, EnableLOD_s, bool) | |
virtual IAttributeFields * | GetChildAttributeObject (const std::string &sName) |
get attribute by child object. More... | |
virtual int | GetChildAttributeObjectCount (int nColumnIndex=0) |
get the number of child objects (row count) in the given column. More... | |
virtual int | GetChildAttributeColumnCount () |
we support multi-dimensional child object. More... | |
virtual IAttributeFields * | GetChildAttributeObject (int nRowIndex, int nColumnIndex=0) |
virtual bool | IsGlobal () |
whether this object is global. More... | |
bool | IsBiped () |
virtual IGameObject * | QueryIGameObject () |
this may return NULL, if the object does not implement the IGameObject interface. More... | |
virtual IAttributeFields * | GetAttributeObject () |
bool | CheckVolumnField (DWORD volType) |
Use CheckAttribute() | |
virtual TextureEntity * | GetTexture () |
bool | CheckAttribute (DWORD attribute) |
whether an object attribute is enabled. More... | |
void | SetAttribute (DWORD dwAtt, bool bTurnOn=true) |
enable or disable a given attribute. More... | |
void | SetBillboarded (bool bBillboarded) |
bool | IsBillboarded () |
if the model asset file name ended with "_b" it will be treated as billboarded. More... | |
void | SetShadowReceiver (bool bEnable) |
bool | IsShadowReceiver () |
if the model asset file name ended with "_r" it will be treated as shadow receiver. More... | |
void | SetShadowCaster (bool bEnable) |
set whether it is shadow caster. More... | |
bool | IsShadowCaster () |
void | SetVegetation (bool bIsVegetation) |
whether to render this mesh using the vegetation shader | |
bool | IsVegetation () |
whether to render this mesh using the vegetation shader | |
void | ShowBoundingBox (bool bShowBoundingBox) |
set whether to show bounding box for this object. | |
bool | IsShowBoundingBox () |
get whether to show bounding box for this object. | |
CZoneNode * | GetHomeZone () |
get the home zone of this object if any. More... | |
void | SetHomeZone (CZoneNode *pZone) |
set the home zone of this object if any. More... | |
bool | IsVisible () |
invisible object will not be drawn. More... | |
void | SetVisibility (bool bVisible) |
set the visibility of this object. More... | |
bool | IsRenderable () |
whether this object can be rendered. More... | |
void | SetSkipRender (bool bSkipRender) |
set whether object should be excluded from the skip render | |
bool | IsSkipRender () |
get whether object should be excluded from the render queue. More... | |
void | SetSkipPicking (bool bSkipPicking) |
set whether object should be excluded from picking | |
bool | IsSkipPicking () |
get whether object should be excluded from picking. More... | |
void | SetSkipTerrainNormal (bool bSkip) |
if specified, this character will always be perpendicular to the ground, regardless to the terrain normal. More... | |
bool | IsSkipTerrainNormal () |
if specified, this character will always be perpendicular to the ground, regardless to the terrain normal. More... | |
bool | CanPick () |
get whether object can be picked by mouse picking. More... | |
void | SetRenderImportance (int nRenderImportance) |
the larger, the more important. More... | |
int | GetRenderImportance () |
float | GetRenderOrder () const |
0 if automatic, larger number renders after smaller numbered object. More... | |
void | SetRenderOrder (float val) |
CChildObjectList_Type & | GetChildren () |
– Base object functions | |
CBaseObject * | GetChildByName (const string &name, bool bRecursive=false) |
get child by name: it may return NULL if the child does not exist. More... | |
virtual void | DestroyChildren () |
Completely destroy child nodes from memory recursively. More... | |
int | DestroyChildByName (const string &name, bool bRecursive=false) |
destroy a child by name. More... | |
int | RemoveChildByName (const string &name, bool bRecursive=false) |
remove a child by name but it does not destroy it. More... | |
int | RemoveChild (const CBaseObject *pObj, bool bRecursive=false) |
remove a child by pointer but it does not destroy it. More... | |
bool | ActivateScript (int func_type, const string &precode, const string &postcode) |
Fire script callback global variable sensor_name and sensor_id will be filled with GetName and GetID, so that caller knows who is firing the callback script. More... | |
bool | ActivateScript (int func_type, const string &precode) |
bool | ActivateScript (int func_type) |
virtual int | GetSelectionEffect () |
get the render effect when character is in selected state. More... | |
virtual void | SetSelectionEffect (int nStyle) |
get the render effect when character is in selected state. More... | |
virtual void | SetOpacity (float fOpacity) |
virtual float | GetOpacity () |
virtual HRESULT | InitDeviceObjects () |
virtual HRESULT | RestoreDeviceObjects () |
virtual HRESULT | InvalidateDeviceObjects () |
virtual HRESULT | DeleteDeviceObjects () |
virtual HRESULT | RendererRecreated () |
virtual float | GetRenderDistance () |
we will not render this object if the object's position to camera eye position is further than this value. More... | |
virtual void | SetRenderDistance (float fDist) |
virtual void | AddChild (CBaseObject *pObject) |
add another object as the child of this object | |
virtual void | SetParent (CBaseObject *pParent) |
this function is called by parent class to set the child's parent. More... | |
virtual CBaseObject * | GetParent () |
virtual bool | IsDead () |
whether this object should be removed some time in the future. More... | |
virtual void | SetDead () |
virtual void | AddToDeadObjectPool () |
When a child object wants to remove itself, it is usually not safe to do so immediately, instead the object add itself to dead object pool for the root scene to safely remove it at the end of the frame. More... | |
virtual int | PrepareRender (CBaseCamera *pCamera, SceneState *sceneState) |
derived class can override this function to place the object in to the render pipeline. More... | |
virtual Vector3 * | GetAttachmentPosition (Vector3 &pOut, int nAttachmentID=0, int nRenderNumber=0) |
whether it has an attachment point More... | |
virtual CBipedStateManager * | GetBipedStateManager (bool bCreateOnDemand=true) |
get biped state manager More... | |
virtual void | SetPhysicsGroupMask (DWORD dwValue) |
set groups Mask used to filter physics objects, default to 0xffffffff | |
virtual DWORD | GetPhysicsGroupMask () |
get groups Mask used to filter physics objects, default to 0xffffffff | |
virtual void | EnableAnim (bool bAnimated) |
whether animation is enabled. More... | |
virtual bool | IsAnimEnabled () |
virtual float | GetPhysicsRadius () |
get the radius for physics simulation. More... | |
virtual Vector3 | GetNormal () |
virtual void | SetNormal (const Vector3 &pNorm) |
virtual void | PushParam () |
Usually, this is used in canvas drawing. More... | |
virtual void | PopParam () |
Usually, this is used in canvas drawing. More... | |
virtual const std::string & | GetAssetFileName () |
get asset file name | |
virtual void | SetAssetFileName (const std::string &sFilename) |
set asset file name | |
virtual bool | IsStanding () |
virtual void | Report (vector< string > &v_sReport) |
virtual HRESULT | ResetTime () |
virtual void | UpdateFrameNumber (int nFrameNumber) |
this function is called to update the render frame number of this object. More... | |
void | SetFrameNumber (int nFrameNumber) |
int | GetFrameNumber () |
get the frame number that this object is last accessed. More... | |
bool | CheckFrameNumber (int nFrameNumber) |
call this function whenever a render may render this object. More... | |
bool | IsLastFrameRendered () |
check to see if the last frame is rendered. More... | |
void | SetMyType (ObjectType t) |
set the type of the object, it tells what this object is used for. More... | |
ObjectType | GetMyType () |
void | SnapToTerrainSurface (bool bUseNorm=true) |
call this function to reset the y component and norm of the object to the global terrain surface at (x,0,z), where (x,y,z) is the object's current position. More... | |
virtual ObjectShape | GetObjectShape () |
get the object shape | |
virtual void | SetObjectShape (ObjectShape shape) |
set the object shape | |
CTerrainTile * | GetTileContainer () |
get the quad-tree terrain tile that this game object is currently visiting. More... | |
virtual void | SetTileContainer (CTerrainTile *val) |
virtual void | UpdateTileContainer () |
update the tile container according to the current position of the game object. More... | |
void | SetHomeZoneName (const char *sName) |
set the home zone name. More... | |
const char * | GetHomeZoneName () |
void | SetSelectGroupIndex (int nGroupIndex=-1) |
set the selection group index. More... | |
int | GetSelectGroupIndex () |
get the selection group index. More... | |
virtual void | SetTileObject (bool bIsTileObject) |
bool | IsGeometryDirty () const |
whether the shape of the object is dirty, such as model, size, facing, local transform is changed. More... | |
void | SetGeometryDirty (bool bDirty=true) |
bool | IsLODEnabled () const |
whether to enable lod if there is lod. More... | |
void | EnableLOD (bool val) |
virtual void | UpdateGeometry () |
this function is usually called after asset file has changed. More... | |
virtual int | GetMeshTriangleList (std::vector< Vector3 > &output, int nOption=0) |
return triangle list | |
![]() | |
virtual void | GetVertices (Vector3 *pVertices, int *nNumber) |
get all the vertices which can represent the object's shape. More... | |
virtual void | GetRenderVertices (Vector3 *pVertices, int *nNumber) |
same as GetVertices(). More... | |
virtual Vector3 | GetRenderOffset () |
get the offset(translation) of the object used for rendering. More... | |
virtual void | GetFacing3D (Vector3 *pV) |
get object facing: only for object that has a facing property like biped, not bound facing | |
float | GetFacing () |
same as GetYaw and SetYaw get object facing: only for object that has a facing property like biped, not bound facing The object is facing the positive x axis, if facing is 0. | |
void | SetFacing (float fFacing) |
virtual float | GetPitch () |
get object pitch: is facing the positive x axis, if yaw is 0. | |
virtual void | SetPitch (float fFacing) |
virtual float | GetRoll () |
get object roll: is facing the positive x axis, if yaw is 0. | |
virtual void | SetRoll (float fFacing) |
virtual void | SetTransform (Matrix4 *pLocalTransform, const DVector3 &pGlobalPos, float *pRotation) |
Set a local transform matrix, a global position and a facing value, according to which the object will be transformed on demand, so that the transformed object can be used for efficient object-level view culling in ParaEngine. More... | |
virtual void | SetTransform (Matrix4 *pWorldTransform) |
virtual Matrix4 * | GetWorldTransform (Matrix4 &pOut, int nRenderNumber=0) |
get world transform | |
virtual bool | TestCollisionSphere (const Vector3 *pvCenter, float radius, BYTE nMethod=1) |
– collision detection More... | |
virtual bool | TestCollisionSphere (CBaseCamera *pCamera, float fFarPlaneDistance) |
assume that the object is a sphere, it will return false if the sphere is completely out of the 6 frustum planes of the camera More... | |
virtual bool | TestShadowSweptSphere (CBaseCamera *pCamera, const Vector3 *pvDirection) |
assume that the object is a sphere, it will return false if the swept sphere along the given direction is completely out of the 6 frustum planes of the camera this function is usually used to test whether we need to render this object as shadow caster, where pvDirection is the current sun direction. | |
virtual bool | TestCollision (CBaseCamera *pCamera) |
check if the object's original shape can be seen via a camera. More... | |
virtual bool | TestCollisionObject (IViewClippingObject *pObj) |
desc: test if the object collide with this object in the world view. More... | |
virtual bool | TestCollisionRay (const Vector3 &vPickRayOrig, const Vector3 &vPickRayDir, float *fDistance) |
Desc: Check the ray intersection with the object input:vPickRayOrig,vPickRayDir: mouse ray params output: fDistance: the distance between the eye and the intersection point. More... | |
virtual float | GetSphereCollisionDepth (Vector3 *pvCenter, float radius, bool bSolveDepth=false) |
desc: this is similar to TestCollisionSphere, but does more than that. More... | |
virtual float | GetObjectCollisionDepth (IViewClippingObject *pObj) |
desc: test if the circle in the y=0 plane collide with this object in the world view Note: radius can be zero. More... | |
virtual float | GetObjectToPointDistance (const Vector3 *pPoint) |
get the distance from the object's surface to a given point. More... | |
virtual void | DrawBoundingBox (SceneState *sceneState, DWORD color) |
debugging only: draw bounding box | |
virtual void | DrawOcclusionObject (SceneState *sceneState) |
draw the occlusion object More... | |
virtual void | DebugDraw (IBatchedElementDraw *pDebugDraw) |
this function is called whenever debugging drawing is enabled. More... | |
![]() | |
virtual const std::string & | GetIdentifier () |
get the name or identifier. More... | |
virtual void | SetIdentifier (const std::string &sID) |
int | GetNameW (std::u16string &out) |
gets the unicode name | |
const std::string & | GetName () |
alias name for GetIdentifier | |
IRefObject * | GetRefObjectByName (const char *sName) |
RefListItem * | GetRefObjectByTag (int nTag) |
get the first reference object by its tag | |
bool | HasReferences () |
RefResult | AddReference (IRefObject *maker, int nTag=0) |
add a new reference. More... | |
RefResult | DeleteReference (IRefObject *ref) |
delete a reference. More... | |
RefResult | DeleteAllRefs () |
Deletes all references of this object. More... | |
int | DeleteAllRefsByTag (int nTag=0) |
Deletes all references whose tag is nTag of this object. More... | |
RefList & | GetRefList () |
get the ref list | |
int | GetRefObjNum () |
get the total number of references | |
RefListItem * | GetRefObject (int nIndex) |
get the referenced object at the given index. More... | |
virtual void | OnRefAdded (IRefObject *rm, int nTag=0) |
This is called after another object added this object to its reference list. More... | |
virtual void | OnRefDeleted (IRefObject *rm) |
This is called after another object deleted this object from its reference list. More... | |
![]() | |
ATTRIBUTE_METHOD1 (IAttributeFields, GetName_s, const char **) | |
ATTRIBUTE_METHOD1 (IAttributeFields, SetName_s, const char *) | |
ATTRIBUTE_METHOD (IAttributeFields, PrintObject_s) | |
ATTRIBUTE_METHOD (IAttributeFields, AddRef_s) | |
ATTRIBUTE_METHOD1 (IAttributeFields, GetRefCount_s, int *) | |
ATTRIBUTE_METHOD1 (IAttributeFields, SetTime_s, int) | |
ATTRIBUTE_METHOD1 (IAttributeFields, GetTime_s, int *) | |
ATTRIBUTE_METHOD (IAttributeFields, Release_s) | |
virtual bool | IsModified () |
whether some of the fields are modified.It is up to the implementation class to provide this functionality if necessary. More... | |
virtual void | SetModified (bool bModified) |
set whether any field has been modified. More... | |
virtual bool | ValidateFields () |
validate all fields and return true if validation passed. More... | |
virtual string | GetValidationMessage () |
get the recent validation message due to the most recent call to ValidateFields() | |
virtual bool | ResetField (int nFieldID) |
Reset the field to its initial or default value. More... | |
virtual bool | InvokeEditor (int nFieldID, const std::string &sParameters) |
Invoke an (external) editor for a given field. More... | |
virtual int | GetTime () |
get the current local time in case it is animated in milli seconds frames. More... | |
virtual void | SetTime (int nTime) |
virtual CDynamicAttributeField * | GetDynamicField (const std::string &sName) |
Get a dynamic field with a given name. More... | |
virtual CDynamicAttributeField * | GetDynamicField (int nIndex) |
Get a dynamic field with a given index. More... | |
virtual const char * | GetDynamicFieldNameByIndex (int nIndex) |
get field name by index | |
virtual int | GetDynamicFieldCount () |
how many dynamic field this object currently have. More... | |
virtual int | SetDynamicField (const std::string &sName, const CVariable &value) |
set a dynamic field with a given name. More... | |
virtual int | AddDynamicField (const std::string &sName, ATTRIBUTE_FIELDTYPE dwType) |
add dynamic field and return field index | |
virtual void | RemoveAllDynamicFields () |
remove all dynamic fields | |
virtual int | SaveDynamicFieldsToString (std::string &output) |
save only text dynamic fields to fieldname = value text strings. More... | |
virtual int | LoadDynamicFieldsFromString (const std::string &input) |
load only text dynamic fields from string More... | |
CAttributeClass * | GetAttributeClass () |
get the main attribute class object. More... | |
void | PrintObject () |
print the content of this object to a text file at temp/doc/[ClassName].txt. More... | |
![]() | |
virtual void | Clone (IObject *obj) const |
Clone the object's contains to a pointer. More... | |
virtual IObject * | Clone () const |
Clone the object's contains and return a pointer to the newly created object. More... | |
virtual bool | Equals (const IObject *obj) const |
Compare the object with another object. More... | |
virtual const IType * | GetType () const |
virtual std::string | ToString () const |
WeakPtr_type & | GetWeakReference () |
get weak reference object. More... | |
virtual int | ProcessObjectEvent (const ObjectEvent &event) |
this function is only used to backward compatibility of ParaObject:AddEvent() function. More... | |
![]() | |
void | addref () const |
add reference count of the object. More... | |
bool | delref () const |
decrease reference count of the object. More... | |
int | GetRefCount () const |
get the reference count | |
virtual int | Release () |
CRefCounted * | AddToAutoReleasePool () |
addref and releases the ownership sometime soon automatically (usually at the end of the current frame). More... | |
![]() | |
void | SetHeadOnText (const char *sText, int nIndex=0) |
set the text to be displayed on head on display | |
const char * | GetHeadOnText (int nIndex=0) |
Get the text to be displayed on head on display. | |
void | SetHeadOnUITemplateName (const char *sUIName, int nIndex=0) |
set which UI control the head on display will be used as a template for drawing the text it can be a single CGUIText Object or it can be a container with a direct children called "text" if this is "" or empty, the default UI template will be used. More... | |
const char * | GetHeadOnUITemplateName (int nIndex=0) |
get which UI control the head on display will be used as a template for drawing the text it can be a single CGUIText Object or it can be a container with a direct children called "text" if this is "" or empty, the default UI template will be used. More... | |
const std::string & | GetHeadOnUITemplateNameS (int nIndex=0) |
virtual CGUIBase * | GetHeadOnUIObject (int nIndex=0) |
void | SetHeadOnTextColor (DWORD color, int nIndex=0) |
set the text to be displayed on head on display | |
DWORD | GetHeadOnTextColor (int nIndex=0) |
Get the text to be displayed on head on display. | |
void | SetHeadOnOffest (const Vector3 &vOffset, int nIndex=0) |
set the offset where head on display should be rendered relative to the origin or head of the host 3d object | |
void | GetHeadOnOffset (Vector3 *pOut, int nIndex=0) |
Get the offset where head on display should be rendered relative to the origin or head of the host 3d object. | |
void | ShowHeadOnDisplay (bool bShow, int nIndex=0) |
show or hide object's head on display | |
bool | IsHeadOnDisplayShown (int nIndex=0) |
whether the object head on display shall be visible | |
bool | IsHeadOnZEnabled (int nIndex=0) |
whether z buffer test is enabled for Head On display. More... | |
void | SetHeadOnZEnabled (bool bZnabled, int nIndex=0) |
set if z buffer test is enabled for Head On display. More... | |
virtual bool | HasHeadOnDisplay (int nIndex=0) |
whether the object contains head on display at given index | |
bool | IsHeadOn3DScalingEnabled (int nIndex=0) |
Enable 3d scaling. More... | |
void | SetHeadOn3DScalingEnabled (bool bZnabled, int nIndex=0) |
Enable 3d scaling. | |
bool | IsHeadOnUseGlobal3DScaling (int nIndex=0) |
this is only used when m_bEnable3DScaling. More... | |
void | SetHeadOnUseGlobal3DScaling (bool bZnabled, int nIndex=0) |
this is only used when m_bEnable3DScaling. More... | |
void | SetHeadOnNearZoomDist (float fValue, int nIndex=0) |
float | GetHeadOnNearZoomDist (int nIndex=0) |
void | SetHeadOnFarZoomDist (float fValue, int nIndex=0) |
float | GetHeadOnFarZoomDist (int nIndex=0) |
void | SetHeadOnMinUIScaling (float fValue, int nIndex=0) |
float | GetHeadOnMinUIScaling (int nIndex=0) |
void | SetHeadOnMaxUIScaling (float fValue, int nIndex=0) |
float | GetHeadOnMaxUIScaling (int nIndex=0) |
void | SetHeadOnAlphaFadePercentage (float fValue, int nIndex=0) |
float | GetHeadOnAlphaFadePercentage (int nIndex=0) |
void | SetHeadOn3DFacing (float fValue, int nIndex=0) |
turn on 3d facing when this function is called | |
float | GetHeadOn3DFacing (int nIndex=0) |
![]() | |
virtual bool | AddScriptCallback (int func_type, const string &script_func) |
add a new call back handler. More... | |
virtual ScriptCallback * | GetScriptCallback (int func_type) |
return NULL if there is no associated script. More... | |
virtual bool | RemoveScriptCallback (int func_type) |
remove a call back handler | |
Protected Attributes | |
DWORD | m_dwPhysicsMethod |
unsigned int | m_nPhysicsGroup |
union { | |
CMeshObject * m_pMeshObject | |
}; | |
pointer to a mesh object. | |
![]() | |
DVector3 | m_vPos |
position is always at the bottom center of the bounding shape. More... | |
CShapeAABB | m_aabb |
bounding box of containing object. More... | |
float | m_fYaw |
yaw or facing | |
float | m_fRadius |
radius of m_aabb | |
![]() | |
int | m_nID |
the ID of the object. More... | |
DWORD | m_dwAttribute |
volume type and attribute of this object. More... | |
CChildObjectList_Type | m_children |
child objects array: we keep strong references (ref counted) to child objects | |
ObjectType | m_objType |
type of the object | |
CTerrainTile * | m_tileContainer |
int32 | m_nTechniqueHandle |
the primary technique handle | |
int32 | m_nFrameNumber |
the frame number that this object is last accessed. More... | |
int32 | m_nSelectGroupIndex |
this is the selection group index. More... | |
int32 | m_nRenderImportance |
the larger, the more important. More... | |
float | m_fRenderOrder |
0 if automatic, larger number renders after smaller numbered object. More... | |
float | m_fRenderDistance |
we will not render this object if the object's position to camera eye position is further than this value. More... | |
CParameterBlock * | m_pEffectParamBlock |
effect param block that should be applied to m_nTechniqueHandle | |
bool | m_bGeometryDirty: 1 |
whether the shape of the object is dirty, such as model, size, facing, local transform is changed. More... | |
bool | m_bEnableLOD: 1 |
whether to enable lod if there is lod. More... | |
![]() | |
RefList | m_references |
This is the list of active references that refer to us. | |
std::string | m_sIdentifer |
unit name used in the scripting language | |
![]() | |
WeakPtr_type | m_weak_reference |
![]() | |
int | m_refcount |
![]() | |
ObjectCallbackPool_Type | m_callback_scripts |
the NPL script handlers | |
Additional Inherited Members | |
![]() | |
enum | _SceneObjectType { BaseObject = 0, ContainerObject = 0x1, MeshObject = 0x1<<1, SkyMesh = 0x1<<2, BipedObject = 0x1<<3, SpriteObject = 0x1<<4, SceneRoot = 0x1<<5, OPCBiped = 0x1<<6, RPGBiped = 0x1<<7, MDXObject = 0x1<<8, MeshPhysicsObject = 0x1<<9, DynamicObject = 0x1<<10, ViewCullingObject = 0x1<<11, MissileObject = 0x1<<12, GameObject = 0x1<<13, LightObject = 0x1<<14, MiniSceneGraph = 0x1<<15, VoxelMesh = 0x1<<16, ManagedLoader = 0x1<<17, ZoneNode = 0x1<<18, PortalNode = 0x1<<19, AntiPortalNode = 0x1<<20, CadObject = 0x1<<21 } |
enum | CallBackType { Type_EnterSentientArea =0, Type_LeaveSentientArea, Type_Click, Type_Event, Type_Perception, Type_FrameMove, Type_Net_Send, Type_Net_Receive, Type_OnLoadScript, Type_OnAssetLoaded, Type_Paint, Type_Unknown } |
call back type | |
enum | NPL_STRING { NPL_CREATE = 0, NPL_CREATE_IN_LOADER = 0x1<<1, NPL_UPDATE = 0x1<<2, NPL_DELETE = 0x1<<3, NPL_DONOT_OUTPUT_ASSET = 0x1<<4 } |
by which method an object is converted to NPL string. More... | |
enum | CompressOption { ReleaseDevices = 1, ReleasePhysics = 2, ReleaseEvents = 4 } |
typedef ParaEngine::weak_ptr< IObject, CBaseObject > | WeakPtr_type |
typedef unordered_ref_array< CBaseObject * > | CChildObjectList_Type |
typedef std::list< ObjectEvent > | ObjectEventList_Type |
![]() | |
typedef ParaEngine::weak_ptr< IObject, IAttributeFields > | WeakPtr_type |
![]() | |
typedef ParaEngine::weak_ptr< IObject > | WeakPtr_type |
![]() | |
typedef std::vector< ScriptCallback > | ObjectCallbackPool_Type |
![]() | |
static CBaseObject * | GetObjectByID (int nID) |
GetObject By ID. More... | |
![]() | |
static HRESULT | GetAttributeClassID_s (IAttributeFields *cls, int *p1) |
static HRESULT | GetAttributeClassName_s (IAttributeFields *cls, const char **p1) |
static bool | OpenWithDefaultEditor (const char *sFilename, bool bWaitOnReturn=false) |
Open a given file with the default registered editor in the game engine. More... | |
![]() | |
static bool | DrawHeadOnUI (CBaseObject *pObj, int &nCounter, SceneState *pSceneState=NULL, CGUIText **ppObjUITextDefault=NULL, bool bZEnablePass=true, bool b3DTextPass=false) |
draw the headon UI of a specified object. More... | |
static bool | BeginPaint (SceneState *pSceneState, bool b3DTextPass, bool bZEnablePass) |
HeadOn UI needs to be drawn between BeginPaint and EndPaint, which is usually automatically when the first and last head on UI is called. More... | |
static void | EndPaint (SceneState *pSceneState, bool b3DTextPass) |
![]() | |
virtual CAttributeClass * | CreateAttributeClass () |
initialize fields | |
virtual CDynamicAttributesSet * | GetDynamicAttributes (bool bCreateIfNotExist=false) |
![]() | |
static int | g_nObjectSelectionEffect = ParaEngine::RenderSelectionStyle_border |
enum of RenderSelectionStyle More... | |
A static mesh based physical object in the scene please note that it keeps the static mesh object as its member rather than inheriting from it.
in future, the mesh physics object may contain different kinds of mesh objects.
CMeshPhysicsObject::CMeshPhysicsObject | ( | void | ) |
set house type, so that it is a container, yet free space
|
virtual |
animate the model by a given delta time.
dTimeDelta | delta time in seconds |
nRenderNumber | if 0 it means that it is always animated, otherwise we should only animate if previous call of this function has a different render frame number than this one. |
Reimplemented from ParaEngine::CBaseObject.
|
virtual |
automatically select the proper technique for the rendering of the object.
This method is automatically called by the render pipeline before rendering any potentially visible object. Please note that: When rendering some special pass, the render pipeline might select a different technique and then select back.
Reimplemented from ParaEngine::CBaseObject.
|
virtual |
unload physics.
Reimplemented from ParaEngine::CBaseObject.
|
virtual |
this function will turn on or off the physics of the object.
Reimplemented from ParaEngine::CBaseObject.
|
virtual |
get the scaling.
Reimplemented from ParaEngine::CBaseObject.
|
virtual |
get the current animation frame number relative to the beginning of current animation.
Reimplemented from ParaEngine::CBaseObject.
|
virtual |
Get the specified attachment matrix of the current model.
this is usually for getting the mount point on a certain model, such as horses. It also works for static mesh with xrefed mountable objects.
pOut | output result |
nAttachmentID | see ATTACHMENT_ID. default to 0, which is general mount point. ATT_ID_MOUNT1-9(20-28) is another mount points |
Reimplemented from ParaEngine::CBaseObject.
|
inlinevirtual |
attribute class ID should be identical, unless one knows how overriding rules work.
Reimplemented from ParaEngine::CBaseObject.
|
virtual |
Get the object construction percentage (progress) in the range[0,1].
0 means that the object has not been constructed. 1 means that the object is fully constructed. This value can be used to inform user that how much an object has been loaded.
Reimplemented from ParaEngine::CBaseObject.
|
virtual |
get the default replaceable texture by its ID.
The default replaceable texture is the main texture exported from the 3dsmax exporter.
ReplaceableTextureID | usually [0-32) generally speaking, replaceable ID 0 is used for general purpose replaceable texture, ID 1 is for user defined. ID 2 is for custom skins. |
Reimplemented from ParaEngine::CBaseObject.
|
virtual |
get effect parameter block with this object.
bCreateIfNotExist |
Reimplemented from ParaEngine::CBaseObject.
|
virtual |
get the total number of replaceable textures, which is the largest replaceable texture ID.
but it does not mean that all ID contains valid replaceable textures. This function can be used to quickly decide whether the model contains replaceable textures. Generally we allow 32 replaceable textures per model.
Reimplemented from ParaEngine::CBaseObject.
|
virtual |
Get the physics group ID to which this object belongs to default to 0, must be smaller than 32.
please see groups Mask used to filter shape objects.
Reimplemented from ParaEngine::CBaseObject.
|
virtual |
Set scaling.
By default an object will be first scaled, then rotated and finally translated. Not many objects support scaling. Only the mesh and mesh physics object supports full-dimensional object positioning. I.e. rotation, norm, position, scaling. used as KEY for batch rendering
Reimplemented from ParaEngine::CBaseObject.
|
virtual |
when batch-rendering a group of objects, objects are usually sorted by their render techniques and then by their primary asset.
One can access the effect file currently associated with the handle in the asset manager. Please note that, the game engine may change the mapping from technique handle to the effect file, secretly at runtime. Effect files capable to be assigned to the same technique handle must also share the same (vertex) input declaration in order to be swapped secretly at runtime. Note: the Draw() function of object will dynamically retrieve the effect file for each call. If the effect file is not valid, it will try to render using directx 9's fixed programming pipeline.
Reimplemented from ParaEngine::CBaseObject.
return the world matrix of the object for rendering
out | the output. |
nRenderNumber | if it is bigger than current calculated render number, the value will be recalculated. If 0, it will not recalculate |
set facing and rotate local matrix round y axis
Reimplemented from ParaEngine::IViewClippingObject.
|
virtual |
get the current replaceable texture by its ID.
if no replaceable textures is set before, this will return the same result as GetNumReplaceableTextures().
ReplaceableTextureID | usually [0-32) generally speaking, replaceable ID 0 is used for general purpose replaceable texture, ID 1 is for user defined. ID 2 is for custom skins. |
Reimplemented from ParaEngine::CBaseObject.
int ParaEngine::CMeshPhysicsObject::GetStaticActorCount | ( | ) |
get the number of physics actors.
If physics is not loaded, the returned value is 0.
|
virtual |
return true if the object contains alpha blended render pass.
This function determines which render pipeline stage the object is rendered. generally speaking, if deferred shading is used, we will render alpha blended objects last.
Reimplemented from ParaEngine::CBaseObject.
|
virtual |
whether it has an attachment point
nAttachmentID | see ATTACHMENT_ID. default to 0, which is general mount point. ATT_ID_MOUNT1-9(20-28) is another mount points |
Reimplemented from ParaEngine::CBaseObject.
HRESULT CMeshPhysicsObject::InitObject | ( | MeshEntity * | ppMesh, |
float | fOBB_X, | ||
float | fOBB_Y, | ||
float | fOBB_Z, | ||
bool | bApplyPhysics, | ||
const Matrix4 & | localTransform | ||
) |
mesh asset file name ending with _a or _b (such as "tree_b.x" )will be forced no physics initially.
It will override the bApplyPhysics input parameter.
ppMesh | mesh asset entity |
fOBB_X | |
fOBB_Y | |
fOBB_Z | |
bApplyPhysics | whether to apply physics initially. |
localTransform |
create the mesh object
|
virtual |
this class should be implemented if one wants to add new attribute.
This function is always called internally.
Reimplemented from ParaEngine::CBaseObject.
bool ParaEngine::CMeshPhysicsObject::IsFaceCullingDisabled | ( | ) |
whether we will turn off any material level face culling setting.
but use the current face culling setting in the effect manager.
|
virtual |
whether the object is persistent in the world.
If an object is persistent, it will be saved to the world's database. if it is not persistent it will not be saved when the world closes. Player, OPC, some temporary movie actors may by non-persistent; whereas NPC are usually persistent to the world that it belongs.
Reimplemented from ParaEngine::CBaseObject.
|
virtual |
whether the object contains transparent material.
Ideally, we should perform polygon-level sorting for transparent faces; however, at the moment, we just draw them last, after all solid objects are drawn.
Reimplemented from ParaEngine::CBaseObject.
|
virtual |
whether to use global time to sync animation.
Default to false. if true, all characters plays exactly the same frames if they are using the same animation file at all times, if false, each character advances its time frame separately according to their visibility in the scene.
Reimplemented from ParaEngine::CBaseObject.
|
virtual |
load the physics objects.
Once the physics object is created, its position and orientation can no longer be changed Currently this function will be automatically called when it is inserted to the scene root. with the ParaScene.Attach HAPI. So be sure, the position and facing has been set properly before this. Multiple calls to this function will not take effects. If the changing of the position is really needed, one must explicitly call UnloadPhysics(), update the position and then call LoadPhysics()
Even though operations such as changing the position, adding more shapes, or even deleting the static actor are not explicitly forbidden, they are not recommended for two reasons: First, the ParaEngine assumes that static actors are indeed static,and does all sorts of optimizations that rely on this property.Second, the collision detection and object clipping code is also written assuming that the position will not be changed during the game play.
only load physics when the construction percentage is 100% or it is a shadow receiver.
Reimplemented from ParaEngine::CBaseObject.
|
virtual |
called whenever an object is un-selected.
Reimplemented from ParaEngine::CBaseObject.
|
virtual |
called when an object is selected.
nGroupID | the group ID in to which the object is selected. |
Reimplemented from ParaEngine::CBaseObject.
|
virtual |
reset the object to its default settings.
Reimplemented from ParaEngine::CBaseObject.
|
virtual |
Rotate the object.This only takes effects on objects having 3D orientation, such as static mesh and physics mesh.
The orientation is computed in the following way: first rotate around x axis, then around y, finally z axis.
x | rotation around the x axis. |
y | rotation around the y axis. |
z | rotation around the z axis. |
Reimplemented from ParaEngine::IViewClippingObject.
|
virtual |
by default physics is lazy-load when player walk into its bounding box, setting this to false will always load the physics.
Please note, one must EnablePhysics(true) before this one takes effect.
Reimplemented from ParaEngine::CBaseObject.
|
virtual |
Set the current animation id.
nAnimID | 0 is default standing animation. 4 is walking, 5 is running. more information, please see AnimationID |
Reimplemented from ParaEngine::CBaseObject.
|
virtual |
set the current animation frame number relative to the beginning of current animation.
nFrame | 0 means beginning. if nFrame is longer than the current animation length, it will wrap (modulate the length). |
Reimplemented from ParaEngine::CBaseObject.
|
virtual |
Set the object shape to box and bounding box parameters if fFacing is 0, it is a axis aligned bounding box (AABB).
The bounding sphere is set to radius of bounding box's the smallest spherical container
fOBB_X | object bounding box.x |
fOBB_Y | object bounding box.y |
fOBB_Z | object bounding box.z |
fFacing | rotation of the bounding box around the y axis. |
Reimplemented from ParaEngine::CTileObject.
|
virtual |
Set the object shape to rect (a plane) and rect parameters if fFacing is 0, it is a axis aligned bounding box (AABB).
fWidth | plane width or x |
fHeight | plane height or y. |
fFacing | rotation of the plane around the y axis. |
Reimplemented from ParaEngine::CTileObject.
|
virtual |
Set the object construction percentage (progress) in the range[0,1].
0 means that the object has not been constructed. 1 means that the object is fully constructed. This value can be used to inform user that how much an object has been loaded.
Reimplemented from ParaEngine::CBaseObject.
void ParaEngine::CMeshPhysicsObject::SetFaceCullingDisabled | ( | bool | bDisableFaceCulling | ) |
whether we will turn off any material level face culling setting.
but use the current face culling setting in the effect manager.
|
virtual |
update the local transform of the mesh object.
This function will not automatically update the physical scene. Once need to manually reload the physics object.
localTransform | the new transform |
Reimplemented from ParaEngine::CBaseObject.
|
virtual |
set the callback scipt whenever the primary asset is successfully loaded.
Reimplemented from ParaEngine::CBaseObject.
|
virtual |
whenever a persistent object is made non-persistent, the SaveToDB() function will actually removed it from the database and the action can not be recovered.
so special caution must be given when using this function to prevent accidentally losing information.
Reimplemented from ParaEngine::CBaseObject.
|
virtual |
set the physics group ID to which this object belongs to default to 0, must be smaller than 32.
please see groups Mask used to filter shape objects.
Reimplemented from ParaEngine::CBaseObject.
|
virtual |
Set a new render technique handle.
If the effect file associated with the handle is invalid or do not share the same input declaration as the object at the time of drawing, the object will not be drawn or will be drawn improperly. This function rarely needs to be called by users. Technique handles are usually automatically assigned by the game engine when the asset file is loaded. Of course, users can use special effect files for the rendering of special objects; then this function needs to be called.
nHandle |
Reimplemented from ParaEngine::CBaseObject.
|
virtual |
Set the object shape to Sphere and sphere parameters.
fRadius | radius |
Reimplemented from ParaEngine::CTileObject.
|
virtual |
set the replaceable texture at the given index with a new texture.
this function will succeed regardless whether the mesh is initialized. Hence it can be used at loading time. because default instance of the mesh may use different replaceable texture set.
ReplaceableTextureID | usually [0-32) generally speaking, replaceable ID 0 is used for general purpose replaceable texture, ID 1 is for user defined. ID 2 is for custom skins. |
pTextureEntity | The reference account of the texture entity will be automatically increased by one. |
Reimplemented from ParaEngine::CBaseObject.
|
virtual |
set rotation using a quaternion.
Reimplemented from ParaEngine::IViewClippingObject.
|
virtual |
set the scale of the object.
This function takes effects on both character object and mesh object.
s | scaling applied to all axis.1.0 means original size. |
Reimplemented from ParaEngine::IViewClippingObject.
|
virtual |
Set whether the object is transparent.
bIsTransparent |
Reimplemented from ParaEngine::CBaseObject.
|
virtual |
whether to use global time to sync animation.
Default to false. if true, all characters plays exactly the same frames if they are using the same animation file at all times, if false, each character advances its time frame separately according to their visibility in the scene.
Reimplemented from ParaEngine::CBaseObject.
|
virtual |
convert the object to an NPL string by which this object may be created or deleted.
nMethod | bit combination of CBaseObject::NPL_STRING |
– sample script generated: asset = ParaAsset.LoadStaticMesh("", "sample/trees/tree1.x"); player = ParaScene.CreateMeshPhysicsObject("", asset, 1,1,1, true, "0.193295,0,0,0,0.187032,-0.0488078,0,0.0488078,0.187032,0,0,0"); player:SetPosition(148,120.156,95);player:SetFacing(0);sceneLoader:AddChild(player);
currently I only save name if it begins with "g_".
just a comment line with its name.
Reimplemented from ParaEngine::CBaseObject.
|
virtual |
this function is called, when the object is in view range.
we may need to load the primary asset to update the bounding box, etc.
Reimplemented from ParaEngine::CBaseObject.