コード例 #1
0
        /// <summary>
        /// Implementation of <see cref="System.Windows.Freezable.GetCurrentValueAsFrozenCore(Freezable)">Freezable.GetCurrentValueAsFrozenCore</see>.
        /// </summary>
        /// <param name="sourceFreezable"></param>
        protected override void GetCurrentValueAsFrozenCore(Freezable sourceFreezable)
        {
            GeneralTransform3DTo2D transform = (GeneralTransform3DTo2D)sourceFreezable;

            base.GetCurrentValueAsFrozenCore(sourceFreezable);
            CopyCommon(transform);
        }
コード例 #2
0
        /// <summary>
        /// Implementation of <see cref="System.Windows.Freezable.CloneCurrentValueCore(Freezable)">Freezable.CloneCurrentValueCore</see>.
        /// </summary>
        /// <param name="sourceFreezable"></param>
        protected override void CloneCurrentValueCore(Freezable sourceFreezable)
        {
            GeneralTransform3DTo2D transform = (GeneralTransform3DTo2D)sourceFreezable;

            base.CloneCurrentValueCore(sourceFreezable);
            CopyCommon(transform);
        }
コード例 #3
0
        /// <summary> 
        /// Projects the stored 3D points in to 2D. 
        /// </summary>
        /// <param name="objectToViewportTransform">The transformation matrix to use</param> 
        public void Project(GeneralTransform3DTo2D objectToViewportTransform)
        {
            Point projPoint1 = objectToViewportTransform.Transform(_p1);
            Point projPoint2 = objectToViewportTransform.Transform(_p2); 

            _p1Transformed = new Point(projPoint1.X, projPoint1.Y); 
            _p2Transformed = new Point(projPoint2.X, projPoint2.Y); 
        }
コード例 #4
0
        internal GeneralTransform3DTo2DTo3D(GeneralTransform3DTo2D transform3DTo2D, 
                                            GeneralTransform2DTo3D transform2DTo3D)
        { 
            Debug.Assert(transform3DTo2D != null && transform2DTo3D != null); 

            _transform3DTo2D = (GeneralTransform3DTo2D)transform3DTo2D.GetAsFrozen(); 
            _transform2DTo3D = (GeneralTransform2DTo3D)transform2DTo3D.GetAsFrozen();
        }
コード例 #5
0
ファイル: Visual3D.cs プロジェクト: JianwenSun/cc
        /// <summary>
        /// Provides the transform between this visual3D and the specified ancestor, or null
        /// if the transform does not exist.
        ///
        /// </summary>
        /// <param name="ancestor">Ancestor visual.</param>
        /// <returns>The transform from 3D to 2D</returns>
        internal GeneralTransform3DTo2D InternalTransformToAncestor(Visual ancestor)
        {
            Debug.Assert(ancestor != null);

            // get the transform out of 3D and in to 2D
            Viewport3DVisual containingViewport;            
            Matrix3D projectionTransform;
            
            if (!M3DUtil.TryTransformToViewport3DVisual(this, out containingViewport, out projectionTransform))
            {
                return null;
            }

            // get the transform from the Viewport3DVisual to the ancestor
            GeneralTransform transformIn2D = containingViewport.TransformToAncestor(ancestor);

            // package the two up in the transformTo2D
            GeneralTransform3DTo2D result = new GeneralTransform3DTo2D(projectionTransform, transformIn2D); 
            result.Freeze();
            
            return result;            
        }  
コード例 #6
0
 /// <summary>
 /// Clones values that do not have corresponding DPs
 /// </summary>
 /// <param name="transform"></param>
 private void CopyCommon(GeneralTransform3DTo2D transform)
 {
     _projectionTransform = transform._projectionTransform;
     _transformBetween2D = transform._transformBetween2D;
 }
コード例 #7
0
 /// <summary>
 /// Clones values that do not have corresponding DPs
 /// </summary>
 /// <param name="transform"></param>
 private void CopyCommon(GeneralTransform3DTo2D transform)
 {
     _projectionTransform = transform._projectionTransform;
     _transformBetween2D  = transform._transformBetween2D;
 }