63 #include "vtkCommonDataModelModule.h"
72 VTK_ABI_NAMESPACE_BEGIN
107 vtkAtom AppendAtom(
unsigned short atomicNumber,
double x,
double y,
double z);
110 return this->AppendAtom(atomicNumber, pos[0], pos[1], pos[2]);
115 return this->AppendAtom(atomicNumber, pos[0], pos[1], pos[2]);
138 return this->AppendBond(atom1.
Id, atom2.
Id,
order);
155 unsigned short GetAtomAtomicNumber(
vtkIdType atomId);
160 void SetAtomAtomicNumber(
vtkIdType atomId,
unsigned short atomicNum);
167 void SetAtomPosition(
vtkIdType atomId,
double x,
double y,
double z);
170 this->SetAtomPosition(atomId, pos[0], pos[1], pos[2]);
179 void GetAtomPosition(
vtkIdType atomId,
float pos[3]);
180 void GetAtomPosition(
vtkIdType atomId,
double pos[3]);
188 unsigned short GetBondOrder(
vtkIdType bondId);
257 virtual void ShallowCopyAttributes(
vtkMolecule* m);
294 static bool GetPlaneFromBond(
349 void AllocateAtomGhostArray();
359 void AllocateBondGhostArray();
373 return this->
Initialize(atomPositions,
nullptr, atomData);
408 vtkSetStringMacro(AtomicNumberArrayName);
409 vtkGetStringMacro(AtomicNumberArrayName);
416 vtkSetStringMacro(BondOrdersArrayName);
417 vtkGetStringMacro(BondOrdersArrayName);
436 virtual void CopyStructureInternal(
vtkMolecule* m,
bool deep);
441 virtual void CopyAttributesInternal(
vtkMolecule* m,
bool deep);
452 void UpdateBondList();
474 VTK_ABI_NAMESPACE_END
static vtkUndirectedGraph * GetData(vtkInformation *info)
Retrieve a graph from an information vector.
vtkAtom AppendAtom(unsigned short atomicNumber, double pos[3])
Add new atom with the specified atomic number and position.
virtual bool CheckedDeepCopy(vtkGraph *g)
Performs the same operation as DeepCopy(), but instead of reporting an error for an incompatible grap...
class describing a molecule
vtkIdType GetBondId(vtkIdType a, vtkIdType b)
Return the edge id from the underlying graph.
char * BondOrdersArrayName
vtkIdType GetEdgeId(vtkIdType a, vtkIdType b)
Returns the Id of the edge between vertex a and vertex b.
vtkBond AppendBond(const vtkAtom &atom1, const vtkAtom &atom2, unsigned short order=1)
Add a bond between the specified atoms, optionally setting the bond order (default: 1)...
dynamic, self-adjusting array of vtkIdType
static vtkUndirectedGraph * New()
Provides access to and storage of chemical electronic data.
Base class for graph data types.
int Initialize(vtkPoints *atomPositions, vtkDataSetAttributes *atomData)
Overloads Initialize method.
vtkUnsignedCharArray * AtomGhostArray
unsigned long GetActualMemorySize() override
Return the actual size of the data in kibibytes (1024 bytes).
vtkDataSetAttributes * GetAtomData()
Return the VertexData of the underlying graph.
a simple class to control print indentation
bool BondListIsDirty
The graph superclass does not provide fast random access to the edge (bond) data. ...
abstract superclass for arrays of numeric data
perform various plane computations
vtkDataSetAttributes * GetBondData()
Return the EdgeData of the underlying graph.
vtkUnsignedCharArray * BondGhostArray
represent and manipulate attribute data in a dataset
int GetDataObjectType() override
Return what type of dataset this is.
void DeepCopy(vtkDataObject *obj) override
Deep copies the data object into this graph.
void ShallowCopy(vtkDataObject *obj) override
Shallow copies the data object into this graph.
vtkVector3d LatticeOrigin
dynamic, self-adjusting array of unsigned char
void SetBondListDirty()
The graph superclass does not provide fast random access to the edge (bond) data. ...
convenience proxy for vtkMolecule
void SetAtomPosition(vtkIdType atomId, double pos[3])
Set the position of the atom with the specified id.
virtual bool CheckedShallowCopy(vtkGraph *g)
Performs the same operation as ShallowCopy(), but instead of reporting an error for an incompatible g...
char * AtomicNumberArrayName
virtual vtkDataSetAttributes * GetEdgeData()
Get the vertex or edge data.
void Initialize() override
Initialize to an empty graph.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkAtom AppendAtom()
Add new atom with atomic number 0 (dummy atom) at origin.
convenience proxy for vtkMolecule
virtual vtkDataSetAttributes * GetVertexData()
Get the vertex or edge data.
represent and manipulate 3x3 transformation matrices
vtkSmartPointer< vtkMatrix3x3 > Lattice
general representation of visualization data
represent and manipulate 3D points
vtkAbstractElectronicData * ElectronicData
vtkAtom AppendAtom(unsigned short atomicNumber, const vtkVector3f &pos)
Add new atom with the specified atomic number and position.
dynamic, self-adjusting array of unsigned short