-// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
#include "Driver_SMESHDS_Mesh.h"
#include "SMDSAbs_ElementType.hxx"
+#include "SMDS_ElemIterator.hxx"
+
+#include <gp_Pnt.hxx>
+
+/*!
+ * \brief Class for storing control points for writing GMF size maps
+ */
+class MESHDriverGMF_EXPORT Control_Pnt : public gp_Pnt
+{
+public:
+ Control_Pnt();
+ Control_Pnt(const gp_Pnt& aPnt, double theSize);
+ Control_Pnt(double x, double y, double z);
+ Control_Pnt(double x, double y, double z, double size);
+
+ double Size() const { return size; };
+ void SetSize( double theSize ) { size = theSize; };
+
+private:
+ double size;
+};
/*!
* \brief Driver Writing a mesh into a GMF file.
DriverGMF_Write();
~DriverGMF_Write();
+ void SetExportRequiredGroups( bool toExport )
+ {
+ _exportRequiredGroups = toExport;
+ }
+
virtual Status Perform();
-};
+
+ // Size Maps
+ Status PerformSizeMap( const std::vector<Control_Pnt>& points );
+ void SetSizeMapPrefix( std::string prefix )
+ {
+ myVerticesFile = prefix + ".mesh";
+ mySolFile = prefix + ".sol";
+ };
+ std::vector<std::string> GetSizeMapFiles();
-/*!
- * \brief An object closing GMF mesh at destruction
- */
-struct DriverGMF_MeshCloser
-{
- int _gmfMeshID;
- DriverGMF_MeshCloser( const int gmfMeshID ): _gmfMeshID(gmfMeshID) {}
- ~DriverGMF_MeshCloser();
-};
+ private:
+
+ SMDS_ElemIteratorPtr elementIterator(SMDSAbs_ElementType type);
+ SMDS_ElemIteratorPtr elementIterator(SMDSAbs_EntityType type);
+ SMDS_ElemIteratorPtr elementIterator(SMDSAbs_GeometryType type);
+ bool _exportRequiredGroups;
+ std::string myVerticesFile;
+ std::string mySolFile;
+};
#endif