[vtkusers] Slicing on the VTK points

Maarten Beek beekmaarten at yahoo.com
Tue Nov 5 09:25:20 EST 2013


In the past, I have used vtkExtractPolyDataGeometry with a vtkBoxWidget2 to get 6 planes for the implicit function. Worked with a triangulated surface; can't see why it wouldn't work with vertices.

Maarten





On Tuesday, November 5, 2013 6:09:24 AM, mahendra <mahendra123awale at gmail.com> wrote:
 
OK let me try one more time!

Below is java source code, which generate the vtkpoints and displays it. 
The attached image shows the generated view

//========================================================================================
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import vtk.*;

public class cutter {

    static vtkRenderWindowPanel renderWindowPanel = new
vtkRenderWindowPanel();
    static vtkPoints points = new vtkPoints();
    static vtkPointData pointdata = new vtkPointData();
    static vtkUnsignedCharArray colors = new vtkUnsignedCharArray();
    static vtkCellArray vtkCellArray = new vtkCellArray();
    static vtkPolyData polydata = new vtkPolyData();
    static vtkPolyDataMapper mainMapper = new vtkPolyDataMapper();
    static vtkInteractorStyleTrackballCamera vInStylCamera = new
vtkInteractorStyleTrackballCamera();
    static vtkActor mainActor = new vtkActor();
    static vtkInteractorStyleImage vInStylImage = new
vtkInteractorStyleImage();

    static {
        System.loadLibrary("vtkCommonJava");
        System.loadLibrary("vtkFilteringJava");
        System.loadLibrary("vtkIOJava");
        System.loadLibrary("vtkImagingJava");
        System.loadLibrary("vtkGraphicsJava");
        System.loadLibrary("vtkRenderingJava");
    }

    public static void main(String[] args) throws FileNotFoundException,
IOException {

        //Read the points
        readPoints02();
        polydata.SetPoints(points);
        polydata.GetPointData().SetScalars(colors);
        polydata.SetVerts(vtkCellArray);
        mainMapper.SetInput(polydata);

        //create a plane to cut
        vtkPlane plane = new vtkPlane();
        plane.SetOrigin(mainMapper.GetInput().GetCenter());
        plane.SetNormal(1, 0, 0);

        //create cutter, map it and set the actor
        vtkCutter cutter = new vtkCutter();
        cutter.SetCutFunction(plane);
        cutter.SetInput(mainMapper.GetInput());
        cutter.Update();


        vtkPolyDataMapper cutterMapper = new vtkPolyDataMapper();
        cutterMapper.SetInputConnection(cutter.GetOutputPort());

        //create plane actor
        vtkActor planeActor = new vtkActor();
        planeActor.GetProperty().SetColor(1.0, 1, 0);
        planeActor.GetProperty().SetLineWidth(20);
        planeActor.SetMapper(cutterMapper);

        //Another actor for my data
        vtkActor myActor = new vtkActor();
        myActor.SetMapper(mainMapper);

        //create renderers and add actors of plane and cube
        vtkRenderer ren = new vtkRenderer();
        ren.AddActor(planeActor);
        ren.AddActor(myActor);


        //Add renderer to renderwindow and render
        vtkRenderWindow renWin = new vtkRenderWindow();
        renWin.AddRenderer(ren);
        renWin.SetSize(600, 600);

        vtkRenderWindowInteractor iren = new vtkRenderWindowInteractor();
        iren.SetRenderWindow(renWin);
        ren.SetBackground(0, 0, 0);
        renWin.Render();

        iren.Start();
    }


    static void readPoints02() throws FileNotFoundException, IOException {

        colors.SetNumberOfComponents(3);

        for (int a = 0; a < 10000; a++) {
            double randomX = Math.random();
            double randomY = Math.random();
            double randomZ = Math.random();

            points.InsertPoint(a, randomX*300, randomY*300, randomZ*300);
            vtkCellArray.InsertNextCell(1);
            vtkCellArray.InsertCellPoint(a);
            colors.InsertTuple3(a, 255, 255, 0);

        }        
    }
}

//=====================================================================================

<http://vtk.1045678.n5.nabble.com/file/n5724301/view.png> 

I wanted to allow user to make the cut on this points with predefined box. I
mean user should place the box where he want and i want to display only
those part (subparts of the whole view). 

Looking forward for suggestions!!!!


Thanks



--
View this message in context: http://vtk.1045678.n5.nabble.com/Slicing-on-the-VTK-points-tp5724228p5724301.html

Sent from the VTK - Users mailing list archive at Nabble.com.
_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the VTK FAQ at: http://www.vtk.org/Wiki/VTK_FAQ

Follow this link to subscribe/unsubscribe:
http://www.vtk.org/mailman/listinfo/vtkusers
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20131105/e12eea14/attachment.html>


More information about the vtkusers mailing list