Antiprism 0.23
|
Class for symmetry elements in Schoenflies notation. More...
#include <symmetry.h>
Public Types | |
enum | |
Schoenflies symmetry type identifiers. | |
Public Member Functions | |
sch_sym (const geom_if &geom, vector< vector< set< int > > > *equiv_sets=0) | |
Constructor. | |
sch_sym (const t_set &ts) | |
Constructor. | |
sch_sym (int type=0, int n=0, const mat3d &pos=mat3d(), char *errmsg=0) | |
Constructor. | |
sch_sym (const string &name, const mat3d &pos=mat3d(), char *errmsg=0) | |
Constructor. | |
sch_sym (const sch_axis &sym_ax, const vec3d ¢=vec3d::zero) | |
Constructor. | |
bool | init (const geom_if &geom, vector< vector< set< int > > > *equiv_sets=0) |
Initialiser. | |
bool | init (int type, int n=0, const mat3d &pos=mat3d(), char *errmsg=0) |
Initialiser. | |
bool | init (const string &name, const mat3d &pos=mat3d(), char *errmsg=0) |
Initialiser. | |
void | init (const sch_axis &sym_axis, const vec3d ¢=vec3d::zero) |
Initialiser. | |
int | get_sym_type () const |
Get the symmetry type. | |
int | get_nfold () const |
Get the n-fold order of the axis with highest n. | |
string | get_symbol () const |
Get the Schoenflies symbol for the symmetry type. | |
mat3d | get_to_std () const |
Get the tranformation to standard symmetry type. | |
t_set & | get_trans (t_set &ts) const |
Get the symmetry transformations. | |
t_set | get_trans () const |
Get the symmetry transformations. | |
const set< sch_sym > & | get_sub_syms () const |
Get the symmetry subgroups. | |
sch_sym_autos & | get_autos () |
Get the Euclidean outer automorphisms. | |
sch_sym | get_sub_sym (const sch_sym &sub_sym, int conj_type=0, char *errmsg=0) const |
Get a symmetry subgroup. | |
sch_sym | get_sub_sym (const string &sub, char *errmsg) const |
Get a symmetry subgroup. | |
const set< sch_axis > & | get_axes () const |
Get the axes or mirrors. | |
const set< vec3d > & | get_mirrors () const |
Get the mirrors. | |
bool | has_inversion_symmetry () const |
Is an inversion a symmetry. | |
bool | is_set () const |
Check if a valid symmetry type is set. |
Class for symmetry elements in Schoenflies notation.
sch_sym::sch_sym | ( | const geom_if & | geom, |
vector< vector< set< int > > > * | equiv_sets = 0 |
||
) |
Constructor.
Find the symmetry in Schoenflies notation.
geom | geometry to find the symmetry type for. |
equiv_sets | for the vertices, edges and faces set up a vector of sets of equivalent elements. |
sch_sym::sch_sym | ( | const t_set & | ts | ) |
Constructor.
Find the symmetry in Schoenflies notation.
ts | group of transformations to find the symmetry type for. |
Constructor.
type | the symmetry type. |
n | n-fold order, for a principal axis, otherwise 0. |
pos | transformation that carries an object of this symmetry type onto the standard symetry type. |
errmsg | an array at least MSG_SZ chars long to return any error message. |
Constructor.
name | name of symmetry type to set up. |
pos | transformation that carries an object of this symmetry type onto the standard symetry type. |
errmsg | an array at least MSG_SZ chars long to return any error message. |
Constructor.
sym_ax | symmetry type in symmetry axis form. |
cent | coordinates of symmetry centre |
sch_sym_autos & sch_sym::get_autos | ( | ) |
Get the Euclidean outer automorphisms.
These map the symmetry transformations onto themselves, with one example included from each conjugacy class, the first value in the returned transformations is always the identity.
const set< sch_axis > & sch_sym::get_axes | ( | ) | const |
Get the axes or mirrors.
const set< vec3d > & sch_sym::get_mirrors | ( | ) | const |
Get the mirrors.
int sch_sym::get_nfold | ( | ) | const [inline] |
Get the n-fold order of the axis with highest n.
This value is used in conjunction with get_sym_type()
to describe principal axis symmetry types. If the symmetry type is sym_S
and the axis has rotational n-fold symmetry then 2n is returned.
sch_sym sch_sym::get_sub_sym | ( | const sch_sym & | sub_sym, |
int | conj_type = 0 , |
||
char * | errmsg = 0 |
||
) | const |
Get a symmetry subgroup.
sub_sym | the symmetry subgroup |
conj_type | use to select from inequivalent (non-conjugate) subgroups. |
errmsg | an array at least MSG_SZ chars long to return any error message. |
sch_sym sch_sym::get_sub_sym | ( | const string & | sub, |
char * | errmsg | ||
) | const |
Get a symmetry subgroup.
sub | the symmetry subgroup name and conjugation number, separated by a comma |
errmsg | an array at least MSG_SZ chars long to return any error message. |
const set< sch_sym > & sch_sym::get_sub_syms | ( | ) | const |
Get the symmetry subgroups.
Only one example is included from each conjugacy class
int sch_sym::get_sym_type | ( | ) | const [inline] |
Get the symmetry type.
string sch_sym::get_symbol | ( | ) | const |
Get the Schoenflies symbol for the symmetry type.
mat3d sch_sym::get_to_std | ( | ) | const [inline] |
Get the tranformation to standard symmetry type.
Get the symmetry transformations.
ts | to return the set of symmetry transformations for this symmetry type. |
t_set sch_sym::get_trans | ( | ) | const |
Get the symmetry transformations.
bool sch_sym::has_inversion_symmetry | ( | ) | const |
Is an inversion a symmetry.
true
if an inversion is a symmetry, otherwise false
Initialiser.
sym_axis | symmetry type in symmetry axis form. |
cent | coordinates of symmetry centre |
bool sch_sym::init | ( | const geom_if & | geom, |
vector< vector< set< int > > > * | equiv_sets = 0 |
||
) |
Initialiser.
Find the symmetry in Schoenflies notation.
geom | geometry to find the symmetry type for. |
equiv_sets | for the vertices, edges and faces set up a vector of sets of equivalent elements |
Initialiser.
type | the symmetry type. |
n | n-fold order, for a principal axis, otherwise 0. |
pos | transformation that carries an object of this symmetry type onto the standard symetry type. |
errmsg | an array at least MSG_SZ chars long to return any error message. |
Initialiser.
name | name of symmetry type to set up. |
pos | transformation that carries an object of this symmetry type onto the standard symetry type. |
errmsg | an array at least MSG_SZ chars long to return any error message. |
bool sch_sym::is_set | ( | ) | const [inline] |
Check if a valid symmetry type is set.
true
if set to valid type, otherwise false