コード例 #1
0
            private void AddAnnotations(vtkAssembly vtkAssembly)
            {
                // origin ball
                {
                    var sphere = AddNewVtkObject <vtkSphereSource>();
                    sphere.SetCenter(0, 0, 0);
                    sphere.SetRadius(10);

                    var map = AddNewVtkObject <vtkPolyDataMapper>();
                    using (var outputPort = sphere.GetOutputPort())
                        map.SetInputConnection(outputPort);

                    var actor = AddNewVtkObject <vtkActor>();
                    actor.SetMapper(map);
                    vtkAssembly.AddPart(actor);

                    using (var property = actor.GetProperty())
                        property.SetColor(1, 1, 0);
                }

                // centroid ball
                {
                    var sphere = AddNewVtkObject <vtkEarthSource>();
                    sphere.SetRadius(10);
                    sphere.SetOnRatio(5);
                    sphere.OutlineOff();

                    var map = AddNewVtkObject <vtkPolyDataMapper>();
                    using (var outputPort = sphere.GetOutputPort())
                        map.SetInputConnection(outputPort);

                    var actor = AddNewVtkObject <vtkActor>();
                    actor.SetMapper(map);
                    actor.SetPosition(50, 50, 50);
                    vtkAssembly.AddPart(actor);

                    using (var property = actor.GetProperty())
                    {
                        property.SetColor(0, 0.6, 0);
                        property.BackfaceCullingOn();
                        property.SetInterpolationToPhong();
                    }

                    var sphere2 = AddNewVtkObject <vtkSphereSource>();
                    sphere2.SetRadius(9.7);
                    sphere2.SetPhiResolution(360);
                    sphere2.SetThetaResolution(360);

                    var map2 = AddNewVtkObject <vtkPolyDataMapper>();
                    using (var outputPort = sphere2.GetOutputPort())
                        map2.SetInputConnection(outputPort);

                    var actor2 = AddNewVtkObject <vtkActor>();
                    actor2.SetMapper(map2);
                    actor2.SetPosition(50, 50, 50);
                    vtkAssembly.AddPart(actor2);

                    using (var property = actor2.GetProperty())
                        property.SetColor(0, 0, 1);
                }

                // +x axis
                {
                    var line = AddNewVtkObject <vtkLineSource>();
                    line.SetPoint1(0, 0, 0);
                    line.SetPoint2(100, 0, 0);

                    var map = AddNewVtkObject <vtkPolyDataMapper>();
                    using (var outputPort = line.GetOutputPort())
                        map.SetInputConnection(outputPort);

                    var actor = AddNewVtkObject <vtkActor>();
                    actor.SetMapper(map);
                    vtkAssembly.AddPart(actor);

                    using (var property = actor.GetProperty())
                        property.SetColor(0, 1, 0);
                }

                // +y axis
                {
                    var line = AddNewVtkObject <vtkLineSource>();
                    line.SetPoint1(0, 0, 0);
                    line.SetPoint2(0, 100, 0);

                    var map = AddNewVtkObject <vtkPolyDataMapper>();
                    using (var outputPort = line.GetOutputPort())
                        map.SetInputConnection(outputPort);

                    var actor = AddNewVtkObject <vtkActor>();
                    actor.SetMapper(map);
                    vtkAssembly.AddPart(actor);

                    using (var property = actor.GetProperty())
                        property.SetColor(1, 0, 0);
                }

                // +z axis
                {
                    var line = AddNewVtkObject <vtkLineSource>();
                    line.SetPoint1(0, 0, 0);
                    line.SetPoint2(0, 0, 100);

                    var map = AddNewVtkObject <vtkPolyDataMapper>();
                    using (var outputPort = line.GetOutputPort())
                        map.SetInputConnection(outputPort);

                    var actor = AddNewVtkObject <vtkActor>();
                    actor.SetMapper(map);
                    vtkAssembly.AddPart(actor);

                    using (var property = actor.GetProperty())
                        property.SetColor(0, 0, 1);
                }
            }
コード例 #2
0
ファイル: Form1.cs プロジェクト: yanfeng1022/activizLearn
        private void DrawAssembly()
        {
            //Create four parts: a top level assembly and three primitives

            vtkSphereSource   sphereSource = vtkSphereSource.New();
            vtkPolyDataMapper sphereMapper = vtkPolyDataMapper.New();

            sphereMapper.SetInputConnection(sphereSource.GetOutputPort());
            vtkActor sphereActor = vtkActor.New();

            sphereActor.SetMapper(sphereMapper);
            sphereActor.SetOrigin(2, 1, 3);
            sphereActor.RotateY(6);
            sphereActor.SetPosition(2.25, 0, 0);
            sphereActor.GetProperty().SetColor(1, 0, 1);

            vtkCubeSource     cubeSource = vtkCubeSource.New();
            vtkPolyDataMapper cubeMapper = vtkPolyDataMapper.New();

            cubeMapper.SetInputConnection(cubeSource.GetOutputPort());
            vtkActor cubeActor = vtkActor.New();

            cubeActor.SetMapper(cubeMapper);
            cubeActor.SetPosition(0, 2.25, 0);
            cubeActor.GetProperty().SetColor(0, 0, 1);

            vtkConeSource     coneSource = vtkConeSource.New();
            vtkPolyDataMapper coneMapper = vtkPolyDataMapper.New();

            coneMapper.SetInputConnection(coneSource.GetOutputPort());
            vtkActor coneActor = vtkActor.New();

            coneActor.SetMapper(coneMapper);
            coneActor.SetPosition(0, 0, 2.25);
            coneActor.GetProperty().SetColor(0, 1, 0);

            vtkCylinderSource cylinderSource = vtkCylinderSource.New();
            vtkPolyDataMapper cylinderMapper = vtkPolyDataMapper.New();

            cylinderMapper.SetInputConnection(cylinderSource.GetOutputPort());
            vtkActor cylinderActor = vtkActor.New();

            cylinderActor.SetMapper(cylinderMapper);
            //cylinderActor.SetPosition(0, 0, 0);
            cylinderActor.GetProperty().SetColor(1, 0, 0);

            vtkAssembly assembly = vtkAssembly.New();

            assembly.AddPart(cylinderActor);
            assembly.AddPart(sphereActor);
            assembly.AddPart(cubeActor);
            assembly.AddPart(coneActor);
            assembly.SetOrigin(5, 10, 5);
            assembly.AddPosition(5, 0, 0);
            assembly.RotateX(15);

            vtkRenderer     renderer = vtkRenderer.New();
            vtkRenderWindow renWin   = myRenderWindowControl.RenderWindow;

            renWin.AddRenderer(renderer);
            renderer.AddActor(assembly);
            renderer.AddActor(coneActor);
        }