示例#1
0
 public LinePackage(RendererPackage rendererPackage, double[] p1, double[] p2)
     : this(rendererPackage)
 {
     if (p1 != null && p2 != null)
     {
         SetPosition(p1, p2);
     }
 }
示例#2
0
 public LinePackage(RendererPackage rendererPackage, double[] p1, double[] direction, double length)
     : this(rendererPackage)
 {
     if (p1 != null && direction != null)
     {
         double[] p2 = VTKUtil.Extend2(p1, VTKUtil.Add(p1, direction), length);
         SetPosition(p1, p2);
     }
 }
示例#3
0
        public LinePackage(RendererPackage rendererPackage)
        {
            line = vtkLineSource.New();
            line.SetResolution(100);

            vtkPolyDataMapper sphereMapper = vtkPolyDataMapper.New();

            sphereMapper.SetInput(line.GetOutput());
            _lineActor = vtkActor.New();

            _lineActor.SetMapper(sphereMapper);
            rendererPackage.Renderer.AddActor(_lineActor);

            this._rendererPackage = rendererPackage;
        }
示例#4
0
 private void RenderPackage(RendererPackage rp)
 {
     //Render the RenderPackage by the right method overload
     switch(rp.overloadIndex)
     {
         case 1:
         {
             this.spriteBatch.Draw(rp.texture, rp.destination, rp.color);
             break;
         }
         case 2:
         {
             this.spriteBatch.Draw(rp.texture, rp.position, rp.color);
             break;
         }
         case 3:
         {
             this.spriteBatch.Draw(rp.texture, rp.destination, rp.source, rp.color);
             break;
         }
         case 4:
         {
             this.spriteBatch.Draw(rp.texture, rp.position, rp.source, rp.color);
             break;
         }
         case 5:
         {
             this.spriteBatch.Draw(rp.texture, rp.destination, rp.source, rp.color, rp.rotation, rp.origin, rp.spriteEffects, 0);
             break;
         }
         case 6:
         {
             this.spriteBatch.Draw(rp.texture, rp.position, rp.source, rp.color, rp.rotation, rp.origin, rp.scale.X, rp.spriteEffects, 0);
             break;
         }
         case 7:
         {
             this.spriteBatch.Draw(rp.texture, rp.position, rp.source, rp.color, rp.rotation, rp.origin, rp.scale, rp.spriteEffects, 0);
             break;
         }
     }
 }
示例#5
0
 public void AttachAutoRefreshTrackbar(TrackBar trackBar, RendererPackage rendererPackage)
 {
     trackBar.Scroll       += new EventHandler(delegate(object sender, EventArgs e) { rendererPackage.RefreshAll(); });
     trackBar.ValueChanged += new EventHandler(delegate(object sender, EventArgs e) { rendererPackage.RefreshAll(); });
     //trackBar.ValueChanged += new EventHandler(trackBar_refreseh_Scroll);
 }
示例#6
0
        public ArrowPackage2(double[] startPoint, double[] endPoint, RendererPackage rendererPackage)
        {
            int oldNumberOfRenderer = rendererPackage.RenderWindow.GetNumberOfLayers();

            Console.WriteLine(string.Format("oldNumberOfRenderer = {0}", oldNumberOfRenderer));
            int newNumberOfRenderer = oldNumberOfRenderer + 1;

            rendererPackage.Renderer.SetLayer(0);

            _topRenderer = vtkRenderer.New();
            _topRenderer.SetViewport(0, 0, 1, 1);
            _topRenderer.SetLayer(newNumberOfRenderer - 1);
            _topRenderer.InteractiveOff();

            //new XmlPolyDataPackage(polyData, _topRenderer).SetColor(1, 0, 0);

            rendererPackage.RenderWindow.SetNumberOfLayers(newNumberOfRenderer);
            rendererPackage.RenderWindow.AddRenderer(_topRenderer);

            //Create an arrow.
            _arrowSource = vtkArrowSource.New();
            _arrowSource.SetShaftRadius(0.02);
            _arrowSource.SetTipRadius(0.04);

            _arrowSource.SetShaftRadius(0.05);
            _arrowSource.SetTipRadius(0.1);

            //_arrowSource.SetShaftRadius(2);
            //_arrowSource.SetTipRadius(4);

            //_arrowSource.SetTipLength(10);
            _arrowSource.SetShaftResolution(100);
            _arrowSource.SetTipResolution(100);

            //Create a mapper and actor for the arrow
            _mapper     = vtkPolyDataMapper.New();
            _arrowActor = vtkActor.New();

            // Generate a random start and end point
            // Compute a basis
            UpdatePosition(endPoint, startPoint);

            // Create spheres for start and end point
            //vtkSphereSource sphereStartSource = new vtkSphereSource();
            //sphereStartSource.SetCenter(VTKUtil.ConvertIntPtr(startPoint));
            //vtkPolyDataMapper sphereStartMapper = vtkPolyDataMapper.New();
            //sphereStartMapper.SetInputConnection(sphereStartSource.GetOutputPort());
            //vtkActor sphereStart = new vtkActor();
            //sphereStart.SetMapper(sphereStartMapper);
            //sphereStart.GetProperty().SetColor(1.0, 1.0, .3);

            //vtkSphereSource sphereEndSource = new vtkSphereSource();
            //sphereEndSource.SetCenter(VTKUtil.ConvertIntPtr(endPoint));
            //vtkPolyDataMapper sphereEndMapper = vtkPolyDataMapper.New();
            //sphereEndMapper.SetInputConnection(sphereEndSource.GetOutputPort());
            //vtkActor sphereEnd = new vtkActor();
            //sphereEnd.SetMapper(sphereEndMapper);
            //sphereEnd.GetProperty().SetColor(1.0, .3, .3);

            //_arrowSource.Update();
            //_mapper.SetInput(_arrowSource.GetOutput());
            //_arrowActor.SetMapper(_mapper);

            _arrowActor.GetProperty().SetOpacity(0.2);
            _arrowActor.GetProperty().SetColor(0, 1, 0);

            _topRenderer.AddActor(_arrowActor);
            //rendererPackage.AddActor(sphereStart);
            //rendererPackage.AddActor(sphereEnd);
        }