{
}
+/**
+ * @brief Check presence and content of orientation file. Implemented for completness and future reference.
+ *
+ * @param element_orientation_file Binary file containing the orientation of surface elemnts
+ * @return true, false
+ */
+bool NETGENPlugin_NETGEN_1D2D3D_SA::checkOrientationFile( const std::string element_orientation_file )
+{
+ if(element_orientation_file.empty()){
+ MESSAGE("No element orientation file");
+ return true;
+ } else {
+ MESSAGE("Reading from elements from file: " << element_orientation_file);
+ // By construction the orientation file written by Remote version has a zero written to mark no need of orientation in 2D meshing
+ int nbElement;
+ std::ifstream df(element_orientation_file, ios::binary|ios::in);
+ df.read((char*)&nbElement, sizeof(int));
+ df.close();
+ return (nbElement == 0);
+ }
+}
+
/**
* @brief fill plugin hypothesis from the netgen_params structure
*
netgen_params myParams;
importNetgenParams(hypo_file, myParams);
fillHyp(myParams);
+ int ret = 1;
- int ret = Compute( *myMesh, myShape, new_element_file, !output_mesh_file.empty(), dim );
- if(ret){
- std::cerr << "Meshing failed" << std::endl;
- return ret;
- }
+ if ( checkOrientationFile(element_orientation_file) )
+ {
+ ret = Compute( *myMesh, myShape, new_element_file, !output_mesh_file.empty(), dim );
+ if(ret){
+ std::cerr << "Meshing failed" << std::endl;
+ return ret;
+ }
- if(!output_mesh_file.empty()){
- std::string meshName = "MESH";
- SMESH_DriverMesh::exportMesh(output_mesh_file, *myMesh, meshName);
+ if(!output_mesh_file.empty()){
+ std::string meshName = "MESH";
+ SMESH_DriverMesh::exportMesh(output_mesh_file, *myMesh, meshName);
+ }
}
+ else
+ std::cerr << "For NETGENPlugin_NETGEN_1D2D3D_SA, orientation file should be market with 0 or be empty!" << std::endl;
+
return ret;
}