Exemplo n.º 1
0
        public override void Apply(ITransform transform)
        {
            if (false == Enter(transform))
            {
                return;
            }

            var curModel = _modelMatrixStack.Any() ? _modelMatrixStack.Peek() : Matrix4x4.Identity;


            transform.ComputeLocalToWorldMatrix(ref curModel, this);

            if (transform.ReferenceFrame != Transform.ReferenceFrameType.Relative)
            {
                PushViewMatrix(Matrix4x4.Identity);
            }

            PushModelMatrix(curModel);

            PushClone();

            Traverse(transform);

            PopClone();

            PopModelmatrix();

            if (transform.ReferenceFrame != Transform.ReferenceFrameType.Relative)
            {
                PopViewMatrix();
            }

            Leave();
        }
Exemplo n.º 2
0
        public override void Apply(ITransform transform)
        {
            var curModel = ModelMatrixStack.Peek();

            transform.ComputeLocalToWorldMatrix(ref curModel, this);
            ModelMatrixStack.Push(curModel);

            Apply((Node)transform);

            ModelMatrixStack.Pop();
        }
Exemplo n.º 3
0
 public override void Apply(ITransform transform)
 {
     if (_coordMode == CoordMode.LocalToWorld)
     {
         transform.ComputeLocalToWorldMatrix(ref _matrix, this);
     }
     else // WorldToLocal
     {
         transform.ComputeWorldToLocalMatrix(ref _matrix, this);
     }
 }