[vtkusers] help needed setting up the colormap/lookuptable/mapper in C++

David, John john.david at uconn.edu
Mon Aug 13 17:16:51 EDT 2007


> put the header
> #include "vtkPointData.h"

it is already in there...

Hmmm... tell you what.  At the end you will find a minimal case (but with full source) to reproduce this problem.


  EBo --

ps: I've appended the code instead of attaching it to the email just in case the server strips attachments by default.

===============================================


#include <cstdlib> 
#include <ctime> 
#include <iostream>

#include "vtkCellArray.h"

#include "vtkPoints.h"
#include "vtkPolyData.h"

#include "vtkPolyDataWriter.h"

#include "vtkDoubleArray.h"


using namespace std;


int 
main(int argc, char** argv)
{
    int i;
    int num_points = 100;

    double x,y,z; // data points
    double rnd_min=1.0, rnd_max=-1.0; // cache the range for SetScalarRange

	vtkPoints *points = vtkPoints::New();
    vtkDoubleArray *scalars = vtkDoubleArray::New();

    srand48((unsigned)time(NULL)); 

    for (i=0; i<num_points; i++)
    {
        // the original code read in XYZ triplets, but for testing
        // just randomly create XY and set the Z to be on a slanted
        // plane

        x = drand48();
        y = drand48();
        z = (x+y)/2.0;

        if (z < rnd_min) rnd_min = z;
        if (z > rnd_max) rnd_max = z;

        points->InsertPoint(i, x, y, z);

        scalars->InsertNextValue(z);
    }


	vtkCellArray *polys = vtkCellArray::New();

    polys->InsertNextCell(points->GetNumberOfPoints());
    for (i=0; i<points->GetNumberOfPoints(); i++)
    {
        polys->InsertCellPoint(i);
    }


	vtkPolyData *polyData = vtkPolyData::New();
	polyData->SetPoints(points);
	polyData->SetPolys(polys);

// problem line
polyData->GetPointData()->SetScalarRange( rnd_min, rnd_max );

    polyData->Update();


    vtkPolyDataWriter* writer1 = vtkPolyDataWriter::New();
    
    writer1->SetInput(polyData);
    writer1->SetFileName( "tst_points.vtk" );
    writer1->Update();
    
    writer1->Delete();

    return 0;
}



More information about the vtkusers mailing list