+ Ng_DeleteMesh( ngMesh() );
+ _ngMesh = (netgen::Mesh*) mesh;
+}
+
+//================================================================================
+/*!
+ * \brief Perform a step of mesh generation
+ * \param [inout] occgeo - geometry to mesh
+ * \param [inout] startWith - start step
+ * \param [inout] endWith - end step
+ * \param [inout] ngMesh - netgen mesh
+ * \return int - is error
+ */
+//================================================================================
+
+int NETGENPlugin_NetgenLibWrapper::GenerateMesh( netgen::OCCGeometry& occgeo,
+ int startWith, int endWith,
+ netgen::Mesh* & ngMesh )
+{
+ int err = 0;
+ if ( !ngMesh )
+ ngMesh = new netgen::Mesh;
+
+ // To dump mparam
+ // netgen::mparam.Print(std::cerr);
+
+#ifdef NETGEN_V6
+
+ ngMesh->SetGeometry( shared_ptr<netgen::NetgenGeometry>( &occgeo, &NOOP_Deleter ));
+
+ netgen::mparam.perfstepsstart = startWith;
+ netgen::mparam.perfstepsend = endWith;
+ std::shared_ptr<netgen::Mesh> meshPtr( ngMesh, &NOOP_Deleter );
+ err = occgeo.GenerateMesh( meshPtr, netgen::mparam );
+
+#else
+ #ifdef NETGEN_V5
+
+ err = netgen::OCCGenerateMesh(occgeo, ngMesh, netgen::mparam, startWith, endWith);
+
+ #else
+
+ char *optstr = 0;
+ err = netgen::OCCGenerateMesh(occgeo, ngMesh, startWith, endWith, optstr);
+
+ #endif
+#endif
+ return err;
+}
+
+//================================================================================
+/*!
+ * \brief Create a mesh size tree
+ */
+//================================================================================
+
+void NETGENPlugin_NetgenLibWrapper::CalcLocalH( netgen::Mesh * ngMesh )
+{
+#if defined( NETGEN_V5 ) || defined( NETGEN_V6 )
+ ngMesh->CalcLocalH(netgen::mparam.grading);
+#else
+ ngMesh->CalcLocalH();
+#endif