SplineMapperInterface Class Reference

#include <splinemapper.h>

Detailed Description

This is the interface for the SplineMapper data type. The data is reference-counted and a copy will automatically be created if a non-const function is called.

Public Member Functions

MAXON_METHOD Vector2d GetPoint (Float positionX) const
 
MAXON_METHOD void GetRange (Vector2d &min, Vector2d &max) const
 
MAXON_METHOD void SetRange (const Vector2d &min, const Vector2d &max)
 
MAXON_METHOD void AdaptRange (const Vector2d &min, const Vector2d &max)
 
MAXON_METHOD Float GetTension () const
 
MAXON_METHOD void SetTension (Float tension)
 
MAXON_METHOD Int GetKnotCount () const
 
MAXON_METHOD SplineMapperKnotGetKnot (Int knotIndex)
 
MAXON_METHOD Bool SetKnot (Int knotIndex, const SplineMapperKnot &knot)
 
MAXON_METHOD Result< void > InsertKnot (Int knotIndex, const SplineMapperKnot &knot)
 
MAXON_METHOD Result< IntInsertKnot (Float x, Float y, Int flags, Bool adaptTangents)
 
MAXON_METHOD Result< void > DeleteKnot (Int knotIndex)
 
MAXON_METHOD void DeleteAllKnots ()
 
const MAXON_METHOD BaseArray< SplineMapperKnot > & GetKnots () const
 
MAXON_METHOD BaseArray< SplineMapperKnot > * GetKnotsRW ()
 
MAXON_METHOD void SortKnots ()
 
MAXON_METHOD Vector2d ClampPosition (const Vector2d &position) const
 

Private Member Functions

 MAXON_INTERFACE_NONVIRTUAL (SplineMapperInterface, MAXON_REFERENCE_COPY_ON_WRITE, "net.maxon.interface.splinemapper")
 

Member Function Documentation

◆ MAXON_INTERFACE_NONVIRTUAL()

MAXON_INTERFACE_NONVIRTUAL ( SplineMapperInterface  ,
MAXON_REFERENCE_COPY_ON_WRITE  ,
"net.maxon.interface.splinemapper"   
)
private

◆ GetPoint()

MAXON_METHOD Vector2d GetPoint ( Float  positionX) const

Gets a point from its X coordinate. If out of range, the first or last spline knots will be returned.

Note
Make sure knots are sorted before calling this (
See also
SortKnots)
Parameters
[in]positionXThe X coordinate.
Returns
The retrieved position.

◆ GetRange()

MAXON_METHOD void GetRange ( Vector2d min,
Vector2d max 
) const

◆ SetRange()

MAXON_METHOD void SetRange ( const Vector2d min,
const Vector2d max 
)

◆ AdaptRange()

MAXON_METHOD void AdaptRange ( const Vector2d min,
const Vector2d max 
)

◆ GetTension()

MAXON_METHOD Float GetTension ( ) const

◆ SetTension()

MAXON_METHOD void SetTension ( Float  tension)

◆ GetKnotCount()

MAXON_METHOD Int GetKnotCount ( ) const

◆ GetKnot()

MAXON_METHOD SplineMapperKnot* GetKnot ( Int  knotIndex)

◆ SetKnot()

MAXON_METHOD Bool SetKnot ( Int  knotIndex,
const SplineMapperKnot knot 
)

◆ InsertKnot() [1/2]

MAXON_METHOD Result<void> InsertKnot ( Int  knotIndex,
const SplineMapperKnot knot 
)

Inserts a new knot at index position (0 <= position <= GetCount()).

Parameters
[in]knotIndexInsert index (the internal array size will increase and if (0 <= position < GetCount()), the existing elements are moved, but if (position == GetCount()), then element is appended to the end).
[in]knotThe knot to insert

◆ InsertKnot() [2/2]

MAXON_METHOD Result<Int> InsertKnot ( Float  x,
Float  y,
Int  flags,
Bool  adaptTangents 
)

◆ DeleteKnot()

MAXON_METHOD Result<void> DeleteKnot ( Int  knotIndex)

◆ DeleteAllKnots()

MAXON_METHOD void DeleteAllKnots ( )

◆ GetKnots()

const MAXON_METHOD BaseArray<SplineMapperKnot>& GetKnots ( ) const

Gets the internal array for read-only operations.

Returns
Reference to internal array.

◆ GetKnotsRW()

Gets the internal array for read/write operations.

Returns
Pointer to internal array. It's guaranteed to be valid.

◆ SortKnots()

MAXON_METHOD void SortKnots ( )

Sorts the knots by its position X. Call this when an new knot is added or if a knot postion X has been modified.

◆ ClampPosition()

MAXON_METHOD Vector2d ClampPosition ( const Vector2d position) const

Clamps a position to the defined range (

See also
GetRange(), SetRange()).
Parameters
[in]positionThe position.
Returns
The clamped position.