My Project
|
MeshEntity distinguish one template from other. More...
#include <MeshEntity.h>
Public Member Functions | |
virtual AssetEntity::AssetType | GetType () |
void | Refresh (const char *sFilename=NULL, bool bLazyLoad=false) |
refresh this texture surface with a local file. More... | |
virtual bool | IsLoaded () |
most assets are loaded asynchronously. More... | |
const string & | GetFileName () |
get the mesh file name of the lowest level mesh. More... | |
void | SetPrimaryTechniqueHandle (int nHandle) |
int | GetPrimaryTechniqueHandle () |
virtual CParameterBlock * | GetParamBlock (bool bCreateIfNotExist=false) |
get effect parameter block with this object. More... | |
void | CreateMeshLODLevel (float fromDepth, const string &sFilename) |
Adds a new level-of-detail entry to this Mesh. More... | |
void | UpdateManualLodLevel (int index, const string &sFilename) |
Changes the alternate mesh to use as a manual LOD at the given index. More... | |
int | GetLodIndex (float depth) const |
Retrieves the level of detail index for the given depth value. | |
int | GetLodIndexSquaredDepth (float squaredDepth) const |
Retrieves the level of detail index for the given squared depth value. More... | |
void | RemoveLodLevels (void) |
Removes all LOD data from this Mesh. More... | |
HRESULT | CreateMeshFromFile_Serial (RenderDevicePtr pDev=NULL, const char *sFileName=NULL) |
this function is mostly used internally. More... | |
HRESULT | CreateMeshFromFile_Async (void *pContext, RenderDevicePtr pDev=NULL, const char *sFileName=NULL) |
this function is mostly used internally. More... | |
MeshEntity (const AssetKey &key) | |
virtual HRESULT | InitDeviceObjects () |
virtual HRESULT | RestoreDeviceObjects () |
virtual HRESULT | InvalidateDeviceObjects () |
virtual HRESULT | DeleteDeviceObjects () |
virtual void | Cleanup () |
Clean up additional resources. More... | |
virtual IAttributeFields * | GetAttributeObject () |
get the attribute object of this asset. More... | |
CParaXStaticBase * | GetMesh (int nLODIndex=0) |
get the highest level mesh if LOD is enabled. More... | |
ref_ptr< CParaXStaticBase > | CreateMesh (const char *sFilename) |
void | Init (const char *sFilename=NULL) |
init the asset entity object. More... | |
void | SetAABB (const Vector3 *vMin, const Vector3 *vMax) |
set AABB | |
const Vector3 & | GetAABBMin () |
const Vector3 & | GetAABBMax () |
virtual bool | GetBoundingBox (Vector3 *pMin, Vector3 *pMax) |
Get AABB bounding box of the asset object. More... | |
![]() | |
AssetEntity (const AssetKey &key) | |
ATTRIBUTE_DEFINE_CLASS (AssetEntity) | |
virtual int | InstallFields (CAttributeClass *pClass, bool bOverride) |
this class should be implemented if one wants to add new attribute. More... | |
ATTRIBUTE_METHOD1 (AssetEntity, GetLocalFileName_s, const char **) | |
ATTRIBUTE_METHOD1 (AssetEntity, SetLocalFileName_s, const char *) | |
ATTRIBUTE_METHOD1 (AssetEntity, GetRemoteAssetURL_s, const char **) | |
ATTRIBUTE_METHOD1 (AssetEntity, IsValid_s, bool *) | |
ATTRIBUTE_METHOD1 (AssetEntity, IsLoaded_s, bool *) | |
ATTRIBUTE_METHOD1 (AssetEntity, IsLocked_s, bool *) | |
ATTRIBUTE_METHOD1 (AssetEntity, IsInitialized_s, bool *) | |
ATTRIBUTE_METHOD1 (AssetEntity, GetState_s, int *) | |
ATTRIBUTE_METHOD1 (AssetEntity, SetState_s, int) | |
virtual const std::string & | GetIdentifier () |
virtual bool | AutoSync (bool bForceSync=false, bool bLazyLoading=true) |
call this function to automatically sync with the remote server according to current asset state More... | |
virtual const string & | GetLocalFileName () |
the actual local file name. More... | |
virtual void | SetLocalFileName (const char *sFileName) |
virtual string | GetRemoteAssetURL () |
get the remote server url of this asset. More... | |
bool | IsValid () |
whether this is a valid resource object. More... | |
bool | IsInitialized () |
whether initialized. More... | |
virtual int | Release () |
call this function to safely release this asset. More... | |
AssetKey & | GetKey () |
return the key object. More... | |
AssetState | GetState () |
return the asset state. More... | |
void | SetState (AssetState state) |
set the asset state. More... | |
virtual HRESULT | RendererRecreated () |
callback of listening the event that renderer was recreated on Android/WP8 all opengl related id has already become invalid at this time, no need to release them, just recreate them all in this function. | |
void | LoadAsset () |
load asset. More... | |
void | UnloadAsset () |
unload asset. More... | |
void | GarbageCollectMe () |
if its reference count is zero, unload this asset object. More... | |
bool | IsLocked () |
whether this is a locked resource resource. More... | |
virtual bool | Lock (int nMethod=0) |
Lock the object. More... | |
virtual void | UnLock () |
UnLock the object. | |
![]() | |
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 | GetChildAttributeColumnCount () |
we support multi-dimensional child object. More... | |
virtual int | GetChildAttributeObjectCount (int nColumnIndex=0) |
get the number of child objects (row count) in the given column. More... | |
virtual IAttributeFields * | GetChildAttributeObject (int nRowIndex, int nColumnIndex=0) |
virtual IAttributeFields * | GetChildAttributeObject (const std::string &sName) |
get attribute by child object. 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 void | SetIdentifier (const std::string &sID) |
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 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... | |
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 | |
CRefCounted * | AddToAutoReleasePool () |
addref and releases the ownership sometime soon automatically (usually at the end of the current frame). More... | |
Public Attributes | |
Vector3 | m_vMin |
Vector3 | m_vMax |
![]() | |
AssetKey | m_key |
this is the unique key object. More... | |
bool | m_bIsInitialized |
whether this entity is initialized;Entity is by default lazily initialized | |
bool | m_bIsValid |
whether this is a valid resource object. More... | |
Friends | |
class | CMeshProcessor |
Additional Inherited Members | |
![]() | |
enum | AssetState { ASSET_STATE_NORMAL, ASSET_STATE_LOCAL, ASSET_STATE_REMOTE, ASSET_STATE_CACHE, ASSET_STATE_SYNC_START, ASSET_STATE_SYNC_SUCCEED, ASSET_STATE_SYNC_FAIL, ASSET_STATE_FAILED_TO_LOAD } |
the asset state. More... | |
enum | AssetType { base =0, texture, mesh, multianimation, spritevertex, font, sound, mdx, parax, database, effectfile, dllplugin, datagrid, cadMesh, image } |
each asset type has a unique asset type number | |
![]() | |
typedef ParaEngine::weak_ptr< IObject, IAttributeFields > | WeakPtr_type |
![]() | |
typedef ParaEngine::weak_ptr< IObject > | WeakPtr_type |
![]() | |
static const string & | GetAssetServerUrl () |
get the asset server url. More... | |
static void | SetAssetServerUrl (const char *pStr) |
set the asset server url. 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... | |
![]() | |
virtual CAttributeClass * | CreateAttributeClass () |
initialize fields | |
virtual CDynamicAttributesSet * | GetDynamicAttributes (bool bCreateIfNotExist=false) |
![]() | |
WeakPtr_type | m_weak_reference |
![]() | |
int | m_refcount |
MeshEntity distinguish one template from other.
|
virtual |
Clean up additional resources.
this function will only be called before the destructor function.
Reimplemented from ParaEngine::AssetEntity.
HRESULT MeshEntity::CreateMeshFromFile_Async | ( | void * | pContext, |
RenderDevicePtr | pDev = NULL , |
||
const char * | sFileName = NULL |
||
) |
this function is mostly used internally.
this function will return immediately. It will append the texture request to AsyncLoaders's IO queue.
pContext | this should be a pointer to CAsyncLoader |
pDev | if NULL, the default render device is used |
sFileName | if NULL, m_asset->GetLocalFileName() is used. |
HRESULT MeshEntity::CreateMeshFromFile_Serial | ( | RenderDevicePtr | pDev = NULL , |
const char * | sFileName = NULL |
||
) |
this function is mostly used internally.
It will load the mesh from disk, unpack it and init the entity. when this function returns, the texture will be already loaded to device pool.
pDev | if NULL, the default render device is used |
sFileName | if NULL, m_asset->GetLocalFileName() is used. |
void MeshEntity::CreateMeshLODLevel | ( | float | fromDepth, |
const string & | sFilename | ||
) |
Adds a new level-of-detail entry to this Mesh.
fromDepth | The z value from which this Lod will apply. |
meshName | The name of the mesh which will be the lower level detail version. |
|
virtual |
get the attribute object of this asset.
Reimplemented from ParaEngine::AssetEntity.
Get AABB bounding box of the asset object.
if the asset contains an OOB, it will return true.
Reimplemented from ParaEngine::AssetEntity.
const string & MeshEntity::GetFileName | ( | ) |
get the mesh file name of the lowest level mesh.
int MeshEntity::GetLodIndexSquaredDepth | ( | float | squaredDepth | ) | const |
Retrieves the level of detail index for the given squared depth value.
CParaXStaticBase * MeshEntity::GetMesh | ( | int | nLODIndex = 0 | ) |
get the highest level mesh if LOD is enabled.
nLODIndex | default to 0, where the lowest LOD level mesh is returned. |
|
virtual |
get effect parameter block with this object.
bCreateIfNotExist |
Reimplemented from ParaEngine::AssetEntity.
void MeshEntity::Init | ( | const char * | sFilename = NULL | ) |
init the asset entity object.
sFilename | if NULL, the key string name is used. |
|
virtual |
most assets are loaded asynchronously.
This allows us to check if an asset is loaded. For example, we can LoadAsset() for a number of assets that need preloading. and then use a timer to check if they are initialized and remove from the uninialized list.
Reimplemented from ParaEngine::AssetEntity.
|
virtual |
refresh this texture surface with a local file.
sFilename | if NULL or empty the old texture file(sTextureFileName) will be used. |
bLazyLoad | if true it will be lazy loaded. |
Reimplemented from ParaEngine::AssetEntity.
void MeshEntity::RemoveLodLevels | ( | void | ) |
Removes all LOD data from this Mesh.
only the lowest level remains
void MeshEntity::UpdateManualLodLevel | ( | int | index, |
const string & | sFilename | ||
) |
Changes the alternate mesh to use as a manual LOD at the given index.
index | The index of the level to be changed |
sFilename | The name of the mesh which will be the lower level detail version. |