RMF
enums.h
Go to the documentation of this file.
1 /**
2  * \file RMF/enums.h
3  * \brief The various enums used in RMF.
4  *
5  * Copyright 2007-2022 IMP Inventors. All rights reserved.
6  *
7  */
8 
9 #ifndef RMF_ENUMS_H
10 #define RMF_ENUMS_H
11 
12 #include "RMF/config.h"
13 #include "Enum.h"
14 #include <string>
15 #include <iostream>
16 
17 RMF_ENABLE_WARNINGS
18 
19 namespace RMF {
20 /** \name Node Types
21  \anchor nodetypes
22 
23  The types nodes can take in an RMF file.
24  @{
25 */
26 
27 extern RMFEXPORT const NodeType INVALID_NODE_TYPE;
28 //! The root node
29 extern RMFEXPORT const NodeType ROOT;
30 
31 //! Represent part of a molecule
32 extern RMFEXPORT const NodeType REPRESENTATION;
33 //! Store a geometric object
34 extern RMFEXPORT const NodeType GEOMETRY;
35 //! Store information about some feature of the system
36 /** For example, the particles involved in scoring
37  functions and their score can be encoded as feature
38  nodes.
39 */
40 extern RMFEXPORT const NodeType FEATURE;
41 /** Store a reference to another node. This node should
42  be an alias decorator node and have no other data,
43  at least for now. Aliases should be thought of as simply referencing
44  existing objects in the scene, not creating new objects.
45  */
46 extern RMFEXPORT const NodeType ALIAS;
47 //! Arbitrary data that is not standardized
48 /** Programs can use these keys to store any extra data
49  they want to put into the file.
50  */
51 extern RMFEXPORT const NodeType CUSTOM;
52 //! A link between two atoms
53 /** These are mostly for display purposes e.g. to show a wireframe
54  view of the molecule. */
55 extern RMFEXPORT const NodeType BOND;
56 //! A node that is purely there for organizational purposes
57 /** This includes nodes that are just RMF::ReferenceFrame nodes.
58  */
59 extern RMFEXPORT const NodeType ORGANIZATIONAL;
60 //! Represent the process by which a structure was created
61 extern RMFEXPORT const NodeType PROVENANCE;
62 #ifndef RMF_DOXYGEN
63 //! An internal link to another node
64 extern RMFEXPORT const NodeType LINK;
65 #endif
66 /**@} */
67 
68 /** \name Frame Types
69  \anchor frametypes
70 
71  The types frames can take in an RMF file.
72  @{
73 */
74 extern RMFEXPORT const FrameType INVALID_FRAME_TYPE;
75 //! The root frame
76 extern RMFEXPORT const FrameType STATIC;
77 //! A frame in a sequence of frames
78 extern RMFEXPORT const FrameType FRAME;
79 //! An independent model
80 extern RMFEXPORT const FrameType MODEL;
81 //! A cluster center
82 extern RMFEXPORT const FrameType CENTER;
83 //! An alias for another frame
84 extern RMFEXPORT const FrameType FRAME_ALIAS;
85 
86 // Work around a Windows compile error. Standard Windows header WinGDI.h
87 // globally #defines ALTERNATE to be "1", which will cause a compile
88 // error below unless we #undef it first.
89 #ifdef ALTERNATE
90 #undef ALTERNATE
91 #endif
92 
93 //! An alternate state for a frame or model
94 extern RMFEXPORT const FrameType ALTERNATE;
95 /** @} */
96 
97 /** \name Representation Types
98  \anchor representationtypes
99 
100  The types that representations used in the decorator::Alternatives decorator
101  can take.
102  @{
103 */
104 /** Representation via decorator::Particle nodes, the default. */
105 extern RMFEXPORT const RepresentationType PARTICLE;
106 
107 /** Represent the structure with at set of decorator::GaussianParticle nodes. */
108 extern RMFEXPORT const RepresentationType GAUSSIAN_PARTICLE;
109 /** @} */
110 
111 } /* namespace RMF */
112 
113 RMF_DISABLE_WARNINGS
114 
115 #endif /* RMF_ENUMS_H */
const NodeType REPRESENTATION
Represent part of a molecule.
const NodeType FEATURE
Store information about some feature of the system.
const NodeType ALIAS
Enum< RepresentationTypeTag > RepresentationType
Definition: Enum.h:127
const FrameType MODEL
An independent model.
const RepresentationType PARTICLE
const NodeType CUSTOM
Arbitrary data that is not standardized.
const FrameType FRAME_ALIAS
An alias for another frame.
const FrameType FRAME
A frame in a sequence of frames.
Enum< FrameTypeTag > FrameType
Definition: Enum.h:116
const NodeType PROVENANCE
Represent the process by which a structure was created.
Declaration of RMF::Enum.
const NodeType GEOMETRY
Store a geometric object.
const FrameType ALTERNATE
An alternate state for a frame or model.
const FrameType STATIC
The root frame.
const NodeType ROOT
The root node.
const NodeType ORGANIZATIONAL
A node that is purely there for organizational purposes.
const NodeType BOND
A link between two atoms.
const RepresentationType GAUSSIAN_PARTICLE
Enum< NodeTypeTag > NodeType
Definition: Enum.h:121
const FrameType CENTER
A cluster center.