26 #ifndef __vtkMoleculeMapper_h
27 #define __vtkMoleculeMapper_h
29 #include "vtkDomainsChemistryModule.h"
30 #include "vtkMapper.h"
34 class vtkGlyph3DMapper;
42 class vtkTrivialProducer;
49 void PrintSelf(ostream& os, vtkIndent indent);
53 void SetInputData(vtkMolecule *in);
54 vtkMolecule *GetInput();
62 void UseBallAndStickSettings();
69 void UseVDWSpheresSettings();
76 void UseLiquoriceStickSettings();
85 void UseFastSettings();
89 vtkGetMacro(RenderAtoms,
bool);
90 vtkSetMacro(RenderAtoms,
bool);
91 vtkBooleanMacro(RenderAtoms,
bool);
96 vtkGetMacro(RenderBonds,
bool);
97 vtkSetMacro(RenderBonds,
bool);
98 vtkBooleanMacro(RenderBonds,
bool);
110 vtkGetMacro(AtomicRadiusType,
int);
111 vtkSetMacro(AtomicRadiusType,
int);
112 const char * GetAtomicRadiusTypeAsString();
115 this->SetAtomicRadiusType(CovalentRadius);
119 this->SetAtomicRadiusType(VDWRadius);
123 this->SetAtomicRadiusType(UnitRadius);
130 vtkGetMacro(AtomicRadiusScaleFactor,
float);
131 vtkSetMacro(AtomicRadiusScaleFactor,
float);
137 vtkGetMacro(UseMultiCylindersForBonds,
bool);
138 vtkSetMacro(UseMultiCylindersForBonds,
bool);
139 vtkBooleanMacro(UseMultiCylindersForBonds,
bool);
153 vtkGetMacro(BondColorMode,
int);
154 vtkSetMacro(BondColorMode,
int);
155 const char * GetBondColorModeAsString();
158 this->SetBondColorMode(SingleColor);
162 this->SetBondColorMode(DiscreteByAtom);
169 vtkGetVector3Macro(BondColor,
unsigned char);
170 vtkSetVector3Macro(BondColor,
unsigned char);
175 vtkGetMacro(BondRadius,
float);
176 vtkSetMacro(BondRadius,
float);
182 virtual void GetSelectedAtomsAndBonds(vtkSelection *selection,
183 vtkIdTypeArray *atomIds,
184 vtkIdTypeArray *bondIds);
186 vtkIdTypeArray *atomIds)
188 this->GetSelectedAtomsAndBonds(selection, atomIds, NULL);
191 vtkIdTypeArray *bondIds)
193 this->GetSelectedAtomsAndBonds(selection, NULL, bondIds);
199 virtual void Render(vtkRenderer *, vtkActor *);
200 virtual void ReleaseGraphicsResources(vtkWindow *);
201 double * GetBounds();
202 void GetBounds(
double bounds[6]) { vtkAbstractMapper3D::GetBounds(bounds); }
203 virtual int FillInputPortInformation(
int port, vtkInformation* info);
224 unsigned char BondColor[3];
228 void GlyphRender(vtkRenderer *ren, vtkActor *act);
237 void UpdateGlyphPolyData();
238 void UpdateAtomGlyphPolyData();
239 void UpdateBondGlyphPolyData();
Access to information about the elements.
vtkNew< vtkGlyph3DMapper > BondGlyphMapper
vtkNew< vtkPeriodicTable > PeriodicTable
float AtomicRadiusScaleFactor
bool GlyphDataInitialized
void SetAtomicRadiusTypeToCovalentRadius()
bool UseMultiCylindersForBonds
virtual void GetSelectedBonds(vtkSelection *selection, vtkIdTypeArray *bondIds)
virtual bool GetSupportsSelection()
vtkNew< vtkPolyData > AtomGlyphPolyData
void SetAtomicRadiusTypeToVDWRadius()
Mapper that draws vtkMolecule objects.
void GetBounds(double bounds[6])
create a polygonal sphere centered at the origin
vtkNew< vtkPolyData > BondGlyphPolyData
vtkNew< vtkTrivialProducer > AtomGlyphPointOutput
vtkNew< vtkGlyph3DMapper > AtomGlyphMapper
void SetAtomicRadiusTypeToUnitRadius()
vtkNew< vtkTrivialProducer > BondGlyphPointOutput
void SetBondColorModeToDiscreteByAtom()
virtual void GetSelectedAtoms(vtkSelection *selection, vtkIdTypeArray *atomIds)
void SetBondColorModeToSingleColor()