71 #ifndef __vtkMolecule_h
72 #define __vtkMolecule_h
74 #include "vtkCommonDataModelModule.h"
75 #include "vtkUndirectedGraph.h"
84 class vtkAbstractElectronicData;
88 class VTKCOMMONDATAMODEL_EXPORT
vtkMolecule :
public vtkUndirectedGraph
93 void PrintSelf(ostream &os,
vtkIndent indent);
94 virtual void Initialize();
118 return this->AppendAtom(atomicNumber,
vtkVector3f(x, y, z));
133 unsigned short order = 1);
135 unsigned short order = 1)
137 return this->AppendBond(atom1.
Id, atom2.
Id, order);
151 unsigned short GetAtomAtomicNumber(
vtkIdType atomId);
155 void SetAtomAtomicNumber(
vtkIdType atomId,
156 unsigned short atomicNum);
162 void SetAtomPosition(
vtkIdType atomId,
double x,
double y,
double z);
168 void GetAtomPosition(
vtkIdType atomId,
float pos[3]);
173 void SetBondOrder(
vtkIdType bondId,
unsigned short order);
174 unsigned short GetBondOrder(
vtkIdType bondId);
194 vtkGetObjectMacro(ElectronicData, vtkAbstractElectronicData);
195 virtual void SetElectronicData(vtkAbstractElectronicData*);
213 virtual void ShallowCopyAttributes(
vtkMolecule *m);
235 static bool GetPlaneFromBond(
const vtkAtom &atom1,
const vtkAtom &atom2,
244 virtual void CopyStructureInternal(
vtkMolecule *m,
bool deep);
247 virtual void CopyAttributesInternal(
vtkMolecule *m,
bool deep);
256 void UpdateBondList();
class describing a molecule
virtual int GetDataObjectType()
vtkBond AppendBond(const vtkAtom &atom1, const vtkAtom &atom2, unsigned short order=1)
a simple class to control print indentation
perform various plane computations
convenience proxy for vtkMolecule
convenience proxy for vtkMolecule
vtkAtom AppendAtom(unsigned short atomicNumber, double x, double y, double z)
helper class to get VTK data object types as string and instantiate them
represent and manipulate 3D points
vtkAbstractElectronicData * ElectronicData
dynamic, self-adjusting array of unsigned short