Trajectory defines a series of points following a geometrical path. More...
#include <kanzi/core.ui/resource/trajectory.hpp>
Public Types | |
enum | Type { SplineTrajectory, CircleTrajectory, LineTrajectory } |
Type of trajectory. More... | |
Public Types inherited from kanzi::PropertyObject | |
typedef PropertyStorageContainer::const_iterator | PropertyStorageConstIterator |
typedef vector< PropertyStoragePtr > | PropertyStorageContainer |
typedef PropertyStorageContainer::iterator | PropertyStorageIterator |
typedef intrusive_ptr< AbstractPropertyTypeDescriptor::PropertyStorage > | PropertyStoragePtr |
typedef PropertyStorageContainer::reverse_iterator | PropertyStorageReverseIterator |
Public Member Functions | |
SplinePtr | copySpline () const |
Gets a cloned copy of the spline in this trajectory. More... | |
float | getAngle () const |
Gets the angle of a circle trajectory in degrees. More... | |
Vector3 | getCircleNormal () const |
Gets the normal vector for the plane of the circle trajectory. More... | |
Vector3 | getCircleOrigin () const |
Gets the origin point of the circle trajectory. More... | |
float | getLength () const |
Gets the curve length of trajectory. More... | |
Vector3 | getLineDirection () const |
Gets the direction vector of the line trajectory. More... | |
Vector3 | getPointAbsolute (float lengthParameter) const |
Gets a point on a trajectory by using absolute coordinates ranging from 0.0f to the length of the trajectory. More... | |
Vector3 | getPointRelative (float phaseParameter) const |
Gets a point on the trajectory by using relative coordinates. More... | |
float | getRadius () const |
Gets the radius of a circle trajectory. More... | |
Type | getType () const |
Gets the type of the trajectory. More... | |
Vector3 | getVisualizationPoint (unsigned int pointIndex, unsigned int pointCount) const |
Gets a visualization point of the trajectory. More... | |
unsigned int | getVisualizationPointCount () const |
Gets the number of points recommended for visualizing the trajectory. More... | |
bool | isComplete () const |
Returns true if trajectory is complete and usable. More... | |
Vector3 | scalePoint (Vector3 point, const Matrix4x4 &transform, Vector3 scaling) const |
Gets point that is scaled along the line trajectory, otherwise returns the point multiplied by the given transformation matrix and scaling factor. More... | |
~Trajectory () override | |
Destructor for Trajectory. More... | |
Public Member Functions inherited from kanzi::Resource | |
virtual unsigned int | getCPUMemoryUsage () const |
Function for getting the memory usage of a resource. More... | |
const string & | getName () const |
Gets the resource name. More... | |
const string & | getUrl () const |
Gets the resource URL. More... | |
bool | isKeepAlive () const |
Tells if the resource has keep alive flag set. More... | |
void | reload () |
void | reloadFromFile (string_view filePath) |
void | reloadFromKzb (KzbFile &kzbFile, ReadOnlyMemoryFile &file, KzbMemoryParser &parser) |
void | setKeepAlive (bool keepAlive) |
Sets the keep alive flag. More... | |
void | setUrl (string_view url) |
Sets the resource URL. More... | |
~Resource () override | |
Destructor. More... | |
Public Member Functions inherited from kanzi::Object | |
AppliedStyleEntrySharedPtr | applyObjectStyle (kanzi::StyleSharedPtr style) |
Applies a style to an object. More... | |
void | applyObjectStyles () |
Apply all styles for an object node. More... | |
Domain * | getDomain () const |
Returns the domain the object belongs to. More... | |
const Metaclass * | getDynamicMetaclass () const override |
Returns the metaclass of the dynamic type of the object. More... | |
MainLoopScheduler * | getMainLoopScheduler () const |
Returns the MainLoopScheduler instance of the associated Domain. More... | |
detail::MessageDispatcher * | getMessageDispatcher () const |
Returns the message dispatcher of the object. More... | |
ResourceManager * | getResourceManager () const |
Returns the resource manager of the object. More... | |
ScriptingContextSharedPtr | getScriptingContext () const |
Gets the scripting context of the object. More... | |
Object (Domain *domain) | |
void | setScriptingContext (ScriptingContextSharedPtr context) |
Sets the scripting context of the object. More... | |
void | unapplyObjectStyle (AppliedStyleEntrySharedPtr appliedStyleEntry) |
void | unapplyObjectStyles () |
Unapplies and removes all applied styles. More... | |
~Object () override | |
Public Member Functions inherited from kanzi::MetaObject | |
bool | isTypeOf (const Metaclass *objectType) const |
Determines if the type of this object is the given type or derived from it. More... | |
virtual | ~MetaObject () |
Public Member Functions inherited from kanzi::PropertyObject | |
template<typename DataType > | |
void | addPropertyModifier (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::ModifierCallback callback, void *owner) |
template<typename DataType > | |
void | addPropertyModifierWithoutNotifyingHandlers (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::ModifierCallback callback, void *owner) |
Adds a property modifier without notifying handlers. More... | |
template<typename DataType > | |
void | addPropertyNotificationHandler (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::NotificationCallback callback, void *owner) |
template<typename DataType > | |
void | addPropertyValueSource (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::TypedValueSource *valueSource, PropertyValuePrecedence precedence, void *ownerPointer) |
template<typename DataType > | |
void | addPropertyValueSource (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::TypedValueSource *valueSource, PropertyValuePrecedence precedence, AbstractPropertyTypeDescriptor::ValueSourceOwner *owner) |
PropertyStorageContainer::iterator | beginPropertyStorage () |
Returns the begin iterator to the internal property storage container. More... | |
PropertyStorageContainer::const_iterator | beginPropertyStorage () const |
Returns the begin iterator to the internal property storage container. More... | |
void | clearPropertyFlag (AbstractPropertyType propertyType, uint32_t flag) |
void | copyLocalValue (const PropertyObject &other, AbstractPropertyType propertyType) |
Copies local value of single property from another object. More... | |
void | copyLocalValues (const PropertyObject &other) |
Copies all local values from another object. More... | |
PropertyStorageContainer::iterator | endPropertyStorage () |
Returns the end iterator to the internal property storage container. More... | |
PropertyStorageContainer::const_iterator | endPropertyStorage () const |
Returns the end iterator to the internal property storage container. More... | |
template<typename DataType > | |
PropertyType< DataType >::Traits::ReturnType | getAbstractProperty (AbstractPropertyType abstractPropertyType) const |
template<typename DataType > | |
PropertyType< DataType >::Traits::ReturnType | getAbstractPropertyBase (AbstractPropertyType abstractPropertyType) const |
template<typename DataType > | |
optional< typename PropertyType< DataType >::Traits::ReturnType > | getOptionalAbstractProperty (AbstractPropertyType abstractPropertyType) const |
template<typename DataType > | |
optional< typename PropertyType< DataType >::Traits::ReturnType > | getOptionalProperty (const PropertyType< DataType > &propertyType) const |
Evaluates the property value in the same way as the overload above but does not default to the value in property metadata if there are no inputs to the property value. More... | |
template<typename DataType > | |
optional< typename PropertyType< DataType >::Traits::ReturnType > | getOptionalPropertyBase (const PropertyType< DataType > &propertyType) const |
Returns the current value of a property disregarding modifiers, but does not default to the value in property metadata if there are no inputs to the property value. More... | |
template<typename DataType > | |
PropertyType< DataType >::Traits::ReturnType | getProperty (const PropertyType< DataType > &propertyType) const |
Returns the current value of a property type. More... | |
template<typename DataType > | |
PropertyType< DataType >::Traits::ReturnType | getPropertyBase (const PropertyType< DataType > &propertyType) const |
Returns the current value of a property disregarding modifiers. More... | |
template<typename DataType > | |
size_t | getPropertyNotificationHandlerCount (const PropertyType< DataType > &propertyType) const |
Gets number of current notification handlers for given property type. More... | |
bool | hasBaseValue (AbstractPropertyType propertyType) const |
Evaluates whether there are any inputs into the property value, disregarding modifiers. More... | |
bool | hasLocalValue (AbstractPropertyType propertyType) const |
Evaluates whether there is a local value set for the property. More... | |
bool | hasNonClassValue (AbstractPropertyType propertyType) const |
Evaluates whether there is a value of any precedence higher than class default value set for the property. More... | |
bool | hasValue (AbstractPropertyType propertyType) const |
Evaluates whether there are any inputs into the property value. More... | |
bool | isPropertyFlagSet (AbstractPropertyType propertyType, uint32_t flag) const |
virtual void | onPropertyChanged (AbstractPropertyType propertyType, PropertyNotificationReason reason) |
Virtual function to handle property change notifications. More... | |
PropertyObject () | |
void | removeKzbProperties (flat_set< AbstractPropertyType > *keepProperties) |
Remove all KZB properties that are not included in a given set. More... | |
void | removeKzbProperties () |
Remove all KZB properties. More... | |
template<typename DataType > | |
void | removeLocalPropertyValueSource (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::TypedValueSource *valueSource, void *ownerPointer) |
void | removeLocalValue (AbstractPropertyType propertyType) |
Removes the local value associated with the property. More... | |
template<typename DataType > | |
void | removePropertyModifier (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::ModifierCallback callback, void *owner) |
template<typename DataType > | |
void | removePropertyNotificationHandler (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::NotificationCallback callback, void *owner) |
template<typename DataType > | |
void | removePropertyValueSource (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::TypedValueSource *valueSource, void *ownerPointer) |
template<typename DataType > | |
void | setAbstractProperty (AbstractPropertyType abstractPropertyType, typename PropertyType< DataType >::Traits::ParameterType value) |
template<typename DataType > | |
void | setProperty (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Traits::ParameterType value) |
Sets the local value of a property type. More... | |
void | setPropertyFlag (AbstractPropertyType propertyType, uint32_t flag) |
KZ_DEPRECATED void | validatePropertyModifiers (AbstractPropertyType propertyType) |
Validates property modifiers and notifies handlers. More... | |
void | validatePropertyModifiersAndNotifyHandlers (AbstractPropertyType propertyType) |
Validates property modifiers and notifies handlers. More... | |
virtual | ~PropertyObject () |
Static Public Member Functions | |
static TrajectorySharedPtr | createCircle (Vector3 origin, Vector3 up, float angleInDegrees, float radius, kanzi::Domain *domain, string_view name) |
Creates a circle trajectory. More... | |
static Trajectory * | createEmpty (Domain *domain, string_view name) |
Creates a trajectory with no data. More... | |
static TrajectorySharedPtr | createLine (Vector3 origin, Vector3 direction, float length, kanzi::Domain *domain, string_view name) |
Creates a line trajectory. More... | |
static TrajectorySharedPtr | createSpline (SplinePtr spline, kanzi::Domain *domain, string_view name) |
Creates a spline trajectory. More... | |
static TrajectorySharedPtr | loadFromKZB (Domain *domain, string_view name, KzbFile &kzbFile, ReadOnlyMemoryFile &file, KzbMemoryParser &parser) |
Loads a trajectory from a file. More... | |
Static Public Member Functions inherited from kanzi::Object | |
static const Metaclass * | getStaticMetaclass () |
Returns the metaclass of Object class. More... | |
static PropertyTypeEditorInfoSharedPtr | makeEditorInfo () |
Default implementation that returns empty editor info. More... | |
Static Public Member Functions inherited from kanzi::MetaObject | |
static const Metaclass * | getStaticMetaclass () |
Returns the metaclass of Object class. More... | |
static PropertyTypeEditorInfoSharedPtr | makeEditorInfo () |
Default implementation that returns empty editor info. More... | |
Trajectory defines a series of points following a geometrical path.
For example, use a trajectory as align paths for 3d objects or animation paths. You can create trajectory as a spline, circle or line trajectory.
Create a circle trajectory and evaluate values from it.
Type of trajectory.
Enumerator | |
---|---|
SplineTrajectory |
Spline, a series of points. |
CircleTrajectory |
Circle. |
LineTrajectory |
Line. |
|
override |
Destructor for Trajectory.
|
static |
Creates a trajectory with no data.
domain | Domain. |
name | Name of trajectory. |
|
static |
Creates a circle trajectory.
origin | Origin of the circle trajectory. |
up | Normal vector for the plane where the circle exists. Kanzi internally normalizes the vector. |
angleInDegrees | Rotation angle of the circle trajectory in its plane, in degrees. |
radius | Radius of the circle. |
domain | Domain. |
name | Name of trajectory. |
|
static |
Creates a line trajectory.
origin | Origin of the line trajectory. |
direction | Direction vector for the line. Kanzi internally normalizes the direction. |
length | Length of the line. |
domain | The domain where to create the trajectory object. |
name | The name of the trajectory object. |
|
static |
SplinePtr kanzi::Trajectory::copySpline | ( | ) | const |
Gets a cloned copy of the spline in this trajectory.
Use this to get a new identical copy of the spline in spline trajectory.
Vector3 kanzi::Trajectory::getPointAbsolute | ( | float | lengthParameter | ) | const |
Gets a point on a trajectory by using absolute coordinates ranging from 0.0f to the length of the trajectory.
If the trajectory has a looping spline, Kanzi wraps around the trajectory the coordinates lower than 0.0f and higher than the length of the trajectory.
lengthParameter | Point on the trajectory. |
Vector3 kanzi::Trajectory::getPointRelative | ( | float | phaseParameter | ) | const |
Gets a point on the trajectory by using relative coordinates.
If the trajectory has a looping spline, Kanzi wraps around the trajectory the coordinates lower than 0.0f and higher than 1.0f.
phaseParameter | Point on the trajectory. 0.0f start, 1.0f end. |
float kanzi::Trajectory::getLength | ( | ) | const |
Gets the curve length of trajectory.
bool kanzi::Trajectory::isComplete | ( | ) | const |
Returns true if trajectory is complete and usable.
unsigned int kanzi::Trajectory::getVisualizationPointCount | ( | ) | const |
Gets the number of points recommended for visualizing the trajectory.
Vector3 kanzi::Trajectory::getVisualizationPoint | ( | unsigned int | pointIndex, |
unsigned int | pointCount | ||
) | const |
Gets a visualization point of the trajectory.
Type kanzi::Trajectory::getType | ( | ) | const |
Gets the type of the trajectory.
Use this method to find out whether the trajectory is a spline, line, or a circle trajectory.
float kanzi::Trajectory::getRadius | ( | ) | const |
Gets the radius of a circle trajectory.
Use this method to find out how big the radius of a circle trajectory is.
float kanzi::Trajectory::getAngle | ( | ) | const |
Gets the angle of a circle trajectory in degrees.
Use this method to find out how a circle trajectory is rotated.
Vector3 kanzi::Trajectory::getLineDirection | ( | ) | const |
Gets the direction vector of the line trajectory.
Use this method to see which direction a line trajectory is pointing towards.
Vector3 kanzi::Trajectory::getCircleNormal | ( | ) | const |
Gets the normal vector for the plane of the circle trajectory.
Use this method to see which direction the circle trajectory is facing.
Vector3 kanzi::Trajectory::getCircleOrigin | ( | ) | const |
Gets the origin point of the circle trajectory.
Use this method to see where the circle trajectory is located.
Vector3 kanzi::Trajectory::scalePoint | ( | Vector3 | point, |
const Matrix4x4 & | transform, | ||
Vector3 | scaling | ||
) | const |
Gets point that is scaled along the line trajectory, otherwise returns the point multiplied by the given transformation matrix and scaling factor.
Use this to place a point along the line trajectory, at given scaling factor.
point | Vector3 point to be scaled. |
transform | Matrix4x4 transformation matrix applied to the point. |
scaling | Vector3 scaling the point. |
|
static |
Loads a trajectory from a file.
Used internally by Kanzi Engine.
domain | Domain |
name | Name |
kzbFile | Kzb file from which to load the trajectory. |
file | Trajectory file inside the kzb file from which you load the trajectory. |
parser | Parser pointing to the beginning of the file. |
float kanzi::Trajectory::radius |
The spline of the trajectory. Radius of the circle.
float kanzi::Trajectory::angle |
The spline of the trajectory. Starting angle of the circle.
float kanzi::Trajectory::transform[16] |
The spline of the trajectory. Circle's transformation from unit circle in XY plane.
struct { ... } kanzi::Trajectory::circle |
float kanzi::Trajectory::length |
Length of the line.
float kanzi::Trajectory::origin[3] |
Origin of the line.
float kanzi::Trajectory::direction[3] |
Normalized direction of the line.
struct { ... } kanzi::Trajectory::line |