22 #ifndef STARK_RESOURCES_PATH_H 23 #define STARK_RESOURCES_PATH_H 25 #include "common/rect.h" 26 #include "math/vector3d.h" 27 #include "common/str.h" 29 #include "engines/stark/resources/object.h" 47 static const Type::ResourceType TYPE = Type::kPath;
64 virtual uint getEdgeCount()
const = 0;
71 virtual Math::Vector3d getEdgeDirection(uint edgeIndex)
const;
74 virtual float getSortKey()
const;
77 float getWeightedEdgeLength(uint edgeIndex)
const;
80 Math::Vector3d getWeightedPositionInEdge(uint edgeIndex,
float positionInEdge);
83 void printData()
override;
84 float getEdgeLength(uint edgeIndex)
const;
85 virtual float getVertexWeight(uint vertexIndex)
const = 0;
86 virtual Math::Vector3d getVertexPosition(uint vertexIndex)
const = 0;
109 uint getEdgeCount()
const override;
112 float getVertexWeight(uint vertexIndex)
const override;
113 Math::Vector3d getVertexPosition(uint vertexIndex)
const override;
117 void printData()
override;
132 Math::Vector3d position;
139 uint getEdgeCount()
const override;
140 float getSortKey()
const override;
141 Math::Vector3d getEdgeDirection(uint edgeIndex)
const override;
144 Math::Vector3d getVertexPosition3D(uint vertexIndex, int32 *faceIndex);
147 float getVertexWeight(uint vertexIndex)
const override;
148 Math::Vector3d getVertexPosition(uint vertexIndex)
const override;
152 void printData()
override;
161 #endif // STARK_RESOURCES_PATH_H