vrecko
virtual reality framework
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
PS_Symmetry.h
Go to the documentation of this file.
1 
8 #pragma once
9 
10 
11 #include <osg/Geometry>
12 
13 #include <xercesc/parsers/XercesDOMParser.hpp>
14 #include <xercesc/dom/DOM.hpp>
15 #include <xercesc/sax/HandlerBase.hpp>
16 #include <xercesc/util/XMLString.hpp>
17 #include <xercesc/util/PlatformUtils.hpp>
18 
19 #include <xercesc/dom/DOMWriter.hpp>
20 #include <xercesc/framework/StdOutFormatTarget.hpp>
21 #include <xercesc/framework/LocalFileFormatTarget.hpp>
22 
23 #include <fstream>
24 
25 XERCES_CPP_NAMESPACE_USE
26 
27 namespace APDYNAMICART
28 {
29 
30 
32 {
33  int order;
34  osg::Vec3 point;
35 };
36 
38 {
39  int face; //index of face
40  int axis; //axis of axis
41 };
42 
43 
44 class PS_Symmetry {
45 
46  public:
47 
49  void makeInstances(std::vector<osg::Vec3>* points);
50 
52  std::vector<osg::Quat>* makeRotations();
53 
54 
55  //load symmetry template from file
56  int load(std::string fileName);
57 
58  int getNumberofFaces() {return n_faces;}
59 
60  std::vector<symmetry_axis *>* getAxes() {return axes;}
61 
62 
63  private:
64  std::vector<symmetry_axis *>* axes;
65  std::vector<symmetry_pair *>* pairs;
66  int n_faces; //number of faces created by symmetries
67 
68 
69  //load all axes of given symmetry group
70  int loadAxes(std::string fileName);
71 
72 
73 };
74 
75 
76 
77 }