Tizen Native API

A 3D parametric curve. More...

Inheritance diagram for Dali::Path:
Dali::Handle Dali::BaseHandle

Classes

struct  Property
 An enumeration of properties belonging to the Path class. More...

Public Member Functions

 Path ()
 Create an uninitialized Path handle.
 ~Path ()
 Destructor.
 Path (const Path &handle)
 This copy constructor is required for (smart) pointer semantics.
Pathoperator= (const Path &rhs)
 This assignment operator is required for (smart) pointer semantics.
void AddPoint (const Vector3 &point)
 Add an interpolation point.
void AddControlPoint (const Vector3 &point)
 Add a control point.
void GenerateControlPoints (float curvature)
 Automatic generation of control points. Generated control points which result in a smooth join between the splines of each segment.
void Sample (float progress, Vector3 &position, Vector3 &tangent) const
 Sample path at a given progress. Calculates position and tangent at that point of the curve.
Vector3GetPoint (size_t index)
 Accessor for the interpolation points.
Vector3GetControlPoint (size_t index)
 Accessor for the control points.
size_t GetPointCount () const
 Get the number of interpolation points in the path.

Static Public Member Functions

static Path New ()
 Create an initialized Path handle.
static Path DownCast (BaseHandle handle)
 Downcast a handle to Path handle.

Detailed Description

A 3D parametric curve.

Paths can be used to animate position and orientation of actors using Dali::Animate( Actor, Path, ... )

Since :
2.4

Constructor & Destructor Documentation

Create an uninitialized Path handle.

This can be initialized with Path::New(). Calling member functions with an uninitialized Path handle is not allowed.

Since :
2.4

Destructor.

This is non-virtual since derived Handle types must not contain data or virtual methods.

Since :
2.4
Dali::Path::Path ( const Path handle)

This copy constructor is required for (smart) pointer semantics.

Since :
2.4
Parameters:
[in]handleA reference to the copied handle

Member Function Documentation

void Dali::Path::AddControlPoint ( const Vector3 point)

Add a control point.

Since :
2.4
Parameters:
[in]pointThe new control point to be added
void Dali::Path::AddPoint ( const Vector3 point)

Add an interpolation point.

Since :
2.4
Parameters:
[in]pointThe new interpolation point to be added
static Path Dali::Path::DownCast ( BaseHandle  handle) [static]

Downcast a handle to Path handle.

If handle points to a Path object the downcast produces valid handle. If not the returned handle is left uninitialized.

Since :
2.4
Parameters:
[in]handleHandle to an object
Returns:
Handle to a Path object or an uninitialized handle

Reimplemented from Dali::Handle.

void Dali::Path::GenerateControlPoints ( float  curvature)

Automatic generation of control points. Generated control points which result in a smooth join between the splines of each segment.

The generating algorithm is as follows: For a given knot point K[N], find the vector that bisects K[N-1],[N] and [N],[N+1]. Calculate the tangent vector by taking the normal of this bisector. The in control point is the length of the preceding segment back along this bisector multiplied by the curvature. The out control point is the length of the succeeding segment forward along this bisector multiplied by the curvature.

Since :
2.4
Parameters:
[in]curvatureThe curvature of the spline. 0 gives straight lines between the knots, negative values means the spline contains loops, positive values up to 0.5 result in a smooth curve, positive values between 0.5 and 1 result in looped curves where the loops are not distinct (i.e. the curve appears to be non-continuous), positive values higher than 1 result in looped curves.
Precondition:
There are at least two points in the path ( one segment ).

Accessor for the control points.

Since :
2.4
Parameters:
[in]indexThe index of the control point.
Returns:
A reference to the control point.
Vector3& Dali::Path::GetPoint ( size_t  index)

Accessor for the interpolation points.

Since :
2.4
Parameters:
[in]indexThe index of the interpolation point.
Returns:
A reference to the interpolation point.
size_t Dali::Path::GetPointCount ( ) const

Get the number of interpolation points in the path.

Since :
2.4
Returns:
The number of interpolation points in the path
static Path Dali::Path::New ( ) [static]

Create an initialized Path handle.

Since :
2.4
Returns:
A handle to a newly allocated Dali resource.

Reimplemented from Dali::Handle.

Path& Dali::Path::operator= ( const Path rhs)

This assignment operator is required for (smart) pointer semantics.

Since :
2.4
Parameters:
[in]rhsA reference to the copied handle
Returns:
A reference to this
void Dali::Path::Sample ( float  progress,
Vector3 position,
Vector3 tangent 
) const

Sample path at a given progress. Calculates position and tangent at that point of the curve.

Since :
2.4
Parameters:
[in]progressA floating point value between 0.0 and 1.0.
[out]positionThe interpolated position at that progress.
[out]tangentThe interpolated tangent at that progress.