[vtkusers] vtkDataReader Problems...
ckchen@CIS
ckchen.cis89g at nctu.edu.tw
Fri Dec 10 02:01:52 EST 2004
Hi~ I have some questions about the mechanism of vtkDataReader.
I use vtkUnstructureGridReader to load the data: "blow.vtk" (in VTKData/Data), and try to
"switch" different scalar in my program by setting different active scalar, here
is the code fragment:
// Initial all object
unstrGridReader = vtkUnstructuredGridReader::New();
dataSetMapper = vtkDataSetMapper::New();
m_MainRoleActor = vtkActor::New();
// Load data
unstrGridReader->SetFileName(DataSourceFile.c_str());
dataSetMapper->SetInput(reinterpret_cast<vtkDataSet*>(unstrGridReader->GetOutput()));
m_MainRoleActor->SetMapper(dataSetMapper);
// Get all scalars string in the file
vector<string> m_ScalarsList;
size_t nosS = unstrGridReader->GetNumberOfScalarsInFile();
for(size_t t=0;t<nosS;t++)
{
string sn = unstrGridReader->GetScalarsNameInFile(t);
m_ScalarsList.push_back(sn);
}
....
// switch different active scalar from GUI (for example, user want to see the second scalars in the file, idx = 2)
void SetColorByIndex(int idx)
{
m_MainRoleActor->GetMapper()->GetInput()->GetPointData()->SetActiveScalars(m_ScalarsList[idx].c_str());
m_MainRoleActor->GetMapper()->Update();
}
My questions are:
1. Does "dataSetMapper->SetInput(reinterpret_cast<vtkDataSet*>(unstrGridReader->GetOutput()));" load all
scalars and vectors in the file at a time ? If not, what is the best way to handle multiple scalars in my program ?
2. When I use "SetActiveScalars", it returns "-1" to me, what's wrong with my code ?
3. What's the standard flowchart to perform "switch" scalars operation? Is the following procedure right ?
1. Load all data
2. Setup All Mappers
3. Set Active Scalars
4. Setup All Actors
5. ...rendering things....
Thx~
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20041210/61f7a944/attachment.htm>
More information about the vtkusers
mailing list