Пример #1
0
        public ViewControl()
        {
            InitializeComponent();
            //控制控件闪烁
            SetStyle(ControlStyles.AllPaintingInWmPaint, true); //禁止擦除背景
            SetStyle(ControlStyles.DoubleBuffer, true);         //双缓冲
            SetStyle(ControlStyles.UserPaint, true);            //自行绘制图片
            GraphicsConfig graphicsConfig = new GraphicsConfig();

            graphicsConfig.BackColor = BackColor;
            graphicsConfig.CorrectColorForBackgroundColor = true;
            gdiGraphics3D = new GDIGraphics3D(graphicsConfig);
            gdiGraphics3D.EnableDrawablesUpdate();
            graphicsCache        = new WireframeGraphicsCache(false, true);
            graphicsCache.Config = graphicsConfig;
            graphicsHelper       = new GraphicsHelper(System.Drawing.Color.Blue);
            bounds = new Bounds3D();

            transformationProvider = new SimpleTransformationProvider3D();
            transformationProvider.TransformsChanged += new EventHandler(transformationProvider_TransformsChanged);
            panInteractor              = new SimplePanInteractor(transformationProvider);
            rectZoomInteractor         = new SimpleRectZoomInteractor(transformationProvider);
            zoomWheelInteractor        = new SimpleZoomWheelInteractor(transformationProvider);
            rectZoomInteractorDrawable = new SimpleRectZoomInteractor.WinFormsDrawable(rectZoomInteractor);
        }
Пример #2
0
        //protected virtual void OnEntitySelected(EntityEventArgs e) {
        //    if (EntitySelected != null) {
        //        EntitySelected(this, e);
        //    }
        //}
        private Matrix4D CalculateTo2DTransform()
        {
            if (transformationProvider == null)
                transformationProvider = new SimpleTransformationProvider3D();
            transformationProvider.ViewWindow = GetClientRectangle2D();
            Matrix4D to2DTransform = Matrix4D.Identity;
            if (model != null && bounds != null)
            {
                to2DTransform = transformationProvider.CompleteTransform;
            }
            //if (gdiGraphics3D == null)
            //{
            //    GraphicsConfig graphicsConfig = new GraphicsConfig();
            //    graphicsConfig.BackColor = BackColor;
            //    graphicsConfig.CorrectColorForBackgroundColor = true;
            //    gdiGraphics3D = new GDIGraphics3D(graphicsConfig);
            //}
            if (gdiGraphics3D != null)
            {
                gdiGraphics3D.To2DTransform = to2DTransform;
                from2DTransform = gdiGraphics3D.To2DTransform.GetInverse();
            }

            return to2DTransform;
        }
Пример #3
0
        public void initParameter()
        {
            model=null;
            gdiGraphics3D=null;
            bounds=null;
            //Matrix4D tempfrom2DTransform;
            //from2DTransform=tempfrom2DTransform;
            //Point tempmouseClickLocation;
            //mouseClickLocation=tempmouseClickLocation;
            mouseDown=false;
            shiftPressed=false;

            SetStyle(ControlStyles.AllPaintingInWmPaint, true);
            SetStyle(ControlStyles.DoubleBuffer, true);
            SetStyle(ControlStyles.UserPaint, true);
            GraphicsConfig graphicsConfig = new GraphicsConfig();
            //graphicsConfig.BackColor = BackColor;
            graphicsConfig.CorrectColorForBackgroundColor = true;
            gdiGraphics3D = new GDIGraphics3D(graphicsConfig);
            bounds = new Bounds3D();

            transformationProvider = new SimpleTransformationProvider3D();
            transformationProvider.TransformsChanged += new EventHandler(transformationProvider_TransformsChanged);
            panInteractor = new SimplePanInteractor(transformationProvider);
            rectZoomInteractor = new SimpleRectZoomInteractor(transformationProvider);
            zoomWheelInteractor = new SimpleZoomWheelInteractor(transformationProvider);
            rectZoomInteractorDrawable = new SimpleRectZoomInteractor.WinFormsDrawable(rectZoomInteractor);
        }