Ejemplo n.º 1
0
 public static AffineTransform ToXna(this SharpGLTF.Transforms.AffineTransform xform)
 {
     if (xform.IsMatrix)
     {
         xform = xform.GetDecomposed();
     }
     return(new AffineTransform(xform.Scale, xform.Rotation, xform.Translation));
 }
        public TRANSFORM GetLocalTransform(int index)
        {
            // var m = GetAccessor("TRANSFORM")?.AsMatrix4x4Array()?[index];
            var s = GetAccessor("SCALE")?.AsVector3Array()?[index];
            var r = GetAccessor("ROTATION")?.AsQuaternionArray()?[index];
            var t = GetAccessor("TRANSLATION")?.AsVector3Array()?[index];

            return(TRANSFORM.CreateFromAny(null, s, r, t));
        }
Ejemplo n.º 3
0
        internal InstancedDrawableTemplate(Schema2.Node node, Func <Schema2.Node, int> indexFunc)
            : base(node, indexFunc)
        {
            var instancing = node.GetGpuInstancing();

            _Instances = new TRANSFORM[instancing.Count];

            for (int i = 0; i < _Instances.Length; ++i)
            {
                _Instances[i] = instancing.GetLocalTransform(i);
            }
        }
Ejemplo n.º 4
0
        public TRANSFORM GetLocalTransform(ReadOnlySpan <int> track, ReadOnlySpan <float> time, ReadOnlySpan <float> weight)
        {
            if (!_UseAnimatedTransforms)
            {
                return(_LocalTransform);
            }

            Span <TRANSFORM> xforms = stackalloc TRANSFORM[track.Length];

            for (int i = 0; i < xforms.Length; ++i)
            {
                xforms[i] = GetLocalTransform(track[i], time[i]);
            }

            return(TRANSFORM.Blend(xforms, weight));
        }
Ejemplo n.º 5
0
 public TransformChainBuilder(NodeBuilder parent, TRANSFORM child)
 {
     _ParentTransform = parent;
     _ChildTransform  = child;
 }
Ejemplo n.º 6
0
 public TransformChainBuilder(TRANSFORM transform)
 {
     _ParentTransform = null;
     _ChildTransform  = transform;
 }
Ejemplo n.º 7
0
 internal FixedTransformer(Object content, NodeBuilder parentNode, TRANSFORM childTransform)
     : base(content)
 {
     _ParentNode     = parentNode;
     _ChildTransform = childTransform;
 }
Ejemplo n.º 8
0
 internal FixedTransformer(Object content, TRANSFORM transform)
     : base(content)
 {
     _ChildTransform = transform;
 }