X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FDriverGMF%2FDriverGMF_Write.hxx;h=cb2e6f12adc1894f9886da6a77a7171ff04b4bbb;hp=fd0918d09ef2ccabcf13e596b3117799f0d36916;hb=7eda9ca931ed2a11cb5e4637e4ffe19f5c061115;hpb=f5016d85b7b4b88623723027a1585c6414c4dc66 diff --git a/src/DriverGMF/DriverGMF_Write.hxx b/src/DriverGMF/DriverGMF_Write.hxx index fd0918d09..cb2e6f12a 100644 --- a/src/DriverGMF/DriverGMF_Write.hxx +++ b/src/DriverGMF/DriverGMF_Write.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2016 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 @@ -6,7 +6,7 @@ // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either -// version 2.1 of the License. +// version 2.1 of the License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -31,6 +31,27 @@ #include "Driver_SMESHDS_Mesh.h" #include "SMDSAbs_ElementType.hxx" +#include "SMDS_ElemIterator.hxx" + +#include + +/*! + * \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. @@ -42,18 +63,31 @@ public: DriverGMF_Write(); ~DriverGMF_Write(); + void SetExportRequiredGroups( bool toExport ) + { + _exportRequiredGroups = toExport; + } + virtual Status Perform(); -}; + + // Size Maps + Status PerformSizeMap( const std::vector& points ); + void SetSizeMapPrefix( std::string prefix ) + { + myVerticesFile = prefix + ".mesh"; + mySolFile = prefix + ".sol"; + }; + std::vector 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