Struct Binary
Memory-ready runtime asset that contains the animation library and supplementary information required by the Kinematica runtime.
Namespace: Unity.Kinematica
Syntax
public struct Binary
Remarks
Kinematica strictly distinguishes between the editor and runtime asset. The asset builder in the Unity editor generates the runtime asset from from the editor asset. Conceptionally both representations are identical. The runtime asset contains additional acceleration structures.
Properties
numCodeBooks
Returns the number of code books stored in the runtime asset.
Declaration
public int numCodeBooks { get; }
Property Value
Type | Description |
---|---|
Int32 |
See Also
numIntervals
Returns the number of intervals stored in the runtime asset.
Declaration
public int numIntervals { get; }
Property Value
Type | Description |
---|---|
Int32 |
See Also
numJoints
Returns the number of animation rig joints.
Declaration
public int numJoints { get; }
Property Value
Type | Description |
---|---|
Int32 |
numMarkers
Returns the number of markers stored in the runtime asset.
Declaration
public int numMarkers { get; }
Property Value
Type | Description |
---|---|
Int32 |
See Also
numPoses
Returns the number of individual animation poses stored in the runtime asset.
Declaration
public int numPoses { get; }
Property Value
Type | Description |
---|---|
Int32 |
numSegments
Returns the number of segments stored in the runtime asset.
Declaration
public int numSegments { get; }
Property Value
Type | Description |
---|---|
Int32 |
See Also
numTagLists
Returns the number of tag lists stored in the runtime asset.
Declaration
public int numTagLists { get; }
Property Value
Type | Description |
---|---|
Int32 |
See Also
numTags
Returns the number of tags stored in the runtime asset.
Declaration
public int numTags { get; }
Property Value
Type | Description |
---|---|
Int32 |
See Also
numTraits
Returns the number of traits stored in the runtime asset.
Declaration
public int numTraits { get; }
Property Value
Type | Description |
---|---|
Int32 |
See Also
SampleRate
Returns the sample rate as number of samples per second.
Declaration
public float SampleRate { get; }
Property Value
Type | Description |
---|---|
Single |
TimeHorizon
Time horizon in seconds.
Declaration
public float TimeHorizon { get; }
Property Value
Type | Description |
---|---|
Single |
Remarks
The time horizon is a glocal setting that is used for trajectory matching.
See Also
Methods
Advance(SamplingTime, Single)
Advances a sampling time by a certain amount of time.
Declaration
public DeltaSamplingTime Advance(SamplingTime samplingTime, float deltaTime)
Parameters
Type | Name | Description |
---|---|---|
SamplingTime | samplingTime | The reference time to advance from. |
Single | deltaTime | The time increment to advance by in seconds. |
Returns
Type | Description |
---|---|
DeltaSamplingTime | The resulting sampling time. |
Remarks
This method advances a starting time by a certain amount of time.
It is valid to pass a negative delta time in order to step backward in time.
The resulting time can belong to a different segment if boundary clips have been configured for the segment that the initial time belongs to.
The resulting new sampling time will be clamped at segment boundaries if no boundary clips have been defined for the segment that the initial time belongs to.
Contains(ref Binary.TagList, Binary.TraitIndex)
Checks if a given trait belongs to a given trait list.
Declaration
public bool Contains(ref Binary.TagList tagList, Binary.TraitIndex traitIndex)
Parameters
Type | Name | Description |
---|---|---|
Binary.TagList | tagList | The tag list to check against. |
Binary.TraitIndex | traitIndex | The trait to check for. |
Returns
Type | Description |
---|---|
Boolean | True if the given trait belongs to the trait list, false otherwise. |
Contains(Binary.TagListIndex, Binary.TraitIndex)
Checks if a given trait belongs to a given trait list.
Declaration
public bool Contains(Binary.TagListIndex tagListIndex, Binary.TraitIndex traitIndex)
Parameters
Type | Name | Description |
---|---|---|
Binary.TagListIndex | tagListIndex | The tag list to check against. |
Binary.TraitIndex | traitIndex | The trait to check for. |
Returns
Type | Description |
---|---|
Boolean | True if the given trait belongs to the trait list, false otherwise. |
CreatePoseFragment(Binary.MetricIndex, SamplingTime)
Create a pose fragment from a sampling time.
Declaration
public Binary.PoseFragment CreatePoseFragment(Binary.MetricIndex metricIndex, SamplingTime samplingTime)
Parameters
Type | Name | Description |
---|---|---|
Binary.MetricIndex | metricIndex | The metric defining the pose fragment layout. |
SamplingTime | samplingTime | The sampling time that the pose fragment should be created for. |
Returns
Type | Description |
---|---|
Binary.PoseFragment | The resulting pose fragment. |
CreateTrajectoryFragment(Binary.MetricIndex, MemoryArray<AffineTransform>)
Creates a trajectory fragment from sequence of root transforms.
Declaration
public Binary.TrajectoryFragment CreateTrajectoryFragment(Binary.MetricIndex metricIndex, MemoryArray<AffineTransform> trajectory)
Parameters
Type | Name | Description |
---|---|---|
Binary.MetricIndex | metricIndex | The metric defining the trajectory fragment layout. |
MemoryArray<AffineTransform> | trajectory | Sequence of root transforms in character space. |
Returns
Type | Description |
---|---|
Binary.TrajectoryFragment | The resulting trajectory fragment. |
Remarks
The root transforms passed as argument are expected to be relative to the world origin, i.e. in character space.
CreateTrajectoryFragment(Binary.MetricIndex, SamplingTime)
Creates a trajectory fragment from a sampling time.
Declaration
public Binary.TrajectoryFragment CreateTrajectoryFragment(Binary.MetricIndex metricIndex, SamplingTime samplingTime)
Parameters
Type | Name | Description |
---|---|---|
Binary.MetricIndex | metricIndex | The metric defining the trajectory fragment layout. |
SamplingTime | samplingTime | The sampling time that the trajectory fragment should be created for. |
Returns
Type | Description |
---|---|
Binary.TrajectoryFragment | The resulting trajectory fragment. |
DebugDrawPoseWorldSpace(AffineTransform, Int32, Color)
Debug visualization for animation poses.
Declaration
public void DebugDrawPoseWorldSpace(AffineTransform rootTransform, int poseIndex, Color color)
Parameters
Type | Name | Description |
---|---|---|
AffineTransform | rootTransform | A world space transform that determines the position and orientation of the animation pose. |
Int32 | poseIndex | The pose index for which the root transform is to be retrieved. |
Color | color | The color that the pose should be drawn with. |
DebugDrawPoseWorldSpace(AffineTransform, Single, Color)
Debug visualization for animation poses.
Declaration
public void DebugDrawPoseWorldSpace(AffineTransform rootTransform, float sampleTimeInSeconds, Color color)
Parameters
Type | Name | Description |
---|---|---|
AffineTransform | rootTransform | A world space transform that determines the position and orientation of the animation pose. |
Single | sampleTimeInSeconds | A time in seconds that determines the animation pose. |
Color | color | The color that the pose should be drawn with. |
DebugDrawPoseWorldSpace(AffineTransform, SamplingTime, Color)
Debug visualization for animation poses.
Declaration
public void DebugDrawPoseWorldSpace(AffineTransform rootTransform, SamplingTime samplingTime, Color color)
Parameters
Type | Name | Description |
---|---|---|
AffineTransform | rootTransform | A world space transform that determines the position and orientation of the animation pose. |
SamplingTime | samplingTime | A sampling time that determines the animation pose. |
Color | color | The color that the pose should be drawn with. |
DebugDrawTrajectory(AffineTransform, Int32, Int32, Color)
Debug visualization for trajectories.
Declaration
public void DebugDrawTrajectory(AffineTransform referenceTransform, int poseIndex, int numFrames, Color color)
Parameters
Type | Name | Description |
---|---|---|
AffineTransform | referenceTransform | A world space transform that determines the anchor that is to be used for the trajectory visualization. |
Int32 | poseIndex | A pose index that determines where the trajectory should start. |
Int32 | numFrames | A duration in frames that determines the length of the trajectory. |
Color | color | The color that the trajectory should be drawn with. |
DebugDrawTrajectory(AffineTransform, Single, Single, Color)
Debug visualization for trajectories.
Declaration
public AffineTransform DebugDrawTrajectory(AffineTransform referenceTransform, float sampleTimeInSeconds, float duration, Color color)
Parameters
Type | Name | Description |
---|---|---|
AffineTransform | referenceTransform | A world space transform that determines the anchor that is to be used for the trajectory visualization. |
Single | sampleTimeInSeconds | A time in seconds that determines where the trajectory should start. |
Single | duration | A duration in seconds that determines the length of the trajectory. |
Color | color | The color that the trajectory should be drawn with. |
Returns
Type | Description |
---|---|
AffineTransform |
DebugDrawTrajectory(AffineTransform, SamplingTime, Single, Color)
Debug visualization for trajectories.
Declaration
public void DebugDrawTrajectory(AffineTransform anchorTransform, SamplingTime samplingTime, float timeHorizon, Color color)
Parameters
Type | Name | Description |
---|---|---|
AffineTransform | anchorTransform | A world space transform that determines the anchor that is to be used for the trajectory visualization. |
SamplingTime | samplingTime | A sampling time that determines where the trajectory should start. |
Single | timeHorizon | A duration in seconds that determines the length of the trajectory. |
Color | color | The color that the trajectory should be drawn with. |
DebugDrawTransform(AffineTransform, Single, Single)
Debug visualization for transforms, i.e. a position and rotation.
Declaration
public static void DebugDrawTransform(AffineTransform transform, float scale, float alpha = 1F)
Parameters
Type | Name | Description |
---|---|---|
AffineTransform | transform | The transforms that should be displayed. |
Single | scale | A scale that determines the length of the rotation axis of the transform. |
Single | alpha | An color alpha value that is to be used for the rotation axis display. |
GetCodeBook(Binary.CodeBookIndex)
Retrieves a reference to a codebook stored in the runtime asset.
Declaration
public Binary.CodeBook GetCodeBook(Binary.CodeBookIndex index)
Parameters
Type | Name | Description |
---|---|---|
Binary.CodeBookIndex | index | The codebook index to retrieve the reference for. |
Returns
Type | Description |
---|---|
Binary.CodeBook | Codebook reference that corresponds to the index passed as argument. |
GetCodeBookAt(TimeIndex)
Returns a codebook index for a time index.
Declaration
public Binary.CodeBookIndex GetCodeBookAt(TimeIndex timeIndex)
Parameters
Type | Name | Description |
---|---|---|
TimeIndex | timeIndex | The time index for which the codebook index should be retrieved. |
Returns
Type | Description |
---|---|
Binary.CodeBookIndex | Codebook index that corresponds to the time index passed as argument. |
Remarks
Tags define whether or not pose and trajectory fragments should be created for the animation frames they span. Given a time index this method performs a lookup to determine which codebook this time belongs to. This in turn gives access to the fragments that correspond to the time index.
GetCodeBookFragmentIndex(ref Binary.CodeBook, TimeIndex)
Retrieve fragment index inside codebook that is associated to a time index
Declaration
public int GetCodeBookFragmentIndex(ref Binary.CodeBook codeBook, TimeIndex timeIndex)
Parameters
Type | Name | Description |
---|---|---|
Binary.CodeBook | codeBook | |
TimeIndex | timeIndex |
Returns
Type | Description |
---|---|
Int32 | Returns -1 if the time index isn't covered by the codebook |
GetInterval(Binary.IntervalIndex)
Retrieves a reference to an interval stored in the runtime asset.
Declaration
public Binary.Interval GetInterval(Binary.IntervalIndex intervalIndex)
Parameters
Type | Name | Description |
---|---|---|
Binary.IntervalIndex | intervalIndex | The interval index to retrieve the reference for. |
Returns
Type | Description |
---|---|
Binary.Interval | Interval reference that corresponds to the index passed as argument. |
GetMarker(Binary.MarkerIndex)
Retrieves a reference to a marker stored in the runtime asset.
Declaration
public Binary.Marker GetMarker(Binary.MarkerIndex index)
Parameters
Type | Name | Description |
---|---|---|
Binary.MarkerIndex | index | The marker index to retrieve the reference for. |
Returns
Type | Description |
---|---|
Binary.Marker | Marker reference that corresponds to the index passed as argument. |
GetPayload<T>(Int32)
Retrieves a reference to a payload stored in the runtime asset.
Declaration
public T GetPayload<T>(int payload)
where T : struct
Parameters
Type | Name | Description |
---|---|---|
Int32 | payload | Identifies the payload that should be retrieved. |
Returns
Type | Description |
---|---|
T | Reference to the payload that corresponds to the index passed as argument. |
Type Parameters
Name | Description |
---|---|
T |
GetPayload<T>(Binary.TraitIndex)
Retrieves the associated payload (i.e. the instance of the user-defined value) for a given trait index.
Declaration
public T GetPayload<T>(Binary.TraitIndex traitIndex)
where T : struct
Parameters
Type | Name | Description |
---|---|---|
Binary.TraitIndex | traitIndex | The trait index for which the corresponding payload is to be retrieved. |
Returns
Type | Description |
---|---|
T | Reference to the user-defined value that corresponds to the trait index passed as argument. |
Type Parameters
Name | Description |
---|---|
T |
GetSegment(Binary.SegmentIndex)
Retrieves a reference to a segment stored in the runtime asset.
Declaration
public Binary.Segment GetSegment(Binary.SegmentIndex index)
Parameters
Type | Name | Description |
---|---|---|
Binary.SegmentIndex | index | The segment index to retrieve the reference for. |
Returns
Type | Description |
---|---|
Binary.Segment | Segment reference that corresponds to the index passed as argument. |
GetString(Int32)
Retrieves a string that corresponds to the index passed as argument.
Declaration
public string GetString(int index)
Parameters
Type | Name | Description |
---|---|---|
Int32 | index | Index that identifies the string to be retrieved. |
Returns
Type | Description |
---|---|
String | A string that corresponds to the contents identified by the index passed as argument. |
GetTag(Binary.TagIndex)
Retrieves a reference to a tag stored in the runtime asset.
Declaration
public Binary.Tag GetTag(Binary.TagIndex tagIndex)
Parameters
Type | Name | Description |
---|---|---|
Binary.TagIndex | tagIndex | The tag index to retrieve the reference for. |
Returns
Type | Description |
---|---|
Binary.Tag | Tag reference that corresponds to the index passed as argument. |
GetTagIndex(ref Binary.TagList, Int32)
Returns the tag index from the tag list at given index
Declaration
public Binary.TagIndex GetTagIndex(ref Binary.TagList tagList, int index)
Parameters
Type | Name | Description |
---|---|---|
Binary.TagList | tagList | List of tag indices |
Int32 | index | Index of tag index in the list |
Returns
Type | Description |
---|---|
Binary.TagIndex |
GetTagList(Binary.TagListIndex)
Retrieves a tag list given a tag list index from the runtime asset.
Declaration
public Binary.TagList GetTagList(Binary.TagListIndex tagListIndex)
Parameters
Type | Name | Description |
---|---|---|
Binary.TagListIndex | tagListIndex | The tag list index. |
Returns
Type | Description |
---|---|
Binary.TagList | Reference to the corresponding tag list for the index passed as argument. |
GetTrait(Binary.TraitIndex)
Retrieves a reference to a trait stored in the runtime asset.
Declaration
public Binary.Trait GetTrait(Binary.TraitIndex traitIndex)
Parameters
Type | Name | Description |
---|---|---|
Binary.TraitIndex | traitIndex | The trait index to retrieve the reference for. |
Returns
Type | Description |
---|---|
Binary.Trait | Trait reference that corresponds to the index passed as argument. |
GetTraitIndex<T>(T)
Converts a value to a trait index.
Declaration
public Binary.TraitIndex GetTraitIndex<T>(T value)
where T : struct
Parameters
Type | Name | Description |
---|---|---|
T | value | The value to be converted to a trait index. |
Returns
Type | Description |
---|---|
Binary.TraitIndex | The trait index that corresponds to the value passed as argument. |
Type Parameters
Name | Description |
---|---|
T |
Remarks
var traitIndex =
binary.GetTraitIndex(
Climbing.Create(Climbing.Type.Wall));
GetTrajectoryTransform(Int32)
Retrieves the root transform for an animation frame.
Declaration
public AffineTransform GetTrajectoryTransform(int poseIndex)
Parameters
Type | Name | Description |
---|---|---|
Int32 | poseIndex | The pose index for which the root transform is to be retrieved. |
Returns
Type | Description |
---|---|
AffineTransform | The root transform that corresponds to the pose index passed as argument. |
GetTrajectoryTransform(Single)
Retrieves the root transform for a sample time in seconds.
Declaration
public AffineTransform GetTrajectoryTransform(float sampleTimeInSeconds)
Parameters
Type | Name | Description |
---|---|---|
Single | sampleTimeInSeconds | The sample time in seconds for which the root transform is to be retrieved. |
Returns
Type | Description |
---|---|
AffineTransform | The root transform that corresponds to the sample time passed as argument. |
GetTrajectoryTransform(DeltaSamplingTime)
Retrieves the root transform displacement for a delta sampling time.
Declaration
public AffineTransform GetTrajectoryTransform(DeltaSamplingTime deltaTime)
Parameters
Type | Name | Description |
---|---|---|
DeltaSamplingTime | deltaTime | The delta time for which the root transform is to be retrieved. |
Returns
Type | Description |
---|---|
AffineTransform | The root transform that corresponds to the delta sampling time passed as argument. |
GetTrajectoryTransform(SamplingTime)
Retrieves the root transform for a sampling time.
Declaration
public AffineTransform GetTrajectoryTransform(SamplingTime samplingTime)
Parameters
Type | Name | Description |
---|---|---|
SamplingTime | samplingTime | The sampling time for which the root transform is to be retrieved. |
Returns
Type | Description |
---|---|
AffineTransform | The root transform that corresponds to the sampling time passed as argument. |
GetTrajectoryTransformBetween(Int32, Int32)
Calculates the relative root transform displacement between a frame and an offset.
Declaration
public AffineTransform GetTrajectoryTransformBetween(int poseIndex, int offset)
Parameters
Type | Name | Description |
---|---|---|
Int32 | poseIndex | The reference frame for which the relative root transform should be calculated. |
Int32 | offset | An offset in frames that determines the number of frames that the relative root transform should span. |
Returns
Type | Description |
---|---|
AffineTransform | The relative root transform between a reference and offset frame passed as argument. |
GetTrajectoryTransformBetween(SamplingTime, Single)
Calculates the relative root transform between a sampling time and a delta time in seconds.
Declaration
public AffineTransform GetTrajectoryTransformBetween(SamplingTime samplingTime, float deltaTime)
Parameters
Type | Name | Description |
---|---|---|
SamplingTime | samplingTime | The reference sampling time for which the relative root transform should be calculated. |
Single | deltaTime | An delta time in seconds that determines the duration that the relative root transform should span. |
Returns
Type | Description |
---|---|
AffineTransform | The relative root transform between a sampling time and a delta time in seconds passed as argument. |
GetTypeIndex<T>()
Converts the generic type into a type index.
Declaration
public Binary.TypeIndex GetTypeIndex<T>()
where T : struct
Returns
Type | Description |
---|---|
Binary.TypeIndex | The type index that corresponds to the generic type. |
Type Parameters
Name | Description |
---|---|
T |
Remarks
Given a type passed as generic argument, this method performs a lookup in the types stored in the runtime asset and returns the corresponding type index. This index can then be used to extract reflection information for the given type. The returned type index will be invalid if the generic type passed as argument can not be found in the runtime asset.
See Also
IndexToTimeInSeconds(Int32)
Converts a frame index to the corresponding time in seconds.
Declaration
public float IndexToTimeInSeconds(int index)
Parameters
Type | Name | Description |
---|---|---|
Int32 | index | Frame index to be converted into a time in seconds. |
Returns
Type | Description |
---|---|
Single | Time in seconds that corresponds to the frame index passed as argument. |
IsPayload<T>(ref T, Int32)
Determines whether the specified trait value matches a payload stored in the runtime asset.
Declaration
public bool IsPayload<T>(ref T value, int payload)
where T : struct
Parameters
Type | Name | Description |
---|---|---|
T | value | Trait value to check the payload against. |
Int32 | payload | Payload index to check the trait for. |
Returns
Type | Description |
---|---|
Boolean | True if the trait value matches the payload store in the runtime asset; false otherwise. |
Type Parameters
Name | Description |
---|---|
T |
IsType(Binary.MarkerIndex, Binary.TypeIndex)
Determines whether the specified marker is an instance of the type passed as argument.
Declaration
public bool IsType(Binary.MarkerIndex markerIndex, Binary.TypeIndex typeIndex)
Parameters
Type | Name | Description |
---|---|---|
Binary.MarkerIndex | markerIndex | The marker to compare with the type. |
Binary.TypeIndex | typeIndex | The type to compare the marker for. |
Returns
Type | Description |
---|---|
Boolean | True if the marker is of the specified type; false otherwise. |
IsValid(SamplingTime)
Determines if a given sampling time is valid.
Declaration
public bool IsValid(SamplingTime samplingTime)
Parameters
Type | Name | Description |
---|---|---|
SamplingTime | samplingTime | The sampling time to be checked. |
Returns
Type | Description |
---|---|
Boolean | True if the specified sampling time is valid; otherwise, false. |
IsValid(TimeIndex)
Determines if a given time index is valid.
Declaration
public bool IsValid(TimeIndex timeIndex)
Parameters
Type | Name | Description |
---|---|---|
TimeIndex | timeIndex | The time index to be checked. |
Returns
Type | Description |
---|---|
Boolean | True if the specified time index is valid; otherwise, false. |
ReconstructPoseFragment(SamplingTime)
Reconstructs a pose fragment from the runtime asset that corresponds to a sampling time.
Declaration
public Binary.PoseFragment ReconstructPoseFragment(SamplingTime samplingTime)
Parameters
Type | Name | Description |
---|---|---|
SamplingTime | samplingTime | The sampling time from which the pose fragment should be reconstructed. |
Returns
Type | Description |
---|---|
Binary.PoseFragment | The resulting pose fragment. |
Remarks
The runtime asset building process generates pose fragments for any segment for which a metric has been defined. These pose fragments are stored inside the runtime asset in a compressed format.
Pose fragments can either be constructed from scratch or can be reconstructed from the information contained in the runtime asset. Reconstruction is faster than creating a pose fragment but is subject to loss of precision.
ReconstructTrajectoryFragment(SamplingTime)
Reconstructs a trajectory fragment for a given sampling time in the runtime asset.
Declaration
public Binary.TrajectoryFragment ReconstructTrajectoryFragment(SamplingTime samplingTime)
Parameters
Type | Name | Description |
---|---|---|
SamplingTime | samplingTime | The sampling time from which the trajectory fragment should be reconstructed. |
Returns
Type | Description |
---|---|
Binary.TrajectoryFragment | The resulting trajectory fragment. |
Remarks
The runtime asset building process generates trajectory fragments for any segment for which a metric has been defined. These trajectory fragments are stored inside the runtime asset in a compressed format.
Trajectory fragments can either be constructed from scratch or can be reconstructed from the information contained in the runtime asset. Reconstruction is faster than creating a trajectory fragment but is subject to loss of precision.
TimeInSecondsToIndex(Single)
Converts a time in seconds to an index.
Declaration
public int TimeInSecondsToIndex(float timeInSeconds)
Parameters
Type | Name | Description |
---|---|---|
Single | timeInSeconds | Time in seconds to be converted into an index. |
Returns
Type | Description |
---|---|
Int32 | Frame index that corresponds to the time in seconds passed as argument. |