Molassembler  3.0.1
Molecule graph and conformer library
Data.h File Reference

Centralizes basic shape data in runtime types. More...

#include "boost/optional/optional_fwd.hpp"
#include "Eigen/Core"
#include "Molassembler/Shapes/Shapes.h"
#include "Molassembler/Shapes/PointGroups.h"
#include "Molassembler/Temple/StrongIndex.h"
#include "Molassembler/Temple/Preprocessor.h"
#include <vector>
Include dependency graph for Data.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 Scine::Molassembler
 Central library namespace.
 
 Scine::Molassembler::Shapes
 Symmetry definitions and properties.
 

Typedefs

using Scine::Molassembler::Shapes::Vertex = Temple::StrongIndex< vertex_index_tag, unsigned >
 Index of a shape vertex.
 
using Scine::Molassembler::Shapes::Permutation = std::vector< Vertex >
 Representation of a shape vertex permutation.
 
using Scine::Molassembler::Shapes::RotationsList = std::vector< Permutation >
 The type to store shape rotations.
 
using Scine::Molassembler::Shapes::AngleFunction = std::function< double(const Vertex, const Vertex) >
 Function returning angle between vertices. More...
 
using Scine::Molassembler::Shapes::Tetrahedron = std::array< boost::optional< Vertex >, 4 >
 This is a four-vertex tetrahedron definition. More...
 
using Scine::Molassembler::Shapes::TetrahedronList = std::vector< Tetrahedron >
 
using Scine::Molassembler::Shapes::Coordinates = Eigen::Matrix< double, 3, Eigen::Dynamic >
 Representation of idealized shape coordinates (does not include centroid)
 

Functions

const std::string & Scine::Molassembler::Shapes::name (Shape shape)
 Fetch the string name of a shape. More...
 
Shape Scine::Molassembler::Shapes::nameFromString (const std::string &shapeNameString)
 Fetch the shape name from its string. More...
 
std::string Scine::Molassembler::Shapes::spaceFreeName (Shape shape)
 Fetch a space-free string of a shape for file naming. More...
 
unsigned Scine::Molassembler::Shapes::size (Shape shape)
 Fetch the number of vertices of a shape. More...
 
const RotationsList & Scine::Molassembler::Shapes::rotations (Shape shape)
 Fetches a shape's list of rotations. More...
 
const Permutation & Scine::Molassembler::Shapes::mirror (Shape shape)
 Fetches the mirror index mapping for a particular shape. More...
 
AngleFunction Scine::Molassembler::Shapes::angleFunction (Shape shape)
 Gets a shape's angle function. More...
 
Coordinates Scine::Molassembler::Shapes::coordinates (Shape shape)
 Fetch a shape's idealized coordiantes. More...
 
PointGroup Scine::Molassembler::Shapes::pointGroup (Shape shape)
 Get a shape's point group. More...
 
unsigned Scine::Molassembler::Shapes::nameIndex (Shape shape)
 Returns the index of a shape within allShapes. More...
 
const TetrahedronList & Scine::Molassembler::Shapes::tetrahedra (Shape shape)
 Fetches the list of tetrahedra defined in a shape. More...
 
bool Scine::Molassembler::Shapes::threeDimensional (Shape shape)
 Returns whether a shape is three dimensional. More...
 

Variables

constexpr std::array< Shape, nShapes > Scine::Molassembler::Shapes::allShapes
 A list of all the enum class values. More...
 

Detailed Description

Centralizes basic shape data in runtime types.

Central inclusion point of the library. Defines the main shape data and all accessors. Shapes are defined in a constexpr fashion and homogenized into a single container at compile-time, allowing both compile-time computation and universal accessibility at run-time.