[vtkusers] Help on Point Coloring
    Helder Carvalho 
    hel_carvalho at hotmail.com
       
    Mon Sep  1 10:48:22 EDT 2003
    
    
  
Hi,
Could someone Please take a look a t this code and see What im dong wrong. 
The objective is to paint each of the 300 points with diferent colors. The 
problem is probably related with the LookUpTable but i cant figure how to 
work with this things.
#include "vtkPoints.h"
#include "vtkPolyData.h"
#include "vtkActorCollection.h"
#include "vtkPolyDataMapper.h"
#include "vtkActor.h"
#include "vtkRenderWindow.h"
#include "vtkRenderWindowInteractor.h"
#include "vtkRenderer.h"
#include "vtkPolyDataReader.h"
#include "vtkProperty.h"
#include "vtkPointData.h"
#include "vtkIntArray.h"
#include "vtkCellArray.h"
#include "vtkLookupTable.h"
void main()
{
	float colors[300][3];
	for(int go = 0; go<300; go++)
	{
		colors[go][0] = 1-(go*0.02);
		colors[go][1] = go*0.02;
		colors[go][2] = 0.5+go*0.01;
	}
	vtkPolyDataReader *inReader = vtkPolyDataReader::New();
	inReader->SetFileName("In");
	inReader->Update();
	vtkPolyData *Poly = inReader->GetOutput();
	Poly->Update();
	vtkLookupTable *lut = vtkLookupTable::New();
	lut->SetNumberOfColors(Poly->GetNumberOfPoints());
	lut->Build();
	for(int kValue=0; kValue<Poly->GetNumberOfPoints(); kValue++)
	{
	   
lut->SetTableValue(kValue,colors[kValue][0],colors[kValue][1],colors[kValue[2],1);
	}
	vtkCellArray *ca = vtkCellArray::New();
	vtkIntArray *scalars = vtkIntArray::New();
	for(kValue=0; kValue<Poly->GetNumberOfPoints(); kValue++)
	{
		ca->InsertNextCell(1);
		ca->InsertCellPoint(kValue);
		scalars->InsertNextTuple1(kValue);
	}
	vtkPolyData *cutPoly = vtkPolyData::New();
	cutPoly->SetPoints (Poly->GetPoints());
	cutPoly->SetVerts(ca);
	cutPoly->GetPointData()->SetScalars(scalars);
	cutPoly->Update();
	vtkPolyDataMapper *inMapper = vtkPolyDataMapper::New();
	inMapper->SetLookupTable(lut);
	inMapper->SetInput(cutPoly);
	inMapper->Update();
	vtkActor *inActor = vtkActor::New();
	inActor->GetProperty()->SetPointSize(5);
	inActor->SetMapper(inMapper);
	vtkRenderWindow *renWin	= vtkRenderWindow::New();
	vtkRenderer *ren = vtkRenderer::New();
	ren->AddActor(inActor);
	ren->SetBackground(0.3, 0.3, 0.3);
	renWin->AddRenderer(ren);
	renWin->SetSize(800, 800);
	vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();
	iren->SetRenderWindow(renWin);
	iren->Initialize();
	iren->Start();
}
Regards,
Helder Carvalho
_________________________________________________________________
Add photos to your e-mail with MSN 8. Get 2 months FREE*. 
http://join.msn.com/?page=features/featuredemail
    
    
More information about the vtkusers
mailing list