#include <floorface.h>
Public Member Functions | |
FloorFace (Object *parent, byte subType, uint16 index, const Common::String &name) | |
void | onAllLoaded () override |
bool | isPointInside (const Math::Vector3d &point) const |
void | computePointHeight (Math::Vector3d &point) const |
bool | intersectRay (const Math::Ray &ray, Math::Vector3d &intersection) const |
float | distanceToRay (const Math::Ray &ray) const |
float | getDistanceFromCamera () const |
int16 | getVertexIndex (int32 index) const |
void | addEdge (FloorEdge *edge) |
Common::Array< FloorEdge * > | getEdges () const |
FloorEdge * | findNearestEdge (const Math::Vector3d &point) const |
Math::Vector3d | getCenter () const |
bool | hasVertices () const |
void | enable (bool enable) |
bool | isEnabled () const |
Public Member Functions inherited from Stark::Resources::Object | |
Type | getType () const |
byte | getSubType () const |
uint16 | getIndex () const |
Common::String | getIndexAsString () const |
Common::String | getName () const |
virtual void | saveLoad (ResourceSerializer *serializer) |
virtual void | saveLoadCurrent (ResourceSerializer *serializer) |
virtual void | onPostRead () |
virtual void | onEnterLocation () |
virtual void | onGameLoop () |
virtual void | onEnginePause (bool pause) |
virtual void | onExitLocation () |
virtual void | onPreDestroy () |
template<class T > | |
T * | findParent () |
Object * | findChildWithIndex (Type type, uint16 index, int subType=-1) const |
Object * | findChildWithOrder (Type type, uint16 order, int subType=-1) const |
Object * | findChildWithName (Type type, const Common::String &name, int subType=-1) const |
template<class T > | |
T * | findChild (bool mustBeUnique=true) const |
template<class T > | |
T * | findChildWithSubtype (int subType, bool mustBeUnique=true) const |
template<class T > | |
T * | findChildWithIndex (uint16 index, int subType=-1) const |
template<class T > | |
T * | findChildWithOrder (uint16 order, int subType=-1) const |
template<class T > | |
T * | findChildWithName (const Common::String &name, int subType=-1) const |
template<class T > | |
Common::Array< T * > | listChildren (int subType=-1) const |
template<class T > | |
Common::Array< T * > | listChildrenRecursive (int subType=-1) |
void | addChild (Object *child) |
virtual void | print (uint depth=0) |
template<> | |
Object * | cast (Object *resource) |
template<> | |
Object * | findParent () |
template<> | |
Common::Array< Object * > | listChildren (int subType) const |
Static Public Attributes | |
static const Type::ResourceType | TYPE = Type::kFloorFace |
Protected Member Functions | |
void | readData (Formats::XRCReadStream *stream) override |
void | printData () override |
Protected Member Functions inherited from Stark::Resources::Object | |
Object (Object *parent, byte subType, uint16 index, const Common::String &name) | |
void | printWithDepth (uint depth, const Common::String &string) const |
void | printDescription (uint depth) const |
Protected Attributes | |
int16 | _indices [3] |
Math::Vector3d | _vertices [3] |
Common::Array< FloorEdge * > | _edges |
float | _distanceFromCamera |
float | _unk2 |
Protected Attributes inherited from Stark::Resources::Object | |
Type | _type |
byte | _subType |
uint16 | _index |
Common::String | _name |
Object * | _parent |
Common::Array< Object * > | _children |
Additional Inherited Members | |
Static Public Member Functions inherited from Stark::Resources::Object | |
template<class T > | |
static T * | cast (Object *resource) |
A floor face is a 3D triangle used to build the floor
|
overridevirtual |
Called when the resource sub-tree is entirely loaded.
Allows to load data from other nodes.
Reimplemented from Stark::Resources::Object.
bool Stark::Resources::FloorFace::isPointInside | ( | const Math::Vector3d & | point | ) | const |
Return true if the point is inside the face when both are projected on a Z=0 plane
void Stark::Resources::FloorFace::computePointHeight | ( | Math::Vector3d & | point | ) | const |
Fill the z coordinate of the point so that it is on the plane
bool Stark::Resources::FloorFace::intersectRay | ( | const Math::Ray & | ray, |
Math::Vector3d & | intersection | ||
) | const |
Check if a ray is intersecting this face
origin | The ray's origin |
direction | The ray's direction |
intersection | The intersection between the ray and the face. Only valid when the return value is true. |
float Stark::Resources::FloorFace::distanceToRay | ( | const Math::Ray & | ray | ) | const |
Compute the distance between the face center and the ray
float Stark::Resources::FloorFace::getDistanceFromCamera | ( | ) | const |
Obtain the distance to the camera
int16 Stark::Resources::FloorFace::getVertexIndex | ( | int32 | index | ) | const |
Get one of the three vertex indices from the face
void Stark::Resources::FloorFace::addEdge | ( | FloorEdge * | edge | ) |
Add an edge to the triangle edge list
Common::Array<FloorEdge *> Stark::Resources::FloorFace::getEdges | ( | ) | const |
Get the triangle's edge list
FloorEdge* Stark::Resources::FloorFace::findNearestEdge | ( | const Math::Vector3d & | point | ) | const |
Find the edge closest to a point
Distance are compared using the middle point of each edge of the face
Math::Vector3d Stark::Resources::FloorFace::getCenter | ( | ) | const |
Get the point at the center of the face's triangle
bool Stark::Resources::FloorFace::hasVertices | ( | ) | const |
Checks if the face is non degenerate
void Stark::Resources::FloorFace::enable | ( | bool | enable | ) |
Allow or disallow characters to walk on this face
|
overrideprotectedvirtual |
Deserialize the resource static data and initial state.
Reimplemented from Stark::Resources::Object.