| 31 | namespace |
| 32 | { |
| 33 | void DrawTriangles(double* p1, double* q1, double* r1, double* p2, double* q2, double* r2) |
| 34 | { |
| 35 | // Create a triangle |
| 36 | vtkSmartPointer<vtkPoints> points = vtkSmartPointer<vtkPoints>::New(); |
| 37 | vtkIdType pid[6]; |
| 38 | pid[0] = points->InsertNextPoint(p1[0], p1[1], p1[2]); |
| 39 | pid[1] = points->InsertNextPoint(q1[0], q1[1], q1[2]); |
| 40 | pid[2] = points->InsertNextPoint(r1[0], r1[1], r1[2]); |
| 41 | pid[3] = points->InsertNextPoint(p2[0], p2[1], p2[2]); |
| 42 | pid[4] = points->InsertNextPoint(q2[0], q2[1], q2[2]); |
| 43 | pid[5] = points->InsertNextPoint(r2[0], r2[1], r2[2]); |
| 44 | |
| 45 | vtkSmartPointer<vtkCellArray> verts = vtkSmartPointer<vtkCellArray>::New(); |
| 46 | for (int i = 0; i < 6; i++) |
| 47 | { |
| 48 | verts->InsertNextCell(1, &pid[i]); |
| 49 | } |
| 50 | |
| 51 | vtkSmartPointer<vtkTriangle> triangle1 = vtkSmartPointer<vtkTriangle>::New(); |
| 52 | triangle1->GetPointIds()->SetId(0, 0); |
| 53 | triangle1->GetPointIds()->SetId(1, 1); |
| 54 | triangle1->GetPointIds()->SetId(2, 2); |
| 55 | |
| 56 | vtkSmartPointer<vtkTriangle> triangle2 = vtkSmartPointer<vtkTriangle>::New(); |
| 57 | triangle2->GetPointIds()->SetId(0, 3); |
| 58 | triangle2->GetPointIds()->SetId(1, 4); |
| 59 | triangle2->GetPointIds()->SetId(2, 5); |
| 60 | |
| 61 | vtkSmartPointer<vtkCellArray> triangles = vtkSmartPointer<vtkCellArray>::New(); |
| 62 | triangles->InsertNextCell(triangle1); |
| 63 | triangles->InsertNextCell(triangle2); |
| 64 | |
| 65 | vtkSmartPointer<vtkDoubleArray> pointIds = vtkSmartPointer<vtkDoubleArray>::New(); |
| 66 | pointIds->SetNumberOfTuples(6); |
| 67 | pointIds->SetTuple1(0, 0.); |
| 68 | pointIds->SetTuple1(1, 1.); |
| 69 | pointIds->SetTuple1(2, 2.); |
| 70 | pointIds->SetTuple1(3, 3.); |
| 71 | pointIds->SetTuple1(4, 4.); |
| 72 | pointIds->SetTuple1(5, 5.); |
| 73 | |
| 74 | // Create a polydata object |
| 75 | vtkSmartPointer<vtkPolyData> trianglePolyData = vtkSmartPointer<vtkPolyData>::New(); |
| 76 | |
| 77 | // Add the geometry and topology to the polydata |
| 78 | trianglePolyData->SetPoints(points); |
| 79 | trianglePolyData->SetVerts(verts); |
| 80 | trianglePolyData->SetPolys(triangles); |
| 81 | trianglePolyData->GetPointData()->SetScalars(pointIds); |
| 82 | |
| 83 | // Create mapper and actor |
| 84 | vtkSmartPointer<vtkPolyDataMapper> mapper = vtkSmartPointer<vtkPolyDataMapper>::New(); |
| 85 | mapper->SetInputData(trianglePolyData); |
| 86 | mapper->SetScalarRange(0., 5.); |
| 87 | vtkSmartPointer<vtkActor> actor = vtkSmartPointer<vtkActor>::New(); |
| 88 | actor->SetMapper(mapper); |
| 89 | actor->GetProperty()->SetPointSize(5); |
| 90 |
no test coverage detected