[cig-commits] r11247 - cs/benchmark/cigma/trunk/scratch/cg/src
luis at geodynamics.org
luis at geodynamics.org
Tue Feb 26 04:51:59 PST 2008
Author: luis
Date: 2008-02-26 04:51:58 -0800 (Tue, 26 Feb 2008)
New Revision: 11247
Added:
cs/benchmark/cigma/trunk/scratch/cg/src/RenderPoints.h
Log:
Added function for rendering points on a given vtkRenderer
Added: cs/benchmark/cigma/trunk/scratch/cg/src/RenderPoints.h
===================================================================
--- cs/benchmark/cigma/trunk/scratch/cg/src/RenderPoints.h (rev 0)
+++ cs/benchmark/cigma/trunk/scratch/cg/src/RenderPoints.h 2008-02-26 12:51:58 UTC (rev 11247)
@@ -0,0 +1,79 @@
+#ifndef __RENDER_POINTS_H__
+#define __RENDER_POINTS_H__
+
+#include <ctime>
+#include <cmath>
+#include "vtkRenderer.h"
+#include "vtkRenderWindow.h"
+#include "vtkFloatArray.h"
+#include "vtkPoints.h"
+#include "vtkPolyVertex.h"
+#include "vtkUnstructuredGrid.h"
+#include "vtkOutlineFilter.h"
+#include "vtkDataSetMapper.h"
+#include "vtkPolyDataMapper.h"
+#include "vtkActor.h"
+#include "vtkProperty.h"
+
+using namespace std;
+
+void RenderPoints(vtkRenderer *ren)
+{
+ assert(ren != 0);
+
+ int i;
+ int N = 10 * 1000;
+ double pts[3];
+
+ vtkFloatArray *pcoords = vtkFloatArray::New();
+ pcoords->SetNumberOfComponents(3);
+ pcoords->SetNumberOfTuples(N);
+
+ srand(time(0));
+ for (i = 0; i < N; i++)
+ {
+ pts[0] = rand()/(1.0 + RAND_MAX);
+ pts[1] = rand()/(1.0 + RAND_MAX);
+ pts[2] = rand()/(1.0 + RAND_MAX);
+ pcoords->SetTuple(i, pts);
+ }
+
+ vtkPoints *points = vtkPoints::New();
+ points->SetData(pcoords);
+
+ vtkPolyVertex *polyvertex = vtkPolyVertex::New();
+ polyvertex->GetPointIds()->SetNumberOfIds(N);
+ for (i = 0; i < N; i++)
+ {
+ polyvertex->GetPointIds()->SetId(i,i);
+ }
+
+ vtkUnstructuredGrid *ugrid = vtkUnstructuredGrid::New();
+ ugrid->Allocate(1,1); // proper values for Allocate() method?
+ ugrid->InsertNextCell(polyvertex->GetCellType(), polyvertex->GetPointIds());
+ ugrid->SetPoints(points);
+
+ vtkDataSetMapper *mapper = vtkDataSetMapper::New();
+ mapper->ImmediateModeRenderingOn();
+ mapper->SetInput(ugrid);
+
+ vtkActor *actor = vtkActor::New();
+ actor->SetMapper(mapper);
+
+ vtkOutlineFilter *outlineData = vtkOutlineFilter::New();
+ outlineData->SetInput(ugrid);
+
+ vtkPolyDataMapper *outlineMapper = vtkPolyDataMapper::New();
+ outlineMapper->SetInputConnection(outlineData->GetOutputPort());
+
+ vtkActor *outlineActor = vtkActor::New();
+ outlineActor->SetMapper(outlineMapper);
+ outlineActor->GetProperty()->SetColor(1,1,1);
+
+ ren->AddActor(actor);
+ ren->AddActor(outlineActor);
+ ren->ResetCamera();
+ ren->GetRenderWindow()->Render();
+}
+
+#endif
More information about the cig-commits
mailing list