[vtkusers] Storing actors into memory C++
chasank
chasank at gmail.com
Sat Jan 10 20:41:22 EST 2015
Hi again,
You're welcome. First of all you did not have to write any class structure
for storing vtkActor instances. I did not understand purpose of PickerClass
I'll ignore it. With your structure you may improve your classes as follows
class Actor
{
public:
Actor(vtkProp* prop)
{
this.prop = prop;
}
// Control functions consider adding a method that takes vtkImageProperty
reference.
void reset();
void setColour();
void setOpacity();
double getOpacity();
..
protected:
vtkProp* prop;
}
class ScreenObjects
{
public:
ScreenObjects();
~ScreenObjects();
void addObject(vtkProp* prop)
{
Actor* actor = new Actor(prop);
this.actors.push_back(actor);
}
Actor* removeObject()
{
return this->actors.pop_back(); // Takes the reference of object and
removes it from vector.
}
vtkPropCollection* getCollection() // get all of the actors as a
collection
{
vtkPropCollection *collection = vtkPropCollection::New();
std::vector< Actor* >::iterator it = this->actors.begin();
for( it; it != this->actors.end(); ++it)
{
collection->AddItem(*it);
}
return collection;
}
protected:
std::vector< Actor* > actors;
}
- In your main program you may cast dynamically to children objects of base
vtkProp such as;
vtkImageSlice* slice = dynamic_cast< vtkImageSlice*
>(screenObjects->removeObject());
- For adding your actors to renderer;
vtkPropCollection* collection = screenObjects->getCollection();
collection->InitTraversal();
vtkProp* prop;
while (prop = collection->GetNextProp())
{
renderer->AddViewProp(prop);
}
--
View this message in context: http://vtk.1045678.n5.nabble.com/Storing-actors-into-memory-C-tp5729971p5730062.html
Sent from the VTK - Users mailing list archive at Nabble.com.
More information about the vtkusers
mailing list