Esempio n. 1
0
        /// <summary>
        /// Performs a deep copy of this <see cref="IGraphicsState"/>.
        /// </summary>
        /// <returns>
        /// It returns the equivalent of this <see cref="IGraphicsState"/>, but all objects referenced
        /// are not referred by both instances.
        /// </returns>
        public override IGraphicsState Copy()
        {
            TransformState copiedState = (TransformState)base.Copy();

            if (_LocalProjection != null)
            {
                copiedState._LocalProjection = (ProjectionMatrix)_LocalProjection.Clone();
            }
            copiedState._LocalModel = new ModelMatrix(_LocalModel);

            return(copiedState);
        }
Esempio n. 2
0
        /// <summary>
        /// Performs a deep copy of this <see cref="IGraphicsState"/>.
        /// </summary>
        /// <returns>
        /// It returns the equivalent of this <see cref="IGraphicsState"/>, but all objects referenced
        /// are not referred by both instances.
        /// </returns>
        public override IGraphicsState Push()
        {
            TransformState copiedState = (TransformState)base.Push();

            if (_LocalProjection != null)
            {
                copiedState._LocalProjection = (ProjectionMatrix)_LocalProjection.Clone();
            }
            if (_LocalModel != null)
            {
                copiedState._LocalModel = new ModelMatrix(_LocalModel);
            }
            if (_LocalModelView != null)
            {
                copiedState._LocalModelView = new ModelMatrix(_LocalModelView);
            }
            if (_LocalModelViewProjection != null)
            {
                copiedState._LocalModelViewProjection = new ModelMatrix(_LocalModelViewProjection);
            }

            return(copiedState);
        }