mirror of
https://github.com/aharabada/glitchy-engine-beef.git
synced 2026-09-05 13:01:52 +00:00
Reference fixes
This commit is contained in:
@@ -66,14 +66,27 @@ namespace GlitchyEngine.Renderer.Animation
|
||||
|
||||
class AnimationClip : RefCounted
|
||||
{
|
||||
public Skeleton Skeleton ~ _.ReleaseRef();
|
||||
private Skeleton _skeleton ~ _.ReleaseRef();
|
||||
public float FramesPerSecond;
|
||||
public JointAnimation[] JointAnimations;
|
||||
public bool IsLooping;
|
||||
public float Duration;
|
||||
|
||||
// TODO: check
|
||||
public Skeleton Skeleton
|
||||
{
|
||||
get => _skeleton;
|
||||
set
|
||||
{
|
||||
if(_skeleton == value)
|
||||
return;
|
||||
|
||||
_skeleton?.ReleaseRef();
|
||||
_skeleton = value;
|
||||
_skeleton?.AddRef();
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: check
|
||||
public ~this()
|
||||
{
|
||||
for(var jointAnimation in JointAnimations)
|
||||
@@ -87,8 +100,18 @@ namespace GlitchyEngine.Renderer.Animation
|
||||
|
||||
public enum InterpolationMode
|
||||
{
|
||||
/**
|
||||
* No keyframe interpolation.
|
||||
* The keyframe with the greates timestamp that is smaller than the current time will be used.
|
||||
*/
|
||||
Step,
|
||||
/**
|
||||
* Linear interpolation between the two keyframes that are closest to the current time.
|
||||
*/
|
||||
Linear,
|
||||
/**
|
||||
* Cubic spline interpolation between the two keyframes that are closest to the current time.
|
||||
*/
|
||||
CubicSpline
|
||||
}
|
||||
|
||||
|
||||
@@ -26,15 +26,17 @@ namespace GlitchyEngine.Renderer.Animation
|
||||
|
||||
public class SkeletonPose
|
||||
{
|
||||
public Skeleton Skeleton ~ _.ReleaseRef();
|
||||
private Skeleton _skeleton ~ _.ReleaseRef();
|
||||
public JointPose[] LocalPose ~ delete _;
|
||||
public Matrix[] GlobalPose ~ delete _;
|
||||
|
||||
public Skeleton Skeleton => _skeleton;
|
||||
|
||||
public this(Skeleton skeleton)
|
||||
{
|
||||
Skeleton = skeleton;
|
||||
_skeleton = skeleton..AddRef();
|
||||
|
||||
int jointCount = Skeleton.Joints.Count;
|
||||
int jointCount = _skeleton.Joints.Count;
|
||||
|
||||
LocalPose = new JointPose[jointCount];
|
||||
GlobalPose = new Matrix[jointCount];
|
||||
|
||||
Reference in New Issue
Block a user