Simulator::cGameViewManager class

Base classes

class Graphics::ILayer
This interfaces defines a layer that is rendered every game loop, by callings its ILayer::DrawLayer() method.
class App::IMessageListener
An interface that can receive messages sent through the app.
class cStrategy

Public static variables

static const uint32_t GraphicsWorldID
The ID used for the Simulator model world, effects world.
static const uint32_t LightingWorldID
The ID used for the Simulator lighting world, effects world.

Public static functions

static auto Get() -> cGameViewManager*
Gets the active game view manager.

Public functions

auto func10h_() -> void virtual
auto PrepareSimulator() -> void virtual
auto func18h_() -> void virtual
auto func1Ch_() -> void virtual
auto func20h_() -> void virtual
auto func24h_() -> void virtual
auto func28h_() -> void virtual
auto func2Ch_() -> void virtual
auto GetHoveredObject() -> cGameData* virtual
auto func34h_() -> int virtual
auto func38h_(int, struct Vector3) -> Vector3 virtual
auto func3Ch_(int) -> Vector3 virtual
auto GetWorldMousePosition(int = 0, cCombatant* pCombanant = nullptr) -> Vector3 virtual
auto func44h_() -> void virtual
auto IntersectSphere(const Vector3& center, float radius, eastl::vector<cSpatialObjectPtr>& dst, bool useModelCollisionMode = false, Graphics::ModelPredicate_t filter = nullptr, void* filterObject = nullptr) -> bool virtual
Finds all the cSpatialObject objects that intersect with the sphere with center and radius.
auto RaycastAll(const Vector3& point1, const Vector3& point2, eastl::vector<cSpatialObjectPtr>& dst, bool useModelCollisionMode = false) -> bool virtual
Finds all the cSpatialObject objects that intersect with the segment between point1 and point2.
auto Raycast(const Vector3& point1, const Vector3& point2, Graphics::FilterSettings::FilterModel_t filter, cGameDataPtr& dst, Vector3& dstIntersection, bool useModelCollisionMode = false) -> bool virtual
Finds the first cGameData object that intersects with the segment between point1 and point2.
auto GetObjectView(cGameData* pObject) -> IGameDataView virtual

Public variables

eastl::intrusive_list<IGameDataView> mViews
eastl::fixed_vector<ModelPtr, 16> mGrassTrampModels
uint32_t mGameModeID
cGameDataPtr mHoveredObject
eastl::hash_map<int, int> field_8C
eastl::vector<int> field_AC
bool field_C0
bool field_C1
eastl::intrusive_ptr<int> field_C4
eastl::map<int, int> field_C8
IModelWorldPtr field_E4
ObjectPtr field_E8
App::cViewer* field_EC
int field_F0
int field_F4
int field_F8
int field_FC
int field_100
int field_104
IAnimWorldPtr mpCreatureFXAnimWorld
bool mbSuperHighResVehicles
bool mbSuperHighResIgnoreCount
bool mbSuperHighResBuildings
eastl::fixed_vector<int, 32> field_110

Function documentation

bool Simulator::cGameViewManager::IntersectSphere(const Vector3& center, float radius, eastl::vector<cSpatialObjectPtr>& dst, bool useModelCollisionMode = false, Graphics::ModelPredicate_t filter = nullptr, void* filterObject = nullptr) virtual

Finds all the cSpatialObject objects that intersect with the sphere with center and radius.

Parameters
center The center of the sphere.
radius The radius of the sphere.
dst out The vector where all objects will be added.
useModelCollisionMode If true, the collision mode specified by each model will be used.
filter An optional filter function that decides which models are considered.
filterObject An object that is passed to the filter function.
Returns true if any object was found, false otherwise.

The objects will be added to dst. filter is an optional filter function that receives a Model and filterObject, and returns whether the model is considered or not.

The collision is only checked with the bounding box, so it is not a precise model collision. If the useModelCollisionMode param is true, then the collision mode specified by each model will be used.

bool Simulator::cGameViewManager::RaycastAll(const Vector3& point1, const Vector3& point2, eastl::vector<cSpatialObjectPtr>& dst, bool useModelCollisionMode = false) virtual

Finds all the cSpatialObject objects that intersect with the segment between point1 and point2.

Parameters
point1 The start point of the ray.
point2 The end point of the ray.
dst out The vector where all objects will be added.
useModelCollisionMode If true, the collision mode specified by each model will be used.
Returns true if any object was found, false otherwise.

The objects will be added to dst in the order they have been found, so the ones closest to point1 come first.

The collision is only checked with the bounding box, so it is not a precise model collision. If the useModelCollisionMode param is true, then the collision mode specified by each model will be used.

bool Simulator::cGameViewManager::Raycast(const Vector3& point1, const Vector3& point2, Graphics::FilterSettings::FilterModel_t filter, cGameDataPtr& dst, Vector3& dstIntersection, bool useModelCollisionMode = false) virtual

Finds the first cGameData object that intersects with the segment between point1 and point2.

Parameters
point1 The start point of the ray.
point2 The end point of the ray.
filter A filter function that receives a Model and returns whether it is considered or not.
dst out The object that is found, only valid if true was returned.
dstIntersection out The point where the ray intersected with the model, only valid if true was returned.
useModelCollisionMode If true, the collision mode specified by each model will be used.
Returns true if an object was found, false otherwise.

Only models that pass the filter function are considered.

The collision is only checked with the bounding box, so it is not a precise model collision. If the useModelCollisionMode param is true, then the collision mode specified by each model will be used.