Antiprism 0.23
Classes | Functions

base/symmetry.h File Reference

symmetry and transformation handling More...

#include <vector>
#include <set>
#include <string>
#include <math.h>
#include "mat3d.h"
Include dependency graph for symmetry.h:
This graph shows which files directly or indirectly include this file:

Classes

class  t_set
 A set of transformations. More...
class  iso_type
 Class for an isometry. More...
class  sch_sym_autos
 Class for a set of automorphisms: transformations maintaining symmetry alignment. More...
class  sch_sym
 Class for symmetry elements in Schoenflies notation. More...
class  sch_axis
 Class for a principal axis or mirror symmetry in Schoenflies notation. More...

Functions

t_set operator* (const t_set &s1, const t_set &s2)
 Form direct product of two sets of transformations.
t_setoperator*= (t_set &s1, const t_set &s2)
 Form direct product of two sets of transformations.
t_set operator+ (const t_set &s, const mat3d &m)
 Add a transformation.
t_setoperator+= (t_set &s, const mat3d &m)
 Add a transformation.
int compare (const t_set &t0, const t_set &t1)
 Compare two t_sets for order.
void get_equiv_elems (const geom_if &geom, const t_set &ts, vector< vector< set< int > > > *equiv_sets)
 Get sets of elements that are equivalent under a set of transformations.

Detailed Description

symmetry and transformation handling


Function Documentation

int compare ( const t_set t0,
const t_set t1 
)

Compare two t_sets for order.

Returns -1, 0, or 1 to indicate less, equal or greater. Order by size, and if equal compare matrices sequentially until not equal, and if all equal return 0.

Parameters:
t0first t_set
t1second t_set
Returns:
-1, 0, or 1 to indicate t0 is less, equal or greater than t1
void get_equiv_elems ( const geom_if geom,
const t_set ts,
vector< vector< set< int > > > *  equiv_sets 
)

Get sets of elements that are equivalent under a set of transformations.

Parameters:
geomthe geometry.
tsthe set of transfromations to apply.
equiv_setsvectors of sets of equivalent elements for vertices (0), edges (1) and faces (2).
t_set operator* ( const t_set s1,
const t_set s2 
)

Form direct product of two sets of transformations.

Each transformation from one set is combined with every transformation from the other set.

Parameters:
s1one of the sets.
s2the other set.
Returns:
The direct productof the two sets.
t_set& operator*= ( t_set s1,
const t_set s2 
)

Form direct product of two sets of transformations.

Each transformation of the first set is combined with every transformation from the second set and the result added to the first set.

Parameters:
s1the first set.
s2the second set.
Returns:
A reference to s1 with the direct product of transformations set.
t_set operator+ ( const t_set s,
const mat3d m 
)

Add a transformation.

Parameters:
sa set of transformations.
mthe transformation to add.
Returns:
A copy of
  • s with
  • m added.
t_set& operator+= ( t_set s,
const mat3d m 
)

Add a transformation.

Parameters:
sa set of transformations.
mthe transformation to add.
Returns:
A refernce to
  • s with
  • m added.