34#ifndef vtkMoleculeMapper_h
35#define vtkMoleculeMapper_h
37#include "vtkDomainsChemistryModule.h"
41VTK_ABI_NAMESPACE_BEGIN
128 vtkGetMacro(RenderAtoms,
bool);
129 vtkSetMacro(RenderAtoms,
bool);
130 vtkBooleanMacro(RenderAtoms,
bool);
137 vtkGetMacro(RenderBonds,
bool);
138 vtkSetMacro(RenderBonds,
bool);
139 vtkBooleanMacro(RenderBonds,
bool);
147 vtkGetMacro(RenderLattice,
bool);
148 vtkSetMacro(RenderLattice,
bool);
149 vtkBooleanMacro(RenderLattice,
bool);
166 vtkGetMacro(AtomicRadiusType,
int);
167 vtkSetMacro(AtomicRadiusType,
int);
181 vtkGetMacro(AtomicRadiusScaleFactor,
float);
182 vtkSetMacro(AtomicRadiusScaleFactor,
float);
190 vtkGetMacro(UseMultiCylindersForBonds,
bool);
191 vtkSetMacro(UseMultiCylindersForBonds,
bool);
192 vtkBooleanMacro(UseMultiCylindersForBonds,
bool);
212 vtkGetMacro(BondColorMode,
int);
213 vtkSetClampMacro(BondColorMode,
int, SingleColor, DiscreteByAtom);
229 vtkGetMacro(AtomColorMode,
int);
230 vtkSetClampMacro(AtomColorMode,
int, SingleColor, DiscreteByAtom);
238 vtkGetVector3Macro(AtomColor,
unsigned char);
239 vtkSetVector3Macro(AtomColor,
unsigned char);
247 vtkGetVector3Macro(BondColor,
unsigned char);
248 vtkSetVector3Macro(BondColor,
unsigned char);
255 vtkGetMacro(BondRadius,
float);
256 vtkSetMacro(BondRadius,
float);
264 vtkGetVector3Macro(LatticeColor,
unsigned char);
265 vtkSetVector3Macro(LatticeColor,
unsigned char);
277 this->GetSelectedAtomsAndBonds(selection, atomIds,
nullptr);
281 this->GetSelectedAtomsAndBonds(selection,
nullptr, bondIds);
302 vtkGetStringMacro(AtomicRadiusArrayName);
303 vtkSetStringMacro(AtomicRadiusArrayName);
330 unsigned char AtomColor[3];
341 unsigned char BondColor[3];
373 unsigned char LatticeColor[3];
virtual double * GetBounds()=0
Return bounding box (array of six doubles) of data expressed as (xmin,xmax, ymin,ymax,...
represents an object (geometry & properties) in a rendered scene
dynamic, self-adjusting array of vtkIdType
a simple class to control print indentation
abstract class specifies interface to map data to graphics primitives
Mapper that draws vtkMolecule objects.
virtual void GetSelectedBonds(vtkSelection *selection, vtkIdTypeArray *bondIds)
Extract the ids atoms and/or bonds rendered by this molecule from a vtkSelection object.
const char * GetBondColorModeAsString()
Get/Set the method by which bonds are colored.
virtual void GetSelectedAtoms(vtkSelection *selection, vtkIdTypeArray *atomIds)
Extract the ids atoms and/or bonds rendered by this molecule from a vtkSelection object.
virtual void SetMapScalars(bool map)
Helper method to set ScalarMode on both AtomGlyphMapper and BondGlyphMapper.
void SetBondColorModeToDiscreteByAtom()
Get/Set the method by which bonds are colored.
void SetAtomicRadiusTypeToUnitRadius()
Get/Set the type of radius used to generate the atoms.
bool GlyphDataInitialized
Cached variables and update methods.
vtkNew< vtkGlyph3DMapper > AtomGlyphMapper
Internal mappers.
bool RenderAtoms
Customize atom rendering.
vtkPeriodicTable * GetPeriodicTable()
Accessor to internal structure.
void SetAtomicRadiusTypeToVDWRadius()
Get/Set the type of radius used to generate the atoms.
void UseLiquoriceStickSettings()
Set ivars to default liquorice stick settings.
vtkNew< vtkPeriodicTable > PeriodicTable
Periodic table for lookups.
float AtomicRadiusScaleFactor
Customize atom rendering.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
virtual void GetSelectedAtomsAndBonds(vtkSelection *selection, vtkIdTypeArray *atomIds, vtkIdTypeArray *bondIds)
Extract the ids atoms and/or bonds rendered by this molecule from a vtkSelection object.
float BondRadius
Customize bond rendering.
~vtkMoleculeMapper() override
int AtomicRadiusType
Customize atom rendering.
bool RenderBonds
Customize bond rendering.
void Render(vtkRenderer *, vtkActor *) override
Reimplemented from base class.
void SetAtomicRadiusTypeToCustomArrayRadius()
Get/Set the type of radius used to generate the atoms.
void SetAtomicRadiusTypeToCovalentRadius()
Get/Set the type of radius used to generate the atoms.
char * AtomicRadiusArrayName
Customize atom rendering.
int FillInputPortInformation(int port, vtkInformation *info) override
Reimplemented from base class.
static vtkMoleculeMapper * New()
virtual void UpdateAtomGlyphPolyData()
Cached variables and update methods.
int AtomColorMode
Customize atom rendering.
double * GetBounds() override
Reimplemented from base class.
virtual void UpdateGlyphPolyData()
Cached variables and update methods.
vtkNew< vtkPolyData > BondGlyphPolyData
Cached variables and update methods.
vtkNew< vtkTrivialProducer > BondGlyphPointOutput
Cached variables and update methods.
void UseFastSettings()
Set ivars to use fast settings that may be useful for rendering extremely large molecules where the o...
void SetBondColorModeToSingleColor()
Get/Set the method by which bonds are colored.
bool UseMultiCylindersForBonds
Customize bond rendering.
bool GetSupportsSelection() override
Reimplemented from base class.
const char * GetAtomicRadiusTypeAsString()
Get/Set the type of radius used to generate the atoms.
vtkNew< vtkGlyph3DMapper > BondGlyphMapper
Internal mappers.
vtkMolecule * GetInput()
Get/Set the input vtkMolecule.
void SetInputData(vtkMolecule *in)
Get/Set the input vtkMolecule.
virtual void UpdateLatticePolyData()
void UseBallAndStickSettings()
Set ivars to default ball-and-stick settings.
void GlyphRender(vtkRenderer *ren, vtkActor *act)
Internal render methods.
int BondColorMode
Customize bond rendering.
void ReleaseGraphicsResources(vtkWindow *) override
Reimplemented from base class.
void UseVDWSpheresSettings()
Set ivars to default van der Waals spheres settings.
vtkNew< vtkTrivialProducer > AtomGlyphPointOutput
Cached variables and update methods.
void GetBounds(double bounds[6]) override
Reimplemented from base class.
virtual void UpdateBondGlyphPolyData()
Cached variables and update methods.
vtkNew< vtkPolyDataMapper > LatticeMapper
vtkNew< vtkPolyData > LatticePolyData
vtkNew< vtkPolyData > AtomGlyphPolyData
Cached variables and update methods.
class describing a molecule
Allocate and hold a VTK object.
Access to information about the elements.
map vtkPolyData to graphics primitives
concrete dataset represents vertices, lines, polygons, and triangle strips
abstract specification for renderers
data object that represents a "selection" in VTK.
create a polygonal sphere centered at the origin
Producer for stand-alone data objects.
window superclass for vtkRenderWindow