STORMM Source Documentation
Loading...
Searching...
No Matches
render_molecule.h
1// -*-c++-*-
2#ifndef STORMM_RENDER_MOLECULE_H
3#define STORMM_RENDER_MOLECULE_H
4
5#include <fstream>
6#include <iostream>
7#include <string>
8#include <vector>
9#include "copyright.h"
10#include "Chemistry/periodic_table.h"
11#include "Math/rounding.h"
12#include "Math/vector_ops.h"
13#include "Parsing/parse.h"
14#include "Parsing/parsing_enumerators.h"
15#include "Topology/atomgraph.h"
16#include "Topology/atomgraph_abstracts.h"
17#include "Trajectory/coordinateframe.h"
18#include "Trajectory/coordinate_series.h"
19#include "render_options.h"
20
21namespace stormm {
22namespace review {
23
24using chemistry::element_maximum_count;
25using chemistry::elemental_symbols;
26using parse::char2ToString;
27using parse::char4ToString;
28using parse::intToString;
29using parse::NumberFormat;
30using parse::realToString;
31using parse::removeTailingWhiteSpace;
32using stmath::accumulateBitmask;
33using stmath::readBitFromMask;
34using stmath::roundUp;
35using topology::AtomGraph;
36using topology::ChemicalDetailsKit;
37using topology::NonbondedKit;
38using trajectory::CoordinateFrame;
39using trajectory::CoordinateFrameReader;
40using trajectory::CoordinateSeries;
41using trajectory::CoordinateSeriesReader;
42
51std::vector<int> traceBondLines(const NonbondedKit<double> &nbk, const ChemicalDetailsKit &cdk,
52 const int mol_index, std::vector<uint> *atom_coverage,
53 std::vector<uint> *bond_coverage);
54
73template <typename T>
74void renderMolecule(std::ofstream *foutp, const T* atom_x, const T* atom_y, const T* atom_z,
75 const NonbondedKit<double> &nbk, const ChemicalDetailsKit &cdk,
76 const RenderOptions &ropt, GridFileSyntax syntax, size_t nframe = 1);
77
78void renderMolecule(std::ofstream *foutp, const CoordinateFrame *cf, const AtomGraph *ag,
79 const RenderOptions *ropt, GridFileSyntax syntax);
80
81void renderMolecule(std::ofstream *foutp, const CoordinateFrame &cf, const AtomGraph &ag,
82 const RenderOptions &ropt, GridFileSyntax syntax);
83
84template <typename T>
85void renderMolecule(std::ofstream *foutp, const CoordinateSeries<T> *cs, const AtomGraph *ag,
86 const RenderOptions *ropt, GridFileSyntax syntax);
87
88template <typename T>
89void renderMolecule(std::ofstream *foutp, const CoordinateSeries<T> &cs, const AtomGraph &ag,
90 const RenderOptions &ropt, GridFileSyntax syntax);
92
93} // namespace review
94} // namespace stormm
95
96#include "render_molecule.tpp"
97
98#endif
Definition render_options.h:48
A struct to hold information relating to an Amber topology. This struct's member functions are limite...
Definition atomgraph.h:50
Store the coordinates and box information for a frame, only. This abridged struct can serve when the ...
Definition coordinateframe.h:111
Store the coordinates and box information for a series of frames, in one of several levels of precisi...
Definition coordinate_series.h:137
Information on atoms and residues which may be useful for applying atom masks or identifying specific...
Definition atomgraph_abstracts.h:382
Information needed for non-bonded real-space calculations. Templating is used as above,...
Definition atomgraph_abstracts.h:287