#include <path.h>
Public Types | |
enum | SubType { kPath2D = 1, kPath3D = 2 } |
Public Member Functions | |
Path (Object *parent, byte subType, uint16 index, const Common::String &name) | |
virtual void | readData (Formats::XRCReadStream *stream) override |
virtual uint | getEdgeCount () const =0 |
virtual Math::Vector3d | getEdgeDirection (uint edgeIndex) const |
virtual float | getSortKey () const |
float | getWeightedEdgeLength (uint edgeIndex) const |
Math::Vector3d | getWeightedPositionInEdge (uint edgeIndex, float positionInEdge) |
![]() | |
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 | onAllLoaded () |
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 Member Functions | |
static Object * | construct (Object *parent, byte subType, uint16 index, const Common::String &name) |
![]() | |
template<class T > | |
static T * | cast (Object *resource) |
Static Public Attributes | |
static const Type::ResourceType | TYPE = Type::kPath |
Protected Member Functions | |
void | printData () override |
float | getEdgeLength (uint edgeIndex) const |
virtual float | getVertexWeight (uint vertexIndex) const =0 |
virtual Math::Vector3d | getVertexPosition (uint vertexIndex) const =0 |
![]() | |
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 | |
uint32 | _field_30 |
![]() | |
Type | _type |
byte | _subType |
uint16 | _index |
Common::String | _name |
Object * | _parent |
Common::Array< Object * > | _children |
A path can be followed by an item in a location
Path are made of a list of vertices. Two consecutive vertices delimit an edge. Each vertex has a weight. A higher weight means a higher movement speed.
|
static |
Path factory
|
overridevirtual |
Deserialize the resource static data and initial state.
Reimplemented from Stark::Resources::Object.
Reimplemented in Stark::Resources::Path3D, and Stark::Resources::Path2D.
|
pure virtual |
Get the edge count in the path
Implemented in Stark::Resources::Path3D, and Stark::Resources::Path2D.
|
virtual |
Get a unit vector pointing in the direction of an edge
Only valid for 3D paths
Reimplemented in Stark::Resources::Path3D.
|
virtual |
Get the sort key to be used by the item following the path
Reimplemented in Stark::Resources::Path3D.
float Stark::Resources::Path::getWeightedEdgeLength | ( | uint | edgeIndex | ) | const |
Get an edge's length
Math::Vector3d Stark::Resources::Path::getWeightedPositionInEdge | ( | uint | edgeIndex, |
float | positionInEdge | ||
) |
Get the scene position from a position in an edge