The Transformation class is meant to represent a general transformation in 3D. It will typically be attached to UI elements, both 3D and 2D so they can carry their various world, and local transforms with them.
예제 #1
0
        public Transformation(Transformation aTrans)
        {
            fMatrix = aTrans.fMatrix;
            fTranslate = aTrans.fTranslate;
            fScale = aTrans.fScale;

            fIsIdentity = aTrans.fIsIdentity;
            fIsRSMatrix = aTrans.fIsRSMatrix;
            fIsUniformScale = aTrans.fIsUniformScale;
        }
예제 #2
0
 public void Inverse(out Transformation inverse)
 {
     inverse = null;
 }
예제 #3
0
        /// <summary>
        /// The Geometry state needs to be updated whenever there is a change to 
        /// the frame, or any other aspect of the geometry.  Here recalculations
        /// that are dependent on the geometry will occur.
        /// By default, the container is queried for its transform.
        /// </summary>
        public virtual void UpdateGeometryState()
        {
            // Since we are a part of a container, we will create
            // our own transform, starting with Identity
            Transformation myTransform = new Transformation();

            // 1. Query the container for the world transform
            if (null != Container)
            {
                //fGraphicsUnit = fContainer.GraphicsUnit;


                // If the container has a world transform, we want to start from 
                // that transform.
                Transformation parentTransform = fContainer.WorldTransform;

                if (null != parentTransform)
                {
                    myTransform = new Transformation(parentTransform);
                }
            }

            // Add the frame offset as part of the world transform.
            // 
            myTransform.Translate(Frame.Left, Frame.Top);

            WorldTransform = myTransform;


            // Let subclassers do the specifics they need to do
            OnUpdateGeometryState();
        }
예제 #4
0
 public void Product(Transformation A, Transformation B, out Transformation C)
 {
     C = null;
 }
예제 #5
0
 abstract public  void TransformBy(Transformation aTransform, out BoundingVolume result);