22#define MGX3D_GEOM_GEOMENTITY_H_
33/* ----------------------------------------------------------------------------*/
44#include < set>
5- #include < vector>
6- #include < functional>
75/* ----------------------------------------------------------------------------*/
86#include < TopoDS_Shape.hxx>
97/* ----------------------------------------------------------------------------*/
1311#include " Utils/Point.h"
1412#include " Geom/GeomProperty.h"
1513#include " Geom/GeomEntityVisitor.h"
16- #include " Services/DescriptionService.h"
1714/* ----------------------------------------------------------------------------*/
1815#include < gmds/math/Triangle.h>
1916/* ----------------------------------------------------------------------------*/
20- namespace Mgx3D {
21- /* ----------------------------------------------------------------------------*/
2217/* !
2318 * \namespace Mgx3D::Geom
2419 *
2520 * \brief Espace de nom des classes associées à la géométrie
26- *
27- *
2821 */
29- namespace Geom {
30- /* ----------------------------------------------------------------------------*/
31- class Volume ;
32- class Surface ;
33- class Curve ;
34- class Vertex ;
35- class GeomProperty ;
36- class MementoEntity ;
22+ namespace Mgx3D ::Geom {
3723/* ----------------------------------------------------------------------------*/
3824 /* * \enum Orientation gives a list of orientation option for geometric
3925 * entities.
@@ -52,7 +38,7 @@ class MementoEntity;
5238 * sommets, courbes, surfaces et volumes géométriques.
5339 *
5440 */
55- class GeomEntity : public Internal ::InternalEntity{
41+ class GeomEntity : public Internal ::InternalEntity {
5642protected:
5743 /* ------------------------------------------------------------------------*/
5844 /* * \brief Constructeur. Une entité délègue un certain nombre de calculs
@@ -74,9 +60,7 @@ class GeomEntity : public Internal::InternalEntity{
7460 /* * \brief Crée une copie (avec allocation mémoire, appel à new) de l'objet
7561 * courant.
7662 */
77- virtual GeomEntity* clone (Internal::Context&){
78- throw TkUtil::Exception (TkUtil::UTF8String (" GeomEntity::clone pas implementee." , TkUtil::Charset::UTF_8));
79- };
63+ virtual GeomEntity* clone (Internal::Context&) = 0;
8064
8165 /* ------------------------------------------------------------------------*/
8266 /* * \brief Destructeur
@@ -100,7 +84,7 @@ class GeomEntity : public Internal::InternalEntity{
10084 /* * \brief Calcule l'aire d'une entité: Pour une courbe, c'est la
10185 * longueur, pour une surface, l'aire, pour un volume le volume.
10286 */
103- virtual double computeArea () const =0;
87+ virtual double computeArea () const = 0;
10488
10589 /* ------------------------------------------------------------------------*/
10690 /* * \brief Retourne l'aire d'une entité: Pour une courbe, c'est la
@@ -111,9 +95,7 @@ class GeomEntity : public Internal::InternalEntity{
11195 /* * \brief Stocke l'aire d'une entité: Pour une courbe, c'est la
11296 * longueur, pour une surface, l'aire, pour un volume le volume.
11397 */
114- virtual void setArea (double area)
115- {m_computedArea = area;}
116-
98+ void setArea (double area) { m_computedArea = area; }
11799 void forceComputeArea () { m_computedAreaIsUpToDate = false ; }
118100
119101 /* ------------------------------------------------------------------------*/
@@ -128,7 +110,7 @@ class GeomEntity : public Internal::InternalEntity{
128110 /* * \brief retourne un point sur l'objet au centre si possible
129111 * \author Eric Brière de l'Isle
130112 */
131- virtual Utils::Math::Point getCenteredPosition () const =0;
113+ virtual Utils::Math::Point getCenteredPosition () const = 0;
132114
133115 /* ------------------------------------------------------------------------*/
134116 /* * \brief Fournit l'accès à la propriété de l'entité géométrique
@@ -164,6 +146,12 @@ class GeomEntity : public Internal::InternalEntity{
164146 */
165147 virtual void setDestroyed (bool b);
166148
149+ /* ------------------------------------------------------------------------*/
150+ /* * \brief Donne le nom du type d'objet (un nom distinct par type d'objet)
151+ *
152+ */
153+ std::string getTypeName () const override { return objectTypeToObjectTypeName (getType ()); }
154+
167155private:
168156 // / Propriétés géométriques (qui peut être spécifique, PropertyBox par exemple)
169157 GeomProperty* m_geomProp;
@@ -173,12 +161,8 @@ class GeomEntity : public Internal::InternalEntity{
173161
174162 // / résultat de la commande computeArea, qui peut être longue
175163 mutable double m_computedArea;
176-
177164};
178165/* ----------------------------------------------------------------------------*/
179- } // end namespace Geom
180- /* ----------------------------------------------------------------------------*/
181- } // end namespace Mgx3D
166+ } // end namespace Mgx3D::Geom
182167/* ----------------------------------------------------------------------------*/
183168#endif /* MGX3D_GEOM_GEOMENTITY_H_ */
184- /* ----------------------------------------------------------------------------*/
0 commit comments