ScummVM API documentation
Stark::Resources::Path Class Referenceabstract

#include <path.h>

Inheritance diagram for Stark::Resources::Path:
Stark::Resources::Object Stark::Resources::Path2D Stark::Resources::Path3D

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)
 
- 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 onAllLoaded ()
 
virtual void onEnterLocation ()
 
virtual void onGameLoop ()
 
virtual void onEnginePause (bool pause)
 
virtual void onExitLocation ()
 
virtual void onPreDestroy ()
 
template<class T >
T * findParent ()
 
ObjectfindChildWithIndex (Type type, uint16 index, int subType=-1) const
 
ObjectfindChildWithOrder (Type type, uint16 order, int subType=-1) const
 
ObjectfindChildWithName (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<>
Objectcast (Object *resource)
 
template<>
ObjectfindParent ()
 
template<>
Common::Array< Object * > listChildren (int subType) const
 

Static Public Member Functions

static Objectconstruct (Object *parent, byte subType, uint16 index, const Common::String &name)
 
- Static Public Member Functions inherited from Stark::Resources::Object
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
 
- 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

uint32 _field_30
 
- Protected Attributes inherited from Stark::Resources::Object
Type _type
 
byte _subType
 
uint16 _index
 
Common::String _name
 
Object_parent
 
Common::Array< Object * > _children
 

Detailed Description

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.

Member Function Documentation

◆ construct()

static Object* Stark::Resources::Path::construct ( Object parent,
byte  subType,
uint16  index,
const Common::String name 
)
static

Path factory

◆ readData()

virtual void Stark::Resources::Path::readData ( Formats::XRCReadStream stream)
overridevirtual

Deserialize the resource static data and initial state.

Reimplemented from Stark::Resources::Object.

Reimplemented in Stark::Resources::Path3D, and Stark::Resources::Path2D.

◆ getEdgeCount()

virtual uint Stark::Resources::Path::getEdgeCount ( ) const
pure virtual

Get the edge count in the path

Implemented in Stark::Resources::Path3D, and Stark::Resources::Path2D.

◆ getEdgeDirection()

virtual Math::Vector3d Stark::Resources::Path::getEdgeDirection ( uint  edgeIndex) const
virtual

Get a unit vector pointing in the direction of an edge

Only valid for 3D paths

Reimplemented in Stark::Resources::Path3D.

◆ getSortKey()

virtual float Stark::Resources::Path::getSortKey ( ) const
virtual

Get the sort key to be used by the item following the path

Reimplemented in Stark::Resources::Path3D.

◆ getWeightedEdgeLength()

float Stark::Resources::Path::getWeightedEdgeLength ( uint  edgeIndex) const

Get an edge's length

◆ getWeightedPositionInEdge()

Math::Vector3d Stark::Resources::Path::getWeightedPositionInEdge ( uint  edgeIndex,
float  positionInEdge 
)

Get the scene position from a position in an edge


The documentation for this class was generated from the following file: