2 #include "BaseObject.h" 3 #include "ShadowVolume.h" 5 #include "SceneState.h" 6 #include "ObjScriptPool.h" 8 #include "IObjectDrag.h" 9 #include "util/ParaMemPool.h" 10 #include "util/unordered_array.hpp" 23 class IBatchedElementDraw;
24 class CBatchedElementDraw;
25 class BlockWorldClient;
26 class CTerrainTileRoot;
27 class DropShadowRenderer;
29 typedef ObjectScriptPool<CBaseObject> CSceneScripts;
31 typedef CTerrainTile* CTerrainTilePtr;
32 typedef FixedSizedAllocator<CTerrainTilePtr> DL_Allocator_CTerrainTilePtr;
33 typedef std::deque<CTerrainTilePtr, DL_Allocator_CTerrainTilePtr > deque_CTerrainTilePtr_Type;
34 typedef std::queue<CTerrainTilePtr, deque_CTerrainTilePtr_Type > queue_CTerrainTilePtr_Type;
37 typedef FixedSizedAllocator<CBaseObjectPtr> DL_Allocator_CBaseObjectPtr;
38 typedef std::deque<CBaseObjectPtr, DL_Allocator_CBaseObjectPtr > deque_CBaseObjectPtr_Type;
39 typedef std::queue<CBaseObjectPtr, deque_CBaseObjectPtr_Type > queue_CBaseObjectPtr_Type;
41 typedef unordered_array<WeakPtr> list_IObjectWeakPtr_Type;
44 typedef bool (*OBJECT_FILTER_CALLBACK)(
CBaseObject* obj);
65 typedef std::list <ShadowVolume*> ShadowVolumePool_Type;
67 #ifdef PARAENGINE_CLIENT 68 typedef std::vector <CMirrorSurface*> MirrorSufacePool_Type;
73 virtual CBaseObject::_SceneObjectType GetType(){
return CBaseObject::SceneRoot;};
126 ATTRIBUTE_METHOD1(
CSceneObject, IsModified_s,
bool*) {*p1 = cls->IsModified();
return S_OK;}
127 ATTRIBUTE_METHOD1(
CSceneObject, SetModified_s,
bool) {cls->SetModified(p1);
return S_OK;}
129 ATTRIBUTE_METHOD1(
CSceneObject, IsUsingFullScreenGlow_s,
bool*) {*p1 = cls->IsUsingFullScreenGlow();
return S_OK;}
130 ATTRIBUTE_METHOD1(
CSceneObject, EnableFullScreenGlow_s,
bool) {cls->EnableFullScreenGlow(p1);
return S_OK;}
133 ATTRIBUTE_METHOD1(
CSceneObject, GetFullscreenGlowIntensity_s,
float*) {*p1 = cls->GetFullscreenGlowIntensity();
return S_OK;}
134 ATTRIBUTE_METHOD1(
CSceneObject, SetFullscreenGlowIntensity_s,
float) {cls->SetFullscreenGlowIntensity(p1);
return S_OK;}
136 ATTRIBUTE_METHOD1(
CSceneObject, GetFullscreenGlowBlendingFactor_s,
float*) {*p1 = cls->GetFullscreenGlowBlendingFactor();
return S_OK;}
137 ATTRIBUTE_METHOD1(
CSceneObject, SetFullscreenGlowBlendingFactor_s,
float) {cls->SetFullscreenGlowBlendingFactor(p1);
return S_OK;}
142 ATTRIBUTE_METHOD1(
CSceneObject, SetGlowness_s,
Vector4) { cls->SetGlowness(p1);
return S_OK;}
144 ATTRIBUTE_METHOD1(
CSceneObject, IsSunLightEnabled_s,
bool*) {*p1 = cls->IsSunLightEnabled();
return S_OK;}
145 ATTRIBUTE_METHOD1(
CSceneObject, EnableSunLight_s,
bool) {cls->EnableSunLight(p1);
return S_OK;}
147 ATTRIBUTE_METHOD1(
CSceneObject, IsLightEnabled_s,
bool*) {*p1 = cls->IsLightEnabled();
return S_OK;}
148 ATTRIBUTE_METHOD1(
CSceneObject, EnableLight_s,
bool) {cls->EnableLight(p1);
return S_OK;}
150 ATTRIBUTE_METHOD1(
CSceneObject, IsShowLocalLightMesh_s,
bool*) {*p1 = cls->IsShowLocalLightMesh();
return S_OK;}
151 ATTRIBUTE_METHOD1(
CSceneObject, ShowLocalLightMesh_s,
bool) {cls->ShowLocalLightMesh(p1);
return S_OK;}
153 ATTRIBUTE_METHOD1(
CSceneObject, GetMaxLocalLightsNum_s,
int*) {*p1 = cls->GetMaxLocalLightsNum();
return S_OK;}
154 ATTRIBUTE_METHOD1(
CSceneObject, SetMaxLocalLightsNum_s,
int) {cls->SetMaxLocalLightsNum(p1);
return S_OK;}
156 ATTRIBUTE_METHOD1(
CSceneObject, IsShadowMapEnabled_s,
bool*) {*p1 = cls->IsShadowMapEnabled();
return S_OK;}
157 ATTRIBUTE_METHOD1(
CSceneObject, SetShadow_s,
bool) {cls->SetShadow(p1);
return S_OK;}
159 ATTRIBUTE_METHOD1(
CSceneObject, GetMaximumNumShadowCasters_s,
int*) {*p1 = cls->GetMaximumNumShadowCasters();
return S_OK;}
160 ATTRIBUTE_METHOD1(
CSceneObject, SetMaximumNumShadowCasters_s,
int) {cls->SetMaximumNumShadowCasters(p1);
return S_OK;}
162 ATTRIBUTE_METHOD1(
CSceneObject, GetMaximumNumShadowReceivers_s,
int*) {*p1 = cls->GetMaximumNumShadowReceivers();
return S_OK;}
163 ATTRIBUTE_METHOD1(
CSceneObject, SetMaximumNumShadowReceivers_s,
int) {cls->SetMaximumNumShadowReceivers(p1);
return S_OK;}
165 ATTRIBUTE_METHOD1(
CSceneObject, GetMaxCharTriangles_s,
int*) {*p1 = cls->GetMaxCharTriangles();
return S_OK;}
166 ATTRIBUTE_METHOD1(
CSceneObject, SetMaxCharTriangles_s,
int) {cls->SetMaxCharTriangles(p1);
return S_OK;}
168 ATTRIBUTE_METHOD1(
CSceneObject, GetBackGroundColor_s,
Vector3*) { *p1 = cls->GetBackGroundColor().ToVector3();
return S_OK;}
171 ATTRIBUTE_METHOD1(
CSceneObject, IsFogEnabled_s,
bool*) {*p1 = cls->IsFogEnabled();
return S_OK;}
172 ATTRIBUTE_METHOD1(
CSceneObject, EnableFog_s,
bool) {cls->EnableFog(p1);
return S_OK;}
174 ATTRIBUTE_METHOD1(
CSceneObject, GetFogColor_s,
Vector3*) { *p1 = cls->GetFogColorFactor().ToVector3();
return S_OK; }
177 ATTRIBUTE_METHOD1(
CSceneObject, GetFogStart_s,
float*) {*p1 = cls->GetFogStart();
return S_OK;}
178 ATTRIBUTE_METHOD1(
CSceneObject, SetFogStart_s,
float) {cls->SetFogStart(p1);
return S_OK;}
180 ATTRIBUTE_METHOD1(
CSceneObject, GetFogEnd_s,
float*) {*p1 = cls->GetFogEnd();
return S_OK;}
181 ATTRIBUTE_METHOD1(
CSceneObject, SetFogEnd_s,
float) {cls->SetFogEnd(p1);
return S_OK;}
183 ATTRIBUTE_METHOD1(
CSceneObject, GetFogDensity_s,
float*) {*p1 = cls->GetFogDensity();
return S_OK;}
184 ATTRIBUTE_METHOD1(
CSceneObject, SetFogDensity_s,
float) {cls->SetFogDensity(p1);
return S_OK;}
186 ATTRIBUTE_METHOD1(
CSceneObject, GetMinPopUpDistance_s,
float*) {*p1 = cls->GetMinPopUpDistance();
return S_OK;}
187 ATTRIBUTE_METHOD1(
CSceneObject, SetMinPopUpDistance_s,
float) {cls->SetMinPopUpDistance(p1);
return S_OK;}
189 ATTRIBUTE_METHOD1(
CSceneObject, GetOnClickDistance_s,
float*) {*p1 = cls->GetOnClickDistance();
return S_OK;}
190 ATTRIBUTE_METHOD1(
CSceneObject, SetOnClickDistance_s,
float) {cls->SetOnClickDistance(p1);
return S_OK;}
192 ATTRIBUTE_METHOD1(
CSceneObject, IsRenderSky_s,
bool*) {*p1 = cls->IsRenderSky();
return S_OK;}
193 ATTRIBUTE_METHOD1(
CSceneObject, EnableSkyRendering_s,
bool) {cls->EnableSkyRendering(p1);
return S_OK;}
195 ATTRIBUTE_METHOD1(
CSceneObject, IsScenePaused_s,
bool*) {*p1 = cls->IsScenePaused();
return S_OK;}
196 ATTRIBUTE_METHOD1(
CSceneObject, PauseScene_s,
bool) {cls->PauseScene(p1);
return S_OK;}
198 ATTRIBUTE_METHOD1(
CSceneObject, IsSceneEnabled_s,
bool*) {*p1 = cls->IsSceneEnabled();
return S_OK;}
199 ATTRIBUTE_METHOD1(
CSceneObject, EnableScene_s,
bool) {cls->EnableScene(p1);
return S_OK;}
201 ATTRIBUTE_METHOD1(
CSceneObject, IsShowBoundingBox_s,
bool*) {*p1 = cls->IsShowBoundingBox();
return S_OK;}
202 ATTRIBUTE_METHOD1(
CSceneObject, ShowBoundingBox_s,
bool) {cls->ShowBoundingBox(p1);
return S_OK;}
204 ATTRIBUTE_METHOD1(
CSceneObject, IsGenerateReport_s,
bool*) {*p1 = cls->IsGenerateReport();
return S_OK;}
205 ATTRIBUTE_METHOD1(
CSceneObject, SetGenerateReport_s,
bool) {cls->SetGenerateReport(p1);
return S_OK;}
207 ATTRIBUTE_METHOD1(
CSceneObject, IsPortalSystemShown_s,
bool*) {*p1 = cls->IsPortalSystemShown();
return S_OK;}
208 ATTRIBUTE_METHOD1(
CSceneObject, ShowPortalSystem_s,
bool) {cls->ShowPortalSystem(p1);
return S_OK;}
210 ATTRIBUTE_METHOD1(
CSceneObject, IsAutoPlayerRippleEnabled_s,
bool*) {*p1 = cls->IsAutoPlayerRippleEnabled();
return S_OK;}
211 ATTRIBUTE_METHOD1(
CSceneObject, EnableAutoPlayerRipple_s,
bool) {cls->EnableAutoPlayerRipple(p1);
return S_OK;}
213 ATTRIBUTE_METHOD1(
CSceneObject, IsHeadOnDisplayShown_s,
bool*) {*p1 = cls->IsHeadOnDisplayShown();
return S_OK;}
214 ATTRIBUTE_METHOD1(
CSceneObject, ShowHeadOnDisplay_s,
bool) {cls->ShowHeadOnDisplay(p1);
return S_OK;}
216 ATTRIBUTE_METHOD1(
CSceneObject, IsPortalZoneEnabled_s,
bool*) {*p1 = cls->IsPortalZoneEnabled();
return S_OK;}
217 ATTRIBUTE_METHOD1(
CSceneObject, EnablePortalZone_s,
bool) {cls->EnablePortalZone(p1);
return S_OK;}
219 ATTRIBUTE_METHOD1(
CSceneObject, IsUseWireFrame_s,
bool*) {*p1 = cls->IsUseWireFrame();
return S_OK;}
220 ATTRIBUTE_METHOD1(
CSceneObject, SetUseWireFrame_s,
bool) {cls->SetUseWireFrame(p1);
return S_OK;}
222 ATTRIBUTE_METHOD1(
CSceneObject, IsForceExportPhysics_s,
bool*) {*p1 = cls->IsForceExportPhysics();
return S_OK;}
223 ATTRIBUTE_METHOD1(
CSceneObject, SetForceExportPhysics_s,
bool) {cls->SetForceExportPhysics(p1);
return S_OK;}
225 ATTRIBUTE_METHOD1(
CSceneObject, IsInstancingEnabled_s,
bool*) {*p1 = cls->IsInstancingEnabled();
return S_OK;}
226 ATTRIBUTE_METHOD1(
CSceneObject, EnableInstancing_s,
bool) {cls->EnableInstancing(p1);
return S_OK;}
228 ATTRIBUTE_METHOD1(
CSceneObject, GetMaxHeadOnDisplayDistance_s,
float*) {*p1 = cls->GetMaxHeadOnDisplayDistance();
return S_OK;}
229 ATTRIBUTE_METHOD1(
CSceneObject, SetMaxHeadOnDisplayDistance_s,
float) {cls->SetMaxHeadOnDisplayDistance(p1);
return S_OK;}
231 ATTRIBUTE_METHOD1(
CSceneObject, IsPersistent_s,
bool*) {*p1 = cls->IsPersistent();
return S_OK;}
232 ATTRIBUTE_METHOD1(
CSceneObject, SetPersistent_s,
bool) {cls->SetPersistent(p1);
return S_OK;}
234 ATTRIBUTE_METHOD(
CSceneObject, ScreenShotReflection_s) {
return cls->ScreenShotReflection() ? S_OK:E_FAIL;}
235 ATTRIBUTE_METHOD(
CSceneObject, ScreenShotShadowMap_s) {
return cls->ScreenShotShadowMap() ? S_OK:E_FAIL;}
236 ATTRIBUTE_METHOD(
CSceneObject, ScreenShotGlowMap_s) {
return cls->ScreenShotGlowMap() ? S_OK:E_FAIL;}
237 ATTRIBUTE_METHOD(
CSceneObject, ClearParticles_s) {cls->ClearParticles();
return S_OK;}
238 ATTRIBUTE_METHOD(
CSceneObject, UnLoadFlashTextures_s) {
return cls->UnLoadFlashTextures() ? S_OK:E_FAIL;}
240 ATTRIBUTE_METHOD1(
CSceneObject, GetPhysicsDebugDrawMode_s,
int*) {*p1 = cls->GetPhysicsDebugDrawMode();
return S_OK;}
241 ATTRIBUTE_METHOD1(
CSceneObject, SetPhysicsDebugDrawMode_s,
int) {cls->SetPhysicsDebugDrawMode(p1);
return S_OK;}
243 ATTRIBUTE_METHOD1(
CSceneObject, IsBlockInput_s,
bool*) {*p1 = cls->IsBlockInput();
return S_OK;}
244 ATTRIBUTE_METHOD1(
CSceneObject, SetBlockInput_s,
bool) {cls->SetBlockInput(p1);
return S_OK;}
246 ATTRIBUTE_METHOD1(
CSceneObject, GetAllMiniSceneGraphNames_s,
const char**) {*p1 = cls->GetAllMiniSceneGraphNames().c_str();
return S_OK;}
248 ATTRIBUTE_METHOD1(
CSceneObject, GetShadowRadius_s,
float*) {*p1 = cls->GetShadowRadius();
return S_OK;}
249 ATTRIBUTE_METHOD1(
CSceneObject, SetShadowRadius_s,
float) {cls->SetShadowRadius(p1);
return S_OK;}
251 ATTRIBUTE_METHOD1(
CSceneObject, IsDropShadow_s,
bool*) {*p1 = cls->IsDropShadow();
return S_OK;}
252 ATTRIBUTE_METHOD1(
CSceneObject, SetDropShadow_s,
bool) {cls->SetDropShadow(p1);
return S_OK;}
254 ATTRIBUTE_METHOD1(
CSceneObject, IsUsingScreenWaveEffect_s,
bool*) {*p1 = cls->IsUsingScreenWaveEffect();
return S_OK;}
255 ATTRIBUTE_METHOD1(
CSceneObject, SetEnableScreenWaveEffect_s,
bool) {cls->EnableScreenWaveEffect(p1);
return S_OK;}
257 ATTRIBUTE_METHOD1(
CSceneObject, IsShowMainPlayer_s,
bool*) {*p1 = cls->IsShowMainPlayer();
return S_OK;}
258 ATTRIBUTE_METHOD1(
CSceneObject, ShowMainPlayer_s,
bool) {cls->ShowMainPlayer(p1);
return S_OK;}
260 ATTRIBUTE_METHOD1(
CSceneObject, SetShadowMapTexelSize_s,
int) { cls->SetShadowMapTexelSize(p1, p1);
return S_OK; }
295 void SetMinPopUpDistance(
float fDist){m_fMinPopUpDistance = fDist;}
302 void ShowBoundingBox(
bool bEnable){m_bShowBoundingBox = bEnable;}
306 void SetGenerateReport(
bool bEnable){m_bGenerateReport = bEnable;}
310 void EnableOcclusionQuery(
bool bEnable){m_bEnableOcclusionQuery = bEnable;}
318 void ShowMainPlayer(
bool bEnable);
322 void SetCanShowMainPlayer(
bool val);
326 void PauseScene(
bool bEnable);
330 void EnableScene(
bool bEnable);
366 void EnableSkyRendering(
bool bEnable){m_bRenderSky = bEnable;};
378 const LinearColor& GetFogColorFactor(){
return m_FogColorFactor;};
381 void SetFogStart(
float fFogStart);
383 void SetFogEnd(
float fFogEnd);
385 void SetFogDensity(
float fFogDensity);
386 float GetFogDensity();
387 void EnableFog(
bool bEnableFog);
389 void ResetCameraAndFog();
390 void SetAndRestoreFog(
bool bEnableFog, DWORD dwFogColor, FLOAT fFogStart, FLOAT fFogEnd, FLOAT fFogDensity);
436 bool IsUsingScreenWaveEffect();
437 void EnableScreenWaveEffect(
bool value);
442 void SetCursor(
const char* szCursorFile,
int nHotSpotX = -1,
int nHotSpotY = -1);
443 const std::string& GetCursor(
int* pnHotSpotX = 0,
int* pnHotSpotY = 0)
const;
451 void SetGlowness(
const Vector4& Glowness);
468 return ((dwMethod & m_dwObjCullingMethod)==dwMethod);
479 void AddConsoleStr(
const char * pStr);
480 void ClearConsoleStr();
545 bool CreateSkyBox(
const string& strObjectName,
AssetEntity& MeshAsset,
float fScaleX,
float fScaleY,
float fScaleZ,
float fHeightOffset);
558 void DestroyObjectByName(
const char *
id);
710 virtual HRESULT DeleteDeviceObjects();
711 virtual HRESULT RestoreDeviceObjects();
712 virtual HRESULT InvalidateDeviceObjects();
713 virtual HRESULT RendererRecreated();
739 float PickClosest(
int nScreenX,
int nScreenY,
CBaseObject** pPickedObject,
Vector3* vIntersectPos,
Vector3* vImpactNormal = NULL,
bool bTestObject=
false,
float fMaxDistance=0, DWORD dwGroupMask=0xffffffff);
782 virtual void Animate(
double dTimeDelta,
int nRenderNumber=0);
789 HRESULT
AdvanceScene(
double dTimeDelta,
int nPipelineOrder = PIPELINE_3D_SCENE);
791 void UpdateFogColor();
793 Vector3 GetFogColor(
float fAngle);
801 int RenderSelection(DWORD dwSelection=0xffffffff,
double dTimeDelta=0);
828 void RenderScreenWaveEffect();
830 void ApplyWaterFogParam();
831 void RestoreSceneFogParam();
906 virtual bool GetCandrag()
const{
return m_bCandrag;}
907 virtual void BeginDrag(
int nEvent,
int x,
int y,
int z){}
908 virtual void EndDrag(
int nEvent,
int x,
int y,
int z){}
910 bool IsPickingObject(){
return m_bPickFlag;};
963 float GetFullscreenGlowIntensity();
972 float GetFullscreenGlowBlendingFactor();
1037 void SetShadowRadius(
float fShadowRadius);
1041 void SetBlockInput(
bool bBlockInput){m_bBlockInput = bBlockInput;}
1049 bool IsDropShadow(){
return m_renderDropShadow;}
1050 void SetDropShadow(
bool useDropShadow){m_renderDropShadow = useDropShadow;}
1055 void RemoveDeadObjects();
1062 bool m_bEnablePostProcessing;
1065 string m_sPostPorcessorCallbackScript;
1068 bool m_bShowHeadOnDisplay;
1071 float m_fMaxHeadOnDisplayDistance;
1074 bool m_bEnableMiniScenegraph;
1077 bool m_bAutoPlayerRipple;
1082 DWORD m_dwObjCullingMethod;
1086 float m_fCullingPixelsHeight;
1090 float m_fMinPopUpDistance;
1093 map <string, CManagedLoader*> m_managedloader;
1101 FLOAT m_fFogDensity;
1104 float m_fShadowRadius;
1107 DWORD m_dwBackGroundColor;
1108 bool m_bSnapToTerrain;
1109 bool m_bShowBoundingBox;
1110 bool m_bGenerateReport;
1113 bool m_bEnableOcclusionQuery;
1118 bool m_bGameEnabled;
1121 ShadowVolumePool_Type m_ShadowVolumes;
1122 bool m_bRenderMeshShadow;
1125 CameraPool_type m_cameras;
1127 SkyMeshPool_type m_skymeshes;
1128 MiniSceneGraphPool_type m_miniSceneGraphs;
1147 int m_nMaxNumShadowCasters;
1148 int m_nMaxNumShadowReceivers;
1152 int m_nMaxCharTriangles;
1157 float m_fFullscreenGlowIntensity;
1158 float m_fFullscreenGlowBlendingFactor;
1164 CSceneScripts m_scripts;
1166 bool m_bInitialized;
1170 DWORD m_dwEnableMouseEvent;
1175 bool m_bEnableLighting;
1177 bool m_bEnableSunLight;
1187 bool m_bShowLocalLightMesh;
1193 bool m_bEnablePortalZone;
1196 bool m_bShowPortalSystem;
1199 bool m_bUseWireFrame;
1203 float m_fCoefF, m_fCoefN, m_fCoefK;
1230 void UpdateMovableObjectZone(
SceneState &sceneState, SceneState::List_PostRenderObject_Type& listPRBiped);
1233 void AutoGenPlayerRipple(
float fTimeDelta);
1238 void CreateAttributeModels();
1240 #ifdef USE_DIRECTX_RENDERER 1241 std::unique_ptr<DropShadowRenderer> m_dropShadowRenderer;
1243 bool m_renderDropShadow;
1247 float m_defaultFogStart;
1248 float m_defaultFogEnd;
1265 #ifdef PARAENGINE_CLIENT 1267 MirrorSufacePool_Type m_mirrorSurfaces;
bool IsGenerateReport()
whether to use generate scene report.
Definition: SceneObject.h:305
float GetMinPopUpDistance()
all objects must be drawn when they are within this radius.
Definition: SceneObject.h:294
void SetForceExportPhysics(bool bWhetherPhysicsAreAlwaysExported)
set whether physics of MeshPhysicsObject is always exported regardless of per object settings...
Definition: SceneObject.cpp:4668
bool DetachObject(CBaseObject *pObject)
detach an object from the scene graph.
Definition: SceneObject.cpp:665
void UpdateOcean()
call this function, when the ocean has changed or the environment has changed.
Definition: SceneObject.cpp:2060
virtual void EndDrag(int nEvent, int x, int y, int z)
Default EndDrag handle function.
Definition: SceneObject.h:908
bool m_bIsPersistent
whether the scene can be automatically marked as modified
Definition: SceneObject.h:1290
void SetUseWireFrame(bool UseWireFrame)
set whether to use wire frame
Definition: SceneObject.cpp:4341
virtual void SetPhysicsGroupMask(DWORD dwValue)
set groups Mask used to filter physics objects, default to 0xffffffff
Definition: SceneObject.cpp:551
void SetMaxCharTriangles(int nNum)
set max number of character triangles allowed.
Definition: SceneObject.cpp:362
CBaseObject * GetObject(const string &sName, const Vector3 &vPos, bool bGlobal)
this function is just a short cut for (bGlobal ? GetGlobalObject():GetLocalObject()) ...
Definition: SceneObject.cpp:717
a flying missile in the global space.
Definition: MissileObject.h:11
Definition: SceneObject.h:15
void EnableMouseEvent(bool bEnable, DWORD dwEvents=0xffff)
Whether to generate mouse events for the scene objects.
Definition: SceneObject.cpp:3669
int RenderCharacters(SceneState &sceneState, SceneState::List_PostRenderObject_TrackRef_Type &listPRBiped)
render characters
Definition: SceneObject.cpp:3160
void SetPhysicsDebugDrawMode(int nMode)
set the physics debug draw mode.
Definition: SceneObject.cpp:4699
CSunLight & GetSunLight()
get sun light object
Definition: SceneObject.cpp:2657
void SetMaximumNumShadowCasters(int nNum)
set the maximum number of shadow casters.
Definition: SceneObject.cpp:387
an attribute class is a collection of attribute fields.
Definition: AttributeClass.h:10
virtual void Cleanup()
Desc: Called before the app exits, this function gives the app the chance to cleanup after itself...
Definition: SceneObject.cpp:1071
IParaDebugDraw * GetDebugDrawer()
deprecated: use GetBatchedElementDrawer()
Definition: SceneObject.cpp:329
float PickClosest(const Vector3 &vPickRayOrig, const Vector3 &vPickRayDir, CBaseObject **pTouchedObject, Vector3 *vIntersectPos, Vector3 *vImpactNormal=NULL, bool bTestObject=false, float fMaxDistance=0, DWORD dwGroupMask=0xffffffff)
Checks if mouse point hits any physical geometry in the current scene.
Definition: SceneObjectPicking.cpp:242
int SaveAllCharacters()
save all local characters in the scene to the current NPC database regardless of whether they are mod...
Definition: SceneObject.cpp:3892
It's used as parameter to Draw method of each scene object.
Definition: SceneState.h:284
CBaseObject * TogglePlayer()
It changes the current player to the next player in the scene.
Definition: SceneObject.cpp:4269
bool IsUseWireFrame()
whether to use wire frame
Definition: SceneObject.h:986
void RenderFullScreenGlowEffect()
render the full screen glow effect
Definition: SceneObject.cpp:4153
bool IsLightEnabled()
get light enable state
Definition: SceneObject.cpp:509
CZoneNode * GetZoneNode(const char *sName)
get a zone node by its name.
Definition: SceneObject.cpp:416
4-dimensional homogeneous vector.
Definition: ParaVector4.h:10
Definition: combase.h:159
const std::string & GetAllMiniSceneGraphNames()
get commar separated list of mini scene graph names, such as "name1,name2,"
Definition: SceneObject.cpp:4614
A typical character in role playing game.
Definition: RpgCharacter.h:73
char m_sConsoleString[200]
console string the console panel string
Definition: SceneObject.h:1281
virtual const char * GetAttributeClassDescription()
a static string, describing the attribute class object
Definition: SceneObject.h:114
int GetMaximumNumShadowCasters()
get the maximum number of shadow casters.
Definition: SceneObject.cpp:382
bool IsModified()
Get whether scene is modified.
Definition: SceneObject.cpp:3985
virtual void SetCandrag(bool bCandrag)
implementing IObjectDrag Interface
Definition: SceneObject.h:905
bool IsForceExportPhysics()
get whether physics of MeshPhysicsObject is always exported regardless of per object settings...
Definition: SceneObject.cpp:4673
a managed loader is a kind of global scene object for dynamic scene object loading and unloading...
Definition: ManagedLoader.h:28
Basic scene interface: implemented by the CSceneObject and CMiniScenegraph class. ...
Definition: IScene.h:12
bool CreateSkyBox(const string &strObjectName, AssetEntity &MeshAsset, float fScaleX, float fScaleY, float fScaleZ, float fHeightOffset)
create a sky box and add it to the current list, and select it as the current skybox.
Definition: SceneObject.cpp:2612
bool IsSnapToTerrain()
whether snap to terrain
Definition: SceneObject.h:298
int16 m_nCursorHotSpotY
default to -1, which is using current hardware value.
Definition: SceneObject.h:1309
void SetCurrentActor(CBaseObject *pActor)
Set the actor that is being processed by the AI module or a script call back.
Definition: SceneObject.cpp:344
bool DeleteObject(CBaseObject *pObject)
delete a object from the scene.
Definition: SceneObject.cpp:737
CBipedObject * GetNextPlayer(CBipedObject *pObj)
get the next scene object.
Definition: SceneObject.cpp:2899
void RenderShadows()
Shadow volume rendering.
Definition: SceneObject.cpp:2678
bool IsRenderSky()
whether rendering the sky
Definition: SceneObject.h:365
HRESULT AdvanceScene(double dTimeDelta, int nPipelineOrder=PIPELINE_3D_SCENE)
build the render list, and render the entire scene.
Definition: SceneObject.cpp:2072
SceneState * GetSceneState()
get the scene state information.
Definition: SceneObject.h:1004
Mini scene graph does not use a spatial partitions for its stored objects, instead it just implement ...
Definition: MiniSceneGraph.h:29
different physics engine has different winding order.
Definition: EventBinding.h:32
bool DeleteSkyBox(const string &strObjectName)
delete a name sky box.
Definition: SceneObject.cpp:2648
virtual IAttributeFields * GetChildAttributeObject(const std::string &sName)
get attribute by child object.
Definition: SceneObject.cpp:4857
CBaseObject * FindObjectByNameAndType(const std::string &sName, const std::string &sClassName)
find a named object by its name.
Definition: SceneObject.cpp:565
the root of the quad-tree terrain tiles.
Definition: TerrainTileRoot.h:11
IObject * AttachObject(CBaseObject *pObject)
Automatically attach a scene object to the scene graph according to its type and position.
Definition: SceneObject.cpp:574
CPortalNode * GetPortalNode(const char *sName)
get a portal node by its name.
Definition: SceneObject.cpp:442
bool DB_LoadNPCByID(int nNPCID, CRpgCharacter **pOut, bool bReload=false)
load a character from the database
Definition: SceneObject.cpp:3991
Place of the.
Definition: GUIEvent.h:43
CMiniSceneGraph * GetMiniSceneGraph(const string &name)
If the mini scene graph does not exist, it will be created.
Definition: SceneObject.cpp:4626
void PauseGame()
Definition: SceneObject.h:776
void SetShadow(bool bRenderShadow)
whether render shadow
Definition: SceneObject.cpp:3738
Definition: ManagedDef.h:18
void SetEnvironmentSim(IEnvironmentSim *pSim)
set the environment simulator to be used with this world.
Definition: SceneObject.cpp:320
Modeling the global sun and its directional light, including sun position, direction, color, time of day, etc.
Definition: SunLight.h:26
void ShowLocalLightMesh(bool bShow)
show the arrow mesh associated with the light object
Definition: SceneObject.cpp:540
int RemoveCharacterFromDB(IGameObject *pObj)
remove a character from DB.
Definition: SceneObject.cpp:3821
int GetMaxRenderCount(int nRenderImportance)
Get the max number of objects to be rendered of a given render importance.
Definition: SceneObject.cpp:4690
this is the interface class for managing global terrain used in ParaEngine.
Definition: GlobalTerrain.h:36
std::string m_sMiniSceneGraphNames
comma separated list of mini scene graphs
Definition: SceneObject.h:1302
list_IObjectWeakPtr_Type & GetSentientObjects()
get the list of sentient objects.
Definition: SceneObject.h:993
the sky object in the scene.
Definition: SkyMesh.h:13
bool LoadNPCByNPCDbItem(CNpcDbItem &npc, CRpgCharacter **pOut, bool bReload=false)
load a character from the database.
Definition: SceneObject.cpp:4039
bool HandleUserInput()
handle user input return true if there is a handler
CZoneNode * CreateGetZoneNode(const char *sName)
get a zone node by its name.
Definition: SceneObject.cpp:398
CBaseObject * GetLocalObject(const string &sName, const Vector3 &vPos)
Get an object.
Definition: SceneObject.cpp:712
int RenderHeadOnDisplay(int nPass=0)
render the head on display, return the number of objects rendered
Definition: SceneObject.cpp:2523
ParaTerrain::CGlobalTerrain * GetGlobalTerrain()
clean up all objects in the delete list.
Definition: SceneObject.cpp:560
map< string, CZoneNode * > m_zones
store all zones in a map from zone name to its pointer
Definition: SceneObject.h:1270
Standard 3-dimensional vector.
Definition: ParaVector3.h:16
void SetFogColorFactor(const LinearColor &fogColorFactor)
fog parameters
Definition: SceneObject.h:377
void EnableLight(bool bEnable)
whether use light
Definition: SceneObject.cpp:514
int RenderSelection(DWORD dwSelection=0xffffffff, double dTimeDelta=0)
render objects in the post rendering list.
Definition: SceneObject.cpp:3238
ref_ptr< CTerrainTileRoot > m_pTileRoot
a quad tree object that hold most static (regional mobile) objects according to its spatial parameter...
Definition: SceneObject.h:1275
Definition: BaseCamera.h:70
void EnablePostProcessing(bool bEnable, const char *sCallbackScript)
set whether post processing is enabled.
Definition: SceneObject.cpp:4593
the view frustum's bounding radius
Definition: SceneObject.h:102
map< string, CPortalNode * > m_portals
store all zones in a map from zone name to its pointer
Definition: SceneObject.h:1272
LinearColor GetClearColor()
Get the color of the scene ground when it is not enabled.When scene is enabled, the background color ...
Definition: SceneObject.cpp:1002
bool IsPostProcessingEnabled()
get whether post processing is enabled.
Definition: SceneObject.cpp:4599
Definition: IObjectDrag.h:66
void ShowHeadOnDisplay(bool bShow)
show or hide all scene's objects' head on display
Definition: SceneObject.h:263
CManagedLoader * GetManagedLoader(string sName)
get the managed loader by its name
Definition: SceneObject.cpp:799
vector< int > m_MaxRenderCount
m_MaxRenderCount[RenderImportance] is the max number of objects to be rendered of a given render impo...
Definition: SceneObject.h:1299
void SetFullscreenGlowBlendingFactor(float fGlowFactor)
full screen glow effect is parameterized by the blending weight of the source image and the glow imag...
Definition: SceneObject.cpp:4127
bool IsMiniSceneGraphEnabled()
enable to render all mini scene graphs
Definition: SceneObject.cpp:4609
virtual BOOL IsOnObject(int x, int y, int z)
Decide whether the input position is on this object This function is to help other function to decide...
Definition: SceneObject.cpp:3799
virtual int InstallFields(CAttributeClass *pClass, bool bOverride)
this class should be implemented if one wants to add new attribute.
Definition: SceneObject.cpp:4891
IParaDebugDraw draw interface draws line based primitives for debugging purposes. ...
Definition: IBatchedElementDraw.h:12
base class for object, such as CBaseObject, IAttributeObject, GUI object.
Definition: PERef.h:287
void SetMaxRenderCount(int nRenderImportance, int nCount)
set the max number of objects to be rendered of a given render importance.
Definition: SceneObject.cpp:4678
int GetMaxLocalLightsNum()
get maximum number of local lights per object.
Definition: SceneObject.cpp:526
MissileObjectPool_Type & GetMissiles()
return a list of missile objects.
Definition: SceneObject.h:997
bool ScreenShotShadowMap()
take a screen shot of the current shadow map and save it to .
Definition: SceneObject.cpp:4237
bool IsPersistent()
get whether the scene can be automatically marked as modified
Definition: SceneObject.cpp:3811
Definition: ShapeSphere.h:6
bool UnLoadFlashTextures()
unload all flash textures.
Definition: SceneObject.cpp:4758
a zone in portal rendering.
Definition: ZoneNode.h:17
list_IObjectWeakPtr_Type m_sentientGameObjects
it keeps a reference to all active (sentient) game objects in the scene.
Definition: SceneObject.h:1261
AABB-related code.
Definition: ShapeAABB.h:11
ref_ptr< CPhysicsWorld > m_pPhysicsWorld
current physics engine and simulation engine
Definition: SceneObject.h:1256
bool IsAutoPlayerRippleEnabled()
the current player will automatically generate ripples near the water surface
Definition: SceneObject.h:975
CSceneObject()
Definition: SceneObject.cpp:135
void SetMaximumNumShadowReceivers(int nNum)
set the maximum number of shadow receivers.
Definition: SceneObject.cpp:377
void RegenerateRenderOrigin(const Vector3 &vPos)
generate the render origin, so that it is near the given point in the world units this function is ca...
Definition: SceneObject.cpp:2953
bool IsSunLightEnabled()
get light enable state
Definition: SceneObject.cpp:500
virtual float GetShadowRadius()
get the distance from the eye, within which shadow map will be used.
Definition: SceneObject.h:1036
bool IsOcclusionQueryEnabled()
whether to use occlusion query algorithm for rendering.
Definition: SceneObject.h:309
CMissileObject * NewMissile()
Create a new managed missile object.
Definition: SceneObject.cpp:2964
int DeleteMiniSceneGraph(const string &name)
Delete mini scene graphs by name.
Definition: SceneObject.cpp:4652
The ref_ptr class template stores a pointer to a dynamically allocated (AssetEntity|CRefCounted|BaseA...
Definition: PERefPtr.h:13
virtual int GetChildAttributeObjectCount(int nColumnIndex=0)
get the number of child objects (row count) in the given column.
Definition: SceneObject.cpp:4876
bool IsSceneEnabled()
whether 3D scene is enabled or not.
Definition: SceneObject.h:329
this is an interface class for game objects, such as NPC, OPC and players.
Definition: IGameObject.h:15
IParaDebugDraw draw interface draws line based primitives for debugging purposes. ...
Definition: IParaDebugDraw.h:10
virtual CBaseObject * GetGlobalObject(const string &sName)
get the global object by its name.
Definition: SceneObject.cpp:707
void SetShadowMapTexelSize(int nWidth, int nHeight)
Set the size of the shadow map.
Definition: SceneObject.cpp:3726
virtual DWORD GetPhysicsGroupMask()
get groups Mask used to filter physics objects, default to 0xffffffff
Definition: SceneObject.cpp:546
void EnableSunLight(bool bEnable)
whether use light
Definition: SceneObject.cpp:504
bool CheckObjectCullingMethod(DWORD dwMethod)
Definition: SceneObject.h:467
virtual HRESULT InitDeviceObjects()
– For device and input handling –
Definition: SceneObject.cpp:835
void SetShadowMapTexelSizeLevel(int nLevel)
Set the size level of the shadow map.
Definition: SceneObject.cpp:3708
bool IsPortalSystemShown()
get whether portal zone and portals are rendered.
Definition: SceneObject.cpp:456
unordered_ref_array< IAttributeFields * > m_attribute_models
attribute models in the second column
Definition: SceneObject.h:1317
virtual const char * GetAttributeClassName()
a static string, describing the attribute class object's name
Definition: SceneObject.h:112
CManagedLoader * CreateManagedLoader(string sName)
create a new managed loader.
Definition: SceneObject.cpp:821
the view center is on current player. if no player selected. it is on the current camera eye position...
Definition: SceneObject.h:96
bool ScreenShotReflection()
take a screen shot of the current reflection map and save it to .
Definition: SceneObject.cpp:4225
void UnloadObjectResources(CBaseObject *pObject)
unload the resources used by the specified object.
Definition: SceneObject.cpp:782
NPC database item (complete)
Definition: NpcDatabase.h:8
Definition: enum_maker.hpp:46
void DisableGame()
Definition: SceneObject.h:778
void AddSentientObject(IGameObject *pObj, bool bCheckDuplicate=false)
add a new sentient object to the back of the sentient object list.
Definition: SceneObject.cpp:621
float m_fOnClickDistance
the mouse ray picking distance for onclick event.
Definition: SceneObject.h:1284
bool(* OBJECT_FILTER_CALLBACK)(CBaseObject *obj)
call back function type for ray picking.
Definition: MiniSceneGraph.h:19
bool IsPortalZoneEnabled()
enable portal and zone rendering.
Definition: SceneObject.h:980
bool IsShadowMapEnabled()
whether render using shadow map
Definition: SceneObject.cpp:3759
int GetMaximumNumShadowReceivers()
get the maximum number of shadow receivers.
Definition: SceneObject.cpp:372
A common interface for all classes implementing IAttributeFields By implementing this class's virtual...
Definition: IAttributeFields.h:59
bool IsBlockInput()
whether to block all user input (both key and mouse).
Definition: SceneObject.h:1040
The top level scene management class.
Definition: SceneObject.h:58
void SetBackGroundColor(const LinearColor &bgColor)
set the color of the scene ground when it is not enabled.When scene is enabled, the background color ...
Definition: SceneObject.cpp:989
void ShowPortalSystem(bool bEnable)
set whether portal zone and portals are rendered.
Definition: SceneObject.cpp:451
bool PickObject(const CShapeRay &ray, CBaseObject **pTouchedObject, float fMaxDistance=0, OBJECT_FILTER_CALLBACK pFnctFilter=NULL)
Pick object using view clipping object.
Definition: SceneObjectPicking.cpp:359
int SaveLocalCharacters()
save all modified and unsaved local characters in the scene to the current NPC database.
Definition: SceneObject.cpp:3925
bool ScreenShotGlowMap()
take a screen shot of the current glow texture and save it to .
Definition: SceneObject.cpp:4252
CSkyMesh * GetCurrentSky()
return NULL if no sky defined.
Definition: SceneObject.cpp:2605
void ResetScene()
reset the scene to blank.
Definition: SceneObject.cpp:281
This class is for maintaining the event binding table and script binding table.
Definition: EventBinding.h:51
bool IsShowLocalLightMesh()
whether show the arrow mesh associated with the light object.
Definition: SceneObject.cpp:535
bool m_bUseInstancing
whether to use instancing during scene rendering.
Definition: SceneObject.h:1287
bool DeleteManagedLoader(string sName)
delete a managed loader
Definition: SceneObject.cpp:809
AABB with orientation by a matrix.
Definition: ShapeOBB.h:11
Use fog far plane distance as the view radius.
Definition: SceneObject.h:100
bool IsUsingFullScreenGlow()
whether full screen glow effect is used.
Definition: SceneObject.cpp:4103
the view center is the 2d center of the view frustum
Definition: SceneObject.h:98
int DB_LoadNPCsByRegion(const Vector3 &vMin, const Vector3 &vMax, bool bReload=false)
return all NPC whose position is within a AABB region
Definition: SceneObject.cpp:4015
CPortalNode * CreateGetPortalNode(const char *sName)
get a portal node by its name.
Definition: SceneObject.cpp:424
bool IsShowMainPlayer()
whether to show main player.
Definition: SceneObject.cpp:480
float m_fPostRenderQueueOrder
this is always 100.f
Definition: SceneObject.h:1315
The global physics scene (NxScene) and physics SDK is encapsulated in a member object of scene manage...
Definition: PhysicsWorld.h:18
int GetObjectsByScreenRect(list< CBaseObject *> &output, const RECT &rect, OBJECT_FILTER_CALLBACK pFnctFilter=NULL, float fMaxDistance=-1.f)
Get objects inside or intersect with a screen rect.
Definition: SceneObject.cpp:4366
void EnableFullScreenGlow(bool bEnable)
whether full screen glow effect is used.
Definition: SceneObject.cpp:4112
CMiniSceneGraph * GetPostProcessingScene()
get the post processing mini scene graph.
Definition: SceneObject.cpp:4588
bool IsInstancingEnabled()
whether to use instancing.
Definition: SceneObject.h:313
void SetPersistent(bool bPersistent)
set whether the scene can be automatically marked as modified
Definition: SceneObject.cpp:3816
CBatchedElementDraw * m_pBatchedElementDraw
physics world
Definition: SceneObject.h:1258
a reflective plane in the scene currently it only supports horizontal surface.Vertical surface and ar...
Definition: MirrorSurface.h:10
bool CanShowMainPlayer() const
whether current camera allows showing the main player
Definition: SceneObject.cpp:490
Portal rendering: portal class a portal can be connected to one or two zones.
Definition: PortalNode.h:15
void SetFullscreenGlowIntensity(float fGlowIntensity)
full screen glow effect is parameterized by the blending weight of the source image and the glow imag...
Definition: SceneObject.cpp:4119
CSceneScripts & GetScripts()
get script interface for reading and writing.
Definition: SceneObject.cpp:3664
void ClearParticles()
clear all particles.
Definition: SceneObject.cpp:4718
Defines the base class of all scene elements:CBaseObject for Parallel World Engine.
Definition: BaseObject.h:230
MissileObjectPool_Type m_missiles
a list of missile objects.
Definition: SceneObject.h:1264
A ray is a half-line P(t) = mOrig + mDir * t, with 0 <= t <= +infinity.
Definition: ShapeRay.h:11
void RenderShadowMap()
render the shadow volume
Definition: SceneObject.cpp:3768
CBaseObject * GetObjectByViewBox(const CShapeAABB &viewbox)
get an object(usually a static mesh object) by a given view box.
Definition: SceneObject.cpp:732
CBipedObject * GetCurrentPlayer()
get the current player
Definition: SceneObject.cpp:2894
std::string m_sCursorFile
the cursor to be displayed when mouse over it.
Definition: SceneObject.h:1305
void EnableMiniSceneGraph(bool bEnable)
enable to render all mini scene graphs
Definition: SceneObject.cpp:4604
OBJECT_LEVEL_CULLING_METHOD
a bit wise field for object level culling parameters.
Definition: SceneObject.h:91
virtual void BeginDrag(int nEvent, int x, int y, int z)
Default BeginDrag handle function.
Definition: SceneObject.h:907
static CSceneObject * GetInstance()
this function may return NULL, if scene object is never created.
Definition: SceneObject.cpp:241
virtual void Animate(double dTimeDelta, int nRenderNumber=0)
Desc: Called once per frame, the call is the entry point for animating the scene. ...
Definition: SceneObject.cpp:1227
unordered_ref_array< CBaseObject * > m_dead_objects
dead objects pool.
Definition: SceneObject.h:1277
int GetMaxCharTriangles()
get max number of character triangles allowed.
Definition: SceneObject.cpp:367
int GetPhysicsDebugDrawMode()
set the physics debug draw mode.
Definition: SceneObject.cpp:4707
Same as IRefObject except that it tracks references of the object.
Definition: SceneState.h:481
void SetModified(bool bModified)
set whether scene is modified
Definition: SceneObject.cpp:3980
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.
Definition: BaseObject.cpp:957
bool IsShowBoundingBox()
whether to draw bounding box of scene objects.
Definition: SceneObject.h:301
A linear, 32-bit/component floating point RGBA color.
Definition: ParaColor.h:12
bool IsScenePaused()
when a scene is paused, all animation will be frozen.
Definition: SceneObject.h:325
void OnTerrainChanged(const Vector3 &vCenter, float fRadius)
This function is called manually to update characters in a square region.
Definition: SceneObject.cpp:4311
void SetOnClickDistance(float fDist)
the mouse ray picking distance for onclick event.
Definition: SceneObject.h:1022
for drawing special element object(like particles, lines, etc) in the scene.
Definition: BatchedElementDraw.h:15
void SetCurrentPlayer(CBipedObject *pPlayer)
set the current player
Definition: SceneObject.cpp:3677
bool IsInitialized()
when the device used by the scene have been initialized and ready for drawing.
Definition: SceneObject.cpp:1266
int SelectObject(int nGroupIndex, const CShapeOBB &box, OBJECT_FILTER_CALLBACK pFnctFilter=NULL)
select select objects within a given region into a given group.
Definition: SceneObjectPicking.cpp:609
LinearColor GetBackGroundColor()
Get the color of the scene ground when it is not enabled.When scene is enabled, the background color ...
Definition: SceneObject.cpp:994
Vector3 GetRenderOrigin()
get the render origin in the rendering coordinate system.rendering coordinate system is a 3D coordina...
Definition: SceneObject.cpp:2948
CBaseCamera * GetCurrentCamera()
get current camera
Definition: SceneObject.h:536
CBaseObject * GetCurrentActor()
get the actor that is being processed by the AI module or a script call back.
Definition: SceneObject.cpp:339
virtual int GetAttributeClassID()
attribute class ID should be identical, unless one knows how overriding rules work.
Definition: SceneObject.h:110
float GetMaxHeadOnDisplayDistance()
whether all scene's objects' head on display
Definition: SceneObject.h:272
void EnableAutoPlayerRipple(bool bEnable)
the current player will automatically generate ripples near the water surface
Definition: SceneObject.h:977
const CEventBinding * GetEventBinding()
Get the current event binding object.
Definition: SceneObject.cpp:349
int16 m_nCursorHotSpotX
default to -1, which is using current hardware value.
Definition: SceneObject.h:1307
void SetMaxHeadOnDisplayDistance(float fDist)
show or hide all scene's objects' head on display
Definition: SceneObject.h:269
bool DB_LoadNPCByName(const string &sName, CRpgCharacter **pOut, bool bReload=false)
load a character from the database
Definition: SceneObject.cpp:4003
This class demonstrate how to initialize, destroy and drive the game loop of ParaEngine through the C...
Definition: ParaEngineApp.h:96
CTerrainTileRoot * GetRootTile()
get the root terrain tile of the quad tree.
Definition: SceneObject.h:533
It can be used to represent biped object(like human, re spawning monsters) in the scene without inher...
Definition: BipedObject.h:60
void EnablePortalZone(bool bEnable)
enable portal and zone rendering.
Definition: SceneObject.h:983
bool IsHeadOnDisplayShown()
whether all scene's objects' head on display
Definition: SceneObject.h:266
void SetMaxLocalLightsNum(int nNum)
set maximum number of local lights per object.
Definition: SceneObject.cpp:519
CMirrorSurface * GetMirrorSurface(int nIndex)
It will create the mirror surface if not exist.
Definition: SceneObject.cpp:461
bool m_bCanShowMainPlayer
whether current camera allows showing the main player
Definition: SceneObject.h:1296
the view center is always on camera eye position
Definition: SceneObject.h:94
Base class for managed asset entity in ParaEngine.
Definition: AssetEntity.h:25
bool DeleteSentientObject(IGameObject *pObj)
return true if the object is found and deleted.
Definition: SceneObject.cpp:646
virtual int GetChildAttributeColumnCount()
we support multi-dimensional child object.
Definition: SceneObject.cpp:4886
DWORD m_dwPhysicsGroupMask
groups Mask used to filter physics objects, default to 0xffffffff
Definition: SceneObject.h:1312
bool m_bShowMainPlayer
whether to show the main player
Definition: SceneObject.h:1293
void SetCursor(const char *szCursorFile, int nHotSpotX=-1, int nHotSpotY=-1)
Set/Get cursor file when mouse is over it.
Definition: SceneObject.cpp:4735
void LoadDefaultEventBinding()
load the default camera key and mouse event binding.
Definition: SceneObject.cpp:354
environment simulator.
Definition: IEnvironmentSim.h:103
int GetObjectsBySphere(list< CBaseObject *> &output, const CShapeSphere &sphere, OBJECT_FILTER_CALLBACK pFnctFilter=NULL, int nMethod=0)
Get objects inside or intersect with a sphere.
Definition: SceneObject.cpp:4464
virtual HRESULT Draw(SceneState *sceneState)
only for drawable objects
Definition: SceneObject.cpp:1261
int SaveCharacterToDB(IGameObject *pObj)
save the given character to current database no matter it is modified or not.
Definition: SceneObject.cpp:3846