Kanzi Graphics Engine
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
kzu_trajectory.h File Reference

Trajectory. More...

Typedefs

typedef kzsError(* KzuTrajectoryLoadSplineCallback )(struct KzcInputStream *inputStream, void *userData, struct KzcSpline **out_spline)
 Function type definition for function that can load a spline reference from .KZB input stream. More...
 

Enumerations

enum  KzuTrajectoryType { KZU_TRAJECTORY_TYPE_SPLINE, KZU_TRAJECTORY_TYPE_CIRCLE, KZU_TRAJECTORY_TYPE_LINE }
 Type of trajectory. More...
 
enum  KzuTrajectoryInterpolationType { KZU_TRAJECTORY_INTERPOLATION_TYPE_LINEAR, KZU_TRAJECTORY_INTERPOLATION_TYPE_CATMULL_ROM, KZU_TRAJECTORY_INTERPOLATION_TYPE_HERMITE }
 Type of interpolation for spline trajectory. More...
 

Functions

kzsError kzuTrajectoryCreateEmpty (const struct KzcMemoryManager *memoryManager, const struct KzuUIDomain *uiDomain, kzString name, struct KzuTrajectory **out_trajectory)
 Creates a trajectory with no data. More...
 
kzsError kzuTrajectoryCreateCircle (const struct KzcMemoryManager *memoryManager, struct KzcVector3 origin, struct KzcVector3 up, kzFloat angleInDegrees, kzFloat radius, const struct KzuUIDomain *uiDomain, kzString name, struct KzuTrajectory **out_trajectory)
 Creates a circle trajectory. More...
 
kzsError kzuTrajectoryCreateLine (const struct KzcMemoryManager *memoryManager, struct KzcVector3 origin, struct KzcVector3 direction, kzFloat length, const struct KzuUIDomain *uiDomain, kzString name, struct KzuTrajectory **out_trajectory)
 Creates a line trajectory. More...
 
kzsError kzuTrajectoryCreateSpline (const struct KzcMemoryManager *memoryManager, struct KzcSpline *spline, const struct KzuUIDomain *uiDomain, kzString name, struct KzuTrajectory **out_trajectory)
 Creates a spline trajectory. More...
 
kzsError kzuTrajectoryDelete (struct KzuTrajectory *trajectory)
 Delete trajectory structure. More...
 
kzsError kzuTrajectoryLoadFromKZB (struct KzuTrajectory *trajectory, struct KzcInputStream *inputStream, const struct KzuBinaryFileInfo *file)
 Loads trajectory from KZB. More...
 
kzsError kzuTrajectoryGetPointAbsolute (const struct KzuTrajectory *trajectory, kzFloat lengthParameter, struct KzcVector3 *out_position)
 Gets a point on trajectory by using absolute coordinates ranging from 0.0 to trajectory length. More...
 
kzsError kzuTrajectoryGetPointRelative (const struct KzuTrajectory *trajectory, kzFloat phaseParameter, struct KzcVector3 *out_position)
 Gets a point on trajectory by using relative coordinates. More...
 
kzFloat kzuTrajectoryGetLength (const struct KzuTrajectory *trajectory)
 Gets length of trajectory. More...
 
kzBool kzuTrajectoryIsComplete (const struct KzuTrajectory *trajectory)
 Returns true if trajectory is complete and usable. More...
 
struct KzcSplinekzuTrajectoryGetSpline (const struct KzuTrajectory *trajectory)
 Returns spline in case of trajectory having the spline. More...
 
kzsError kzuTrajectoryGetVisualizationPointCount (const struct KzuTrajectory *trajectory, kzUint *out_pointCount)
 Gets the number of counts recommended for visualizing the trajectory. More...
 
kzsError kzuTrajectoryGetVisualizationPoint (const struct KzuTrajectory *trajectory, kzUint pointIndex, kzUint pointCount, struct KzcVector3 *out_point)
 Gets a visualization point of the trajectory. More...
 
struct KzuResourcekzuTrajectoryToResource (const struct KzuTrajectory *trajectory)
 Converts trajectory to resource. More...
 
struct KzuTrajectorykzuTrajectoryFromResource (const struct KzuResource *resource)
 Converts trajectory from resource. More...
 
struct KzuTrajectorykzuTrajectoryCastFromResource (const struct KzuResource *resource)
 Casts trajectory from resource, KZ_NULL if invalid type. More...
 
enum KzuTrajectoryType kzuTrajectoryGetType (const struct KzuTrajectory *trajectory)
 Return the type of the trajectory. More...
 
struct KzcVector3 kzuTrajectoryGetLineDirection (const struct KzuTrajectory *trajectory)
 Return direction vector of a line trajectory. More...
 

Variables

const KzuResourceType KZU_RESOURCE_TYPE_TRAJECTORY
 Resource type identifier for trajectory. More...
 

Detailed Description

Trajectory.

A path in 3d space.

Copyright 2008-2019 by Rightware. All rights reserved.

Typedef Documentation

typedef kzsError(* KzuTrajectoryLoadSplineCallback)(struct KzcInputStream *inputStream, void *userData, struct KzcSpline **out_spline)

Function type definition for function that can load a spline reference from .KZB input stream.

Enumeration Type Documentation

Type of trajectory.

Enumerator
KZU_TRAJECTORY_TYPE_SPLINE 

Series of points.

Spline.

KZU_TRAJECTORY_TYPE_CIRCLE 

Circle.

KZU_TRAJECTORY_TYPE_LINE 

Line.

Type of interpolation for spline trajectory.

Enumerator
KZU_TRAJECTORY_INTERPOLATION_TYPE_LINEAR 

Linear interpolation.

KZU_TRAJECTORY_INTERPOLATION_TYPE_CATMULL_ROM 

Catmull-Rom interpolation.

KZU_TRAJECTORY_INTERPOLATION_TYPE_HERMITE 

Hermite interpolation.

Function Documentation

kzsError kzuTrajectoryCreateEmpty ( const struct KzcMemoryManager memoryManager,
const struct KzuUIDomain uiDomain,
kzString  name,
struct KzuTrajectory **  out_trajectory 
)

Creates a trajectory with no data.

kzsError kzuTrajectoryCreateCircle ( const struct KzcMemoryManager memoryManager,
struct KzcVector3  origin,
struct KzcVector3  up,
kzFloat  angleInDegrees,
kzFloat  radius,
const struct KzuUIDomain uiDomain,
kzString  name,
struct KzuTrajectory **  out_trajectory 
)

Creates a circle trajectory.

Parameters
memoryManagerMemoryManager to allocate memory from.
originOrigin of the circle trajectory.
upNormal vector for the plane where the circle exists. The vector will be normalized internally.
angleRotation angle of the circle trajectory in its plane, in degrees.
radiusRadius of the circle.
kzsError kzuTrajectoryCreateLine ( const struct KzcMemoryManager memoryManager,
struct KzcVector3  origin,
struct KzcVector3  direction,
kzFloat  length,
const struct KzuUIDomain uiDomain,
kzString  name,
struct KzuTrajectory **  out_trajectory 
)

Creates a line trajectory.

Parameters
memoryManagerMemoryManager to allocate memory from
originOrigin of the line.
directionDirection vector for the line. Direction will be normalized internally.
lengthLength of the line.
kzsError kzuTrajectoryCreateSpline ( const struct KzcMemoryManager memoryManager,
struct KzcSpline spline,
const struct KzuUIDomain uiDomain,
kzString  name,
struct KzuTrajectory **  out_trajectory 
)

Creates a spline trajectory.

Parameters
memoryManagerMemoryManager to allocate memory from.
splineSpline structure to use as trajectory.
kzsError kzuTrajectoryDelete ( struct KzuTrajectory trajectory)

Delete trajectory structure.

kzsError kzuTrajectoryLoadFromKZB ( struct KzuTrajectory trajectory,
struct KzcInputStream inputStream,
const struct KzuBinaryFileInfo file 
)

Loads trajectory from KZB.

kzsError kzuTrajectoryGetPointAbsolute ( const struct KzuTrajectory trajectory,
kzFloat  lengthParameter,
struct KzcVector3 out_position 
)

Gets a point on trajectory by using absolute coordinates ranging from 0.0 to trajectory length.

Parameters
lengthParameterPoint on the trajectory.
kzsError kzuTrajectoryGetPointRelative ( const struct KzuTrajectory trajectory,
kzFloat  phaseParameter,
struct KzcVector3 out_position 
)

Gets a point on trajectory by using relative coordinates.

Parameters
phaseParameterPoint on the trajectory. 0.0f start, 1.0f end.
kzFloat kzuTrajectoryGetLength ( const struct KzuTrajectory trajectory)

Gets length of trajectory.

kzBool kzuTrajectoryIsComplete ( const struct KzuTrajectory trajectory)

Returns true if trajectory is complete and usable.

struct KzcSpline* kzuTrajectoryGetSpline ( const struct KzuTrajectory trajectory)

Returns spline in case of trajectory having the spline.

If type of the trajectory is not spline then NULL be returned.

kzsError kzuTrajectoryGetVisualizationPointCount ( const struct KzuTrajectory trajectory,
kzUint out_pointCount 
)

Gets the number of counts recommended for visualizing the trajectory.

kzsError kzuTrajectoryGetVisualizationPoint ( const struct KzuTrajectory trajectory,
kzUint  pointIndex,
kzUint  pointCount,
struct KzcVector3 out_point 
)

Gets a visualization point of the trajectory.

struct KzuResource* kzuTrajectoryToResource ( const struct KzuTrajectory trajectory)

Converts trajectory to resource.

struct KzuTrajectory* kzuTrajectoryFromResource ( const struct KzuResource resource)

Converts trajectory from resource.

struct KzuTrajectory* kzuTrajectoryCastFromResource ( const struct KzuResource resource)

Casts trajectory from resource, KZ_NULL if invalid type.

enum KzuTrajectoryType kzuTrajectoryGetType ( const struct KzuTrajectory trajectory)

Return the type of the trajectory.

struct KzcVector3 kzuTrajectoryGetLineDirection ( const struct KzuTrajectory trajectory)

Return direction vector of a line trajectory.

Variable Documentation

const KzuResourceType KZU_RESOURCE_TYPE_TRAJECTORY

Resource type identifier for trajectory.