Topology.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef SOFA_CORE_COMPONENTMODEL_TOPOLOGY_TOPOLOGY_H
00028 #define SOFA_CORE_COMPONENTMODEL_TOPOLOGY_TOPOLOGY_H
00029
00030 #include <stdlib.h>
00031 #include <string>
00032 #include <iostream>
00033 #include <sofa/core/objectmodel/BaseObject.h>
00034
00035 #include <sofa/helper/vector.h>
00036 namespace sofa
00037 {
00038
00039 namespace core
00040 {
00041
00042 namespace componentmodel
00043 {
00044
00045 namespace topology
00046 {
00047
00049 enum TopologyChangeType
00050 {
00051 BASE,
00052 ENDING_EVENT,
00053 POINTSINDICESSWAP,
00054 POINTSADDED,
00055 POINTSREMOVED,
00056 POINTSRENUMBERING,
00057 EDGESADDED,
00058 EDGESREMOVED,
00059 EDGESRENUMBERING,
00060 TRIANGLESADDED,
00061 TRIANGLESREMOVED,
00062 TRIANGLESRENUMBERING,
00063 TETRAHEDRAADDED,
00064 TETRAHEDRAREMOVED,
00065 TETRAHEDRARENUMBERING,
00066
00067 QUADSADDED,
00068 QUADSREMOVED,
00069 QUADSRENUMBERING,
00070 HEXAHEDRAADDED,
00071 HEXAHEDRAREMOVED,
00072 HEXAHEDRARENUMBERING
00073 };
00074
00075
00084 class TopologyChange
00085 {
00086 public:
00091 virtual ~TopologyChange() {};
00092
00094 TopologyChangeType getChangeType() const { return m_changeType;}
00095
00096 protected:
00097 TopologyChange( TopologyChangeType changeType = BASE )
00098 : m_changeType(changeType)
00099 {}
00100
00101 TopologyChangeType m_changeType;
00102 };
00103
00105 class EndingEvent : public core::componentmodel::topology::TopologyChange
00106 {
00107 public:
00108 EndingEvent()
00109 : core::componentmodel::topology::TopologyChange(core::componentmodel::topology::ENDING_EVENT)
00110 {}
00111 };
00112
00113
00114 class Topology : public virtual core::objectmodel::BaseObject
00115 {
00116 public:
00117 virtual ~Topology()
00118 {}
00119
00120
00121
00122
00123 virtual bool hasPos() const { return false; }
00124 virtual int getNbPoints() const { return 0; }
00125 virtual void setNbPoints(int ){}
00126 virtual double getPX(int ) const { return 0.0; }
00127 virtual double getPY(int ) const { return 0.0; }
00128 virtual double getPZ(int ) const { return 0.0; }
00129 };
00130
00131 }
00132
00133 }
00134
00135 }
00136
00137 }
00138
00139 #endif