-// Copyright (C) 2007-2016 CEA/DEN, EDF R&D
+// Copyright (C) 2007-2022 CEA/DEN, EDF R&D
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
#include CORBA_CLIENT_HEADER(GEOM_Gen)
#include <SMESH_Gen_i.hxx>
-class SMESH_Mesh;
class HexoticPlugin_Hypothesis;
class TCollection_AsciiString;
class gp_Pnt;
+class MG_Hexotic_API;
class HEXOTICPLUGIN_EXPORT HexoticPlugin_Hexotic: public SMESH_3D_Algo
{
public:
- HexoticPlugin_Hexotic(int hypId, int studyId, SMESH_Gen* gen);
+ HexoticPlugin_Hexotic(int hypId, SMESH_Gen* gen);
virtual ~HexoticPlugin_Hexotic();
#ifdef WITH_BLSURFPLUGIN
virtual bool Compute(SMESH_Mesh & aMesh, SMESH_MesherHelper* aHelper);
- virtual void CancelCompute();
- bool computeCanceled() { return _compute_canceled;};
+ virtual void CancelCompute();
+ bool computeCanceled() { return _computeCanceled; }
virtual bool Evaluate(SMESH_Mesh& aMesh, const TopoDS_Shape& aShape,
MapShapeNbElems& aResMap);
std::string getHexoticCommand(const TCollection_AsciiString& Hexotic_In,
const TCollection_AsciiString& Hexotic_Out,
- const TCollection_AsciiString& Hexotic_Sol) const;
+ const TCollection_AsciiString& Hexotic_Sol,
+ const bool forExecutable) const;
GEOM::GEOM_Object_var entryToGeomObj(std::string entry);
TopoDS_Shape entryToShape(std::string entry);
- std::vector<std::string> writeSizeMapFile(std::string fileName);
+ std::vector<std::string> writeSizeMapFile(MG_Hexotic_API* mgOutput,
+ std::string fileName);
- // Functions to get sample point from shapes
- void createControlPoints( const TopoDS_Shape& theShape,
- const double& theSize,
- std::vector< Control_Pnt >& thePoints );
- void createPointsSampleFromEdge( const TopoDS_Shape& aShape,
- const double& theSize,
- std::vector<Control_Pnt>& thePoints );
- void createPointsSampleFromFace( const TopoDS_Shape& aShape,
- const double& theSize,
- std::vector<Control_Pnt>& thePoints );
- void createPointsSampleFromSolid( const TopoDS_Shape& aShape,
- const double& theSize,
- std::vector<Control_Pnt>& thePoints );
-
- // Some functions for surface sampling
- void subdivideTriangle( const gp_Pnt& p1,
- const gp_Pnt& p2,
- const gp_Pnt& p3,
- const double& theSize,
- std::vector<Control_Pnt>& thePoints );
-
- std::vector<gp_Pnt> computePointsForSplitting( const gp_Pnt& p1,
- const gp_Pnt& p2,
- const gp_Pnt& p3 );
- gp_Pnt tangencyPoint(const gp_Pnt& p1,
- const gp_Pnt& p2,
- const gp_Pnt& Center);
-
-
- int _iShape;
- int _nbShape;
- int _hexesMinLevel;
- int _hexesMaxLevel;
- double _hexesMinSize;
- double _hexesMaxSize;
- bool _hexoticIgnoreRidges;
- bool _hexoticInvalidElements;
- bool _hexoticFilesKept;
- int _hexoticSharpAngleThreshold;
- int _hexoticNbProc;
- std::string _hexoticWorkingDirectory;
- int _hexoticVerbosity;
- int _hexoticMaxMemory;
- int _hexoticSdMode;
- std::string _textOptions;
+ int _iShape;
+ int _nbShape;
+ int _hexesMinLevel;
+ int _hexesMaxLevel;
+ double _hexesMinSize;
+ double _hexesMaxSize;
+ double _approxAngle;
+ bool _hexoticIgnoreRidges;
+ bool _hexoticInvalidElements;
+ bool _hexoticFilesKept;
+ int _hexoticSharpAngleThreshold;
+ int _hexoticNbProc;
+ std::string _hexoticWorkingDirectory;
+ int _hexoticVerbosity;
+ int _hexoticMaxMemory;
+ int _hexoticSdMode;
+ std::string _textOptions;
HexoticPlugin_Hypothesis::THexoticSizeMaps _sizeMaps;
- int _nbLayers;
- double _firstLayerSize;
- bool _direction;
- double _growth;
+ int _nbLayers;
+ double _firstLayerSize;
+ bool _direction;
+ double _growth;
std::vector<int> _facesWithLayers;
std::vector<int> _imprintedFaces;
- SMDS_MeshNode** _tabNode;
+ SMDS_MeshNode** _tabNode;
+ bool _keepFiles;
+ bool _removeLogOnSuccess;
+ bool _logInStandardOutput;
#ifdef WITH_BLSURFPLUGIN
const BLSURFPlugin_Hypothesis* _blsurfHypo;
#endif
-
- volatile bool _compute_canceled;
-
- SALOMEDS::Study_var myStudy;
- SMESH_Gen_i* smeshGen_i;
-
};
#endif