[MOAB-dev] r5262 - MOAB/trunk/itaps/igeom

iulian at mcs.anl.gov iulian at mcs.anl.gov
Thu Dec 15 01:11:08 CST 2011


Author: iulian
Date: 2011-12-15 01:11:01 -0600 (Thu, 15 Dec 2011)
New Revision: 5262

Modified:
   MOAB/trunk/itaps/igeom/FBiGeom_MOAB.cpp
Log:
forgot functions needed by advancing front meshers in meshkit.
(one for tangent at u on an edge, one for evaluation close to a surface)


Modified: MOAB/trunk/itaps/igeom/FBiGeom_MOAB.cpp
===================================================================
--- MOAB/trunk/itaps/igeom/FBiGeom_MOAB.cpp	2011-12-14 06:36:12 UTC (rev 5261)
+++ MOAB/trunk/itaps/igeom/FBiGeom_MOAB.cpp	2011-12-15 07:11:01 UTC (rev 5262)
@@ -1024,8 +1024,12 @@
       int parameters_size, double** normals, int* normals_allocated,
       int* normals_size, int* err) {
 }
-void FBiGeom_getEntTgntU(FBiGeom_Instance, iBase_EntityHandle entity_handle,
+void FBiGeom_getEntTgntU(FBiGeom_Instance instance, iBase_EntityHandle entity_handle,
       double u, double* tgnt_i, double* tgnt_j, double* tgnt_k, int* err) {
+  ErrorCode rval = FBE_cast(instance)->getEntTgntU( (moab::EntityHandle)entity_handle ,   u,
+      *tgnt_i, *tgnt_j,  *tgnt_k);
+  CHKERR(rval, "Failed to get tangent from u");
+  RETURN(iBase_SUCCESS);
 }
 void FBiGeom_getArrTgntU(FBiGeom_Instance, iBase_EntityHandle const* edge_handles,
       int edge_handles_size, int storage_order, double const* parameters,
@@ -1760,7 +1764,29 @@
                            double* cvtr2_k,
                            int* err )
 {
-  RETURN(iBase_FAILURE);
+  /*
+  moab::ErrorCode rval = _fbEngine->getFcEvalXYZ( (moab::EntityHandle) face,
+                            x,  y, z,
+                            on_x, on_y, on_z,
+                            nrml_i, nrml_j, nrml_k,
+                            cvtr1_i, cvtr1_j, cvtr1_k,
+                            cvtr2_i, cvtr2_j,  cvtr2_k );*/
+  // camal really does not use curvatures
+  // the most it is calling for normals and for closest point
+  // return all curvatures = 0 for the time being, because we
+  // know camal is not requesting them
+
+  *cvtr1_i=*cvtr1_j=*cvtr1_k= *cvtr2_i= *cvtr2_j=  *cvtr2_k=0.;
+  // first get closest point, then normal, separately
+  moab::ErrorCode rval = FBE_cast(instance)->getEntClosestPt((moab::EntityHandle) face_handle,
+       x, y, z,
+         on_x,  on_y, on_z );
+  CHKERR(rval,"can't get closest point on surface ");
+  rval = FBE_cast(instance)->getEntNrmlXYZ( (moab::EntityHandle) face_handle,
+        x,   y,  z,
+        nrml_i, nrml_j, nrml_k ); // some inconsistency here, we use pointers, not refs
+  CHKERR(rval,"can't get normal on closest point on surface ");
+  RETURN(iBase_SUCCESS);
 }
 
 void FBiGeom_getArrEgEvalXYZ( FBiGeom_Instance instance,




More information about the moab-dev mailing list