This helper provides the next point in shape's relative position.
More...
|
ref array< vector > | m_aAnchorPoints |
| format [anchor0, anchor1, anchor2]
|
|
ref array< vector > | m_aTesselatedPoints |
| format [anchor0, pointA0, pointB0, anchor1, pointA1, pointB1, anchor2]
|
|
ref array< int > | m_aAnchorPointIndices |
| anchor indices in tesselated points
|
|
ref array< ref array< vector > > | m_aSegments |
| format [[segment0startPos, segment0endPos], [segment1startPos, segment1endPos]]
|
|
ref array< ref array< vector > > | m_aSections |
| format [[anchor0, tessPoint, tessPoint, anchor1], [anchor1, tessPoint, tessPoint, anchor2]]
|
|
int | m_iSegmentsCount |
| count of m_aSegments
|
|
int | m_iAnchorPointsCount |
| count of m_aAnchorPoints
|
|
int | m_iCurrentSectionIndex |
|
int | m_iCurrentSectionPointIndex |
|
int | m_iCurrentSegmentIndex |
|
vector | m_vCurrentPosition |
|
vector | m_vCurrentDirection |
|
float | m_fDoneLength |
|
float | m_fTotalLength |
|
This helper provides the next point in shape's relative position.
- anchor points = points that define the shape (the ones draggable in Workbench)
- tesselated points = all points of the shape (equals to anchor points for PolylineShapeEntity)
- section = anchor to anchor - 1 tesselated points; [anchorA, tessPoint, tessPoint], [anchorB, tessPoint, tessPoint], etc
- segment = straight line between two tesselated points
- section point index = pointJ <= position < pointK = pointJ
◆ SCR_ShapeNextPointHelper()
void SCR_ShapeNextPointHelper.SCR_ShapeNextPointHelper |
( |
| ) |
|
|
protected |
protected constructor - use CreateFrom* methods
◆ CalculateCurrentSegmentIndex()
float SCR_ShapeNextPointHelper.CalculateCurrentSegmentIndex |
( |
| ) |
|
|
protected |
◆ CalculateDoneLength()
float SCR_ShapeNextPointHelper.CalculateDoneLength |
( |
| ) |
|
|
protected |
◆ CreateFromPoints()
static SCR_ShapeNextPointHelper SCR_ShapeNextPointHelper.CreateFromPoints |
( |
notnull array< vector > | anchorPoints, |
|
|
notnull array< vector > | tesselatedPoints ) |
|
static |
- Parameters
-
[in] | anchorPoints | shape's anchor points |
[in] | tesselatedPoints | shape's tesselated points |
- Returns
- a new instance or null on error (not enough points, anchor points not present in tesselated points, etc)
◆ CreateFromShape()
static SCR_ShapeNextPointHelper SCR_ShapeNextPointHelper.CreateFromShape |
( |
notnull ShapeEntity | shapeEntity, |
|
|
bool | reverse = false ) |
|
static |
- Parameters
-
[in] | shapeEntity | |
[in] | reverse | invert shape direction (from end to start instead of from start to end) |
- Returns
◆ GetAnchorPointIndices()
array< int > SCR_ShapeNextPointHelper.GetAnchorPointIndices |
( |
| ) |
|
- Returns
- anchor point tesselated indices
◆ GetAnchorPoints()
array< vector > SCR_ShapeNextPointHelper.GetAnchorPoints |
( |
| ) |
|
- Returns
- anchor points in shape's relative coordinates
◆ GetCurrentDirection()
vector SCR_ShapeNextPointHelper.GetCurrentDirection |
( |
| ) |
|
- Returns
- the normalised direction of the current position
◆ GetCurrentPosition()
vector SCR_ShapeNextPointHelper.GetCurrentPosition |
( |
| ) |
|
◆ GetDoneShapeLength()
float SCR_ShapeNextPointHelper.GetDoneShapeLength |
( |
| ) |
|
◆ GetNextPoint()
bool SCR_ShapeNextPointHelper.GetNextPoint |
( |
float | distance, |
|
|
out vector | result, |
|
|
int | anchorLimit = -1, |
|
|
bool | straightLine = true, |
|
|
bool | doNotMove = false, |
|
|
bool | xzMode = false ) |
Get the next point from the current position, but without going over the provided anchor index.
- Parameters
-
[in] | distance | |
[out] | result | the requested point |
[in] | anchorLimit | 0-based anchor index before which the point must be found; -1 for no limit |
[in] | straightLine | [NOT IMPLEMENTED, straight line only] if true, find in straight line distance; if false, finds in shape length (following the shape) |
[in] | doNotMove | if true, get the next point without internally moving (next Get will start from the previous position) |
[in] | xzMode | look for a 2D distance from the existing point |
- Returns
- true on success, false on failure
◆ GetRemainingShapeLength()
float SCR_ShapeNextPointHelper.GetRemainingShapeLength |
( |
| ) |
|
◆ GetShapeDistanceToNextAnchor()
float SCR_ShapeNextPointHelper.GetShapeDistanceToNextAnchor |
( |
| ) |
|
|
protected |
- Returns
- shape distance (following curve) from the current point to the next anchor
◆ GetShapeLength()
float SCR_ShapeNextPointHelper.GetShapeLength |
( |
| ) |
|
◆ GetStraightDistanceToNextAnchor()
float SCR_ShapeNextPointHelper.GetStraightDistanceToNextAnchor |
( |
| ) |
|
- Returns
- straight distance (not following curve) from the current point to the next anchor
◆ GetTesselatedPoints()
array< vector > SCR_ShapeNextPointHelper.GetTesselatedPoints |
( |
| ) |
|
- Returns
- tesselated points in shape's relative coordinates
◆ IsValid()
bool SCR_ShapeNextPointHelper.IsValid |
( |
| ) |
|
- Returns
- true if the provided shape is valid (more than one point and with some length), false otherwise
◆ Reset()
void SCR_ShapeNextPointHelper.Reset |
( |
| ) |
|
◆ SetOnAnchor()
bool SCR_ShapeNextPointHelper.SetOnAnchor |
( |
int | anchorIndex | ) |
|
Sets to the provided anchor's position.
- Parameters
-
[in] | anchorIndex | the index of the anchor - while useless, it is possible to set it to the last point |
- Returns
- true on success, false on failure
◆ m_aAnchorPointIndices
ref array<int> SCR_ShapeNextPointHelper.m_aAnchorPointIndices |
|
protected |
anchor indices in tesselated points
◆ m_aAnchorPoints
ref array<vector> SCR_ShapeNextPointHelper.m_aAnchorPoints |
|
protected |
format [anchor0, anchor1, anchor2]
◆ m_aSections
ref array<ref array<vector> > SCR_ShapeNextPointHelper.m_aSections |
|
protected |
format [[anchor0, tessPoint, tessPoint, anchor1], [anchor1, tessPoint, tessPoint, anchor2]]
◆ m_aSegments
ref array<ref array<vector> > SCR_ShapeNextPointHelper.m_aSegments |
|
protected |
format [[segment0startPos, segment0endPos], [segment1startPos, segment1endPos]]
◆ m_aTesselatedPoints
ref array<vector> SCR_ShapeNextPointHelper.m_aTesselatedPoints |
|
protected |
format [anchor0, pointA0, pointB0, anchor1, pointA1, pointB1, anchor2]
◆ m_fDoneLength
float SCR_ShapeNextPointHelper.m_fDoneLength |
|
protected |
◆ m_fTotalLength
float SCR_ShapeNextPointHelper.m_fTotalLength |
|
protected |
◆ m_iAnchorPointsCount
int SCR_ShapeNextPointHelper.m_iAnchorPointsCount |
|
protected |
◆ m_iCurrentSectionIndex
int SCR_ShapeNextPointHelper.m_iCurrentSectionIndex |
|
protected |
◆ m_iCurrentSectionPointIndex
int SCR_ShapeNextPointHelper.m_iCurrentSectionPointIndex |
|
protected |
◆ m_iCurrentSegmentIndex
int SCR_ShapeNextPointHelper.m_iCurrentSegmentIndex |
|
protected |
◆ m_iSegmentsCount
int SCR_ShapeNextPointHelper.m_iSegmentsCount |
|
protected |
◆ m_vCurrentDirection
vector SCR_ShapeNextPointHelper.m_vCurrentDirection |
|
protected |
◆ m_vCurrentPosition
vector SCR_ShapeNextPointHelper.m_vCurrentPosition |
|
protected |
The documentation for this interface was generated from the following file:
- Game/Generators/Common/SCR_ShapeNextPointHelper.c