[MOAB-dev] r2564 - in MOAB/trunk/tools/iMesh: . SIDL SIDL/mserver

kraftche at mcs.anl.gov kraftche at mcs.anl.gov
Tue Jan 20 19:05:16 CST 2009


Author: kraftche
Date: 2009-01-20 19:05:15 -0600 (Tue, 20 Jan 2009)
New Revision: 2564

Modified:
   MOAB/trunk/tools/iMesh/SIDL/iBase.sidl
   MOAB/trunk/tools/iMesh/SIDL/iBase_SIDL_defs.h
   MOAB/trunk/tools/iMesh/SIDL/iMesh.sidl
   MOAB/trunk/tools/iMesh/SIDL/mserver/iMesh_SIDL_MeshSidl_Impl.cc
   MOAB/trunk/tools/iMesh/iBase.h
   MOAB/trunk/tools/iMesh/iMesh.h
   MOAB/trunk/tools/iMesh/iMesh_MOAB.cpp
   MOAB/trunk/tools/iMesh/iMesh_protos.h
Log:
update iMesh version

Modified: MOAB/trunk/tools/iMesh/SIDL/iBase.sidl
===================================================================
--- MOAB/trunk/tools/iMesh/SIDL/iBase.sidl	2009-01-20 22:54:22 UTC (rev 2563)
+++ MOAB/trunk/tools/iMesh/SIDL/iBase.sidl	2009-01-21 01:05:15 UTC (rev 2564)
@@ -15,7 +15,7 @@
 //   ERRORS, TAGS
 //========================================================
 
-package iBase version 0.7
+package iBase version 0.8
 {
    enum EntityType {       
       VERTEX, 
@@ -284,20 +284,20 @@
 
       // add and remove entities 
       void addEntToSet(in opaque entity_handle,
-                       inout opaque entity_set) throws iBase.Error;
+                       in opaque entity_set) throws iBase.Error;
 
       // if the entity isn't in the set, don't throw an error
       void rmvEntFromSet( in opaque entity_handle,
-                          inout opaque entity_set) throws iBase.Error;
+                          in opaque entity_set) throws iBase.Error;
 
       void addEntArrToSet( in array<opaque> entity_handles,
                            in int entity_handles_size,
-                           inout opaque entity_set) throws iBase.Error;
+                           in opaque entity_set) throws iBase.Error;
 
       // if the entity isn't in the set, don't throw an error
       void rmvEntArrFromSet( in array<opaque> entity_handles,
                              in int entity_handles_size,
-                             inout opaque entity_set) throws iBase.Error;
+                             in opaque entity_set) throws iBase.Error;
 
       // all entity sets are contained in root set
       // root set is contained in no other sets
@@ -306,12 +306,12 @@
 
       // add/remove entity sets
       void addEntSet( in opaque entity_set_to_add, 
-                      inout opaque entity_set_handle) 
+                      in opaque entity_set_handle) 
                       throws iBase.Error;
 
       // if the entity set isn't in the set, don't throw an error
       void rmvEntSet( in opaque entity_set_to_remove, 
-                      inout opaque entity_set_handle) 
+                      in opaque entity_set_handle) 
                       throws iBase.Error;
 
       // check whether an entity is contained in the entity set
@@ -319,6 +319,13 @@
                           in opaque entity_handle,
                           out int is_contained) throws iBase.Error;
 
+      // check whether entities are contained in the entity set
+      void isEntArrContained( in opaque containing_set,
+                              in array<opaque> entity_handles,
+                              in int entity_handles_size,
+                              inout array<int> is_contained,
+                              out int is_contained_size );
+                              
       // check whether an entity set is contained in another
       void isEntSetContained(in opaque containing_entity_set,
                              in opaque contained_entity_set,
@@ -332,15 +339,15 @@
       // Root set cannot be a child or parent
 
       // don't throw error if parent/child already exists
-      void addPrntChld( inout opaque parent_entity_set, 
-			inout opaque child_entity_set) throws iBase.Error;
+      void addPrntChld( in opaque parent_entity_set, 
+			                  in opaque child_entity_set) throws iBase.Error;
 
       // don't throw error if parent/child link doesn't exist
-      void rmvPrntChld( inout opaque parent_entity_set, 
-			inout opaque child_entity_set) throws iBase.Error;
+      void rmvPrntChld( in opaque parent_entity_set, 
+			                  in opaque child_entity_set) throws iBase.Error;
 
       void isChildOf( in opaque parent_entity_set, 
-		      in opaque child_entity_set,
+                      in opaque child_entity_set,
                       out int is_child) throws iBase.Error;
 
       void getNumChld( in opaque entity_set, in int num_hops,

Modified: MOAB/trunk/tools/iMesh/SIDL/iBase_SIDL_defs.h
===================================================================
--- MOAB/trunk/tools/iMesh/SIDL/iBase_SIDL_defs.h	2009-01-20 22:54:22 UTC (rev 2563)
+++ MOAB/trunk/tools/iMesh/SIDL/iBase_SIDL_defs.h	2009-01-21 01:05:15 UTC (rev 2564)
@@ -47,6 +47,20 @@
           int my_arr ## _allocated_size = (my_arr._get_ior() == NULL ? 0 :\
           my_arr._get_ior()->d_upper[0] - my_arr._get_ior()->d_lower[0] + 1)
 
+#define CREATE_TEMP_ESH_ARRAY(my_arr) \
+          bool my_arr ## _i_allocated = (my_arr._get_ior() == NULL); \
+          iBase_EntitySetHandle *my_arr ## _temp = reinterpret_cast<iBase_EntitySetHandle*>((my_arr._get_ior() == NULL ? NULL : \
+              my_arr._get_ior()->d_firstElement)); \
+          int my_arr ## _allocated_size = (my_arr._get_ior() == NULL ? 0 :\
+          my_arr._get_ior()->d_upper[0] - my_arr._get_ior()->d_lower[0] + 1)
+
+#define CREATE_TEMP_TH_ARRAY(my_arr) \
+          bool my_arr ## _i_allocated = (my_arr._get_ior() == NULL); \
+          iBase_TagHandle *my_arr ## _temp = reinterpret_cast<iBase_TagHandle*>((my_arr._get_ior() == NULL ? NULL : \
+              my_arr._get_ior()->d_firstElement)); \
+          int my_arr ## _allocated_size = (my_arr._get_ior() == NULL ? 0 :\
+          my_arr._get_ior()->d_upper[0] - my_arr._get_ior()->d_lower[0] + 1)
+
 #define ASSIGN_TAG_ARRAY(my_arr) \
           if (!my_arr ## _i_allocated && \
               ARRAY_SIZE(my_arr) < my_arr ## _allocated_size) {\
@@ -155,6 +169,20 @@
           int my_arr ## _allocated_size = (my_arr._get_ior() == NULL ? 0 :\
           my_arr._get_ior()->d_metadata.d_upper[0] - my_arr._get_ior()->d_metadata.d_lower[0] + 1)
 
+#define CREATE_TEMP_ESH_ARRAY(my_arr) \
+          bool my_arr ## _i_allocated = (my_arr._get_ior() == NULL); \
+          iBase_EntitySetHandle *my_arr ## _temp = reinterpret_cast<iBase_EntitySetHandle*>((my_arr._get_ior() == NULL ? NULL : \
+              my_arr._get_ior()->d_firstElement)); \
+          int my_arr ## _allocated_size = (my_arr._get_ior() == NULL ? 0 :\
+          my_arr._get_ior()->d_metadata.d_upper[0] - my_arr._get_ior()->d_metadata.d_lower[0] + 1)
+
+#define CREATE_TEMP_TH_ARRAY(my_arr) \
+          bool my_arr ## _i_allocated = (my_arr._get_ior() == NULL); \
+          iBase_TagHandle *my_arr ## _temp = reinterpret_cast<iBase_TagHandle*>((my_arr._get_ior() == NULL ? NULL : \
+              my_arr._get_ior()->d_firstElement)); \
+          int my_arr ## _allocated_size = (my_arr._get_ior() == NULL ? 0 :\
+          my_arr._get_ior()->d_metadata.d_upper[0] - my_arr._get_ior()->d_metadata.d_lower[0] + 1)
+
 #define ASSIGN_TAG_ARRAY(my_arr) \
           if (!my_arr ## _i_allocated && \
               ARRAY_SIZE(my_arr) < my_arr ## _allocated_size) {\

Modified: MOAB/trunk/tools/iMesh/SIDL/iMesh.sidl
===================================================================
--- MOAB/trunk/tools/iMesh/SIDL/iMesh.sidl	2009-01-20 22:54:22 UTC (rev 2563)
+++ MOAB/trunk/tools/iMesh/SIDL/iMesh.sidl	2009-01-21 01:05:15 UTC (rev 2564)
@@ -1,14 +1,3 @@
-/**
- * Copyright 2006 Sandia Corporation.  Under the terms of Contract
- * DE-AC04-94AL85000 with Sandia Coroporation, the U.S. Government
- * retains certain rights in this software.
- * 
- * 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, or (at your option) any later version.
- * 
- */
 //==========================================================
 // iMesh PACKAGE - The ITAPS mesh interface
 //   MESH QUERY, MODIFICATION
@@ -17,8 +6,8 @@
 //
 // Only import ITAPS if the iMesh package appears in a separate sidl file. -TLD
 //
-import iBase version 0.7;
-package iMesh version 0.7
+import iBase version 0.8;
+package iMesh version 0.8
 {
 
    enum EntityTopology {
@@ -85,6 +74,7 @@
       // global info
       void getRootSet(out opaque root_set) throws iBase.Error;
       void getGeometricDim(out int dim) throws iBase.Error;
+      void setGeometricDim(in int dim) throws iBase.Error;
       void getDfltStorage(out iBase.StorageOrder dflt_storage) throws iBase.Error;
       void getAdjTable( inout array< AdjacencyInfo > adjacency_table,
                         out int adjacency_table_size) throws iBase.Error;
@@ -102,27 +92,6 @@
                          in EntityTopology entity_topology,
                          out int num_topo) throws iBase.Error;
 
-      // primitive arrays
-      void getAllVtxCoords( in opaque entity_set,
-                            inout array<double> coords, 
-                            out int coords_size,
-                            inout array<int> in_entity_set,
-                            out int in_entity_set_size,
-                            inout StorageOrder storage_order) 
-                            throws iBase.Error;
-
-      // size of the offset array will be entity_topology_size+1, already in docs
-      void getVtxCoordIndex( in opaque entity_set,
-                             in EntityType requested_entity_type, 
-                             in EntityTopology requested_entity_topology,
-                             in EntityType entity_adjacency_type,
-                             inout array<int> offset,
-                             out int offset_size,
-                             inout array<int> index,
-                             out int index_size,
-                             inout array<EntityTopology> entity_topologies,
-                             out int entity_topologies_size) throws iBase.Error;
-
       // entity arrays
       void getEntities( in opaque entity_set, 
                         in EntityType entity_type, 
@@ -144,6 +113,19 @@
                            out int offset_size,
                            inout array<int> in_entity_set,
                            out int in_entity_set_size) throws iBase.Error;
+
+      void getAdjEntIndices( in opaque entity_set_handle,
+                             in EntityType entity_type_requestor,
+                             in EntityTopology entity_topology_requestor,
+                             in EntityType entity_type_requested,
+                             inout array<opaque> entity_handles,
+                             out int entity_handles_size,
+                             inout array<opaque> adj_entity_handles,
+                             out int adj_entity_handles_size,
+                             inout array<int> adj_entity_indices,
+                             out int adj_entity_indices_size,
+                             inout array<int> offset,
+                             out int offset_size ) throws iBase.Error;
    };
 
 

Modified: MOAB/trunk/tools/iMesh/SIDL/mserver/iMesh_SIDL_MeshSidl_Impl.cc
===================================================================
--- MOAB/trunk/tools/iMesh/SIDL/mserver/iMesh_SIDL_MeshSidl_Impl.cc	2009-01-20 22:54:22 UTC (rev 2563)
+++ MOAB/trunk/tools/iMesh/SIDL/mserver/iMesh_SIDL_MeshSidl_Impl.cc	2009-01-21 01:05:15 UTC (rev 2564)
@@ -2,16 +2,16 @@
 // File:          iMesh_SIDL_MeshSidl_Impl.cc
 // Symbol:        iMesh_SIDL.MeshSidl-v0.2
 // Symbol Type:   class
-// Babel Version: 0.10.12
-// sidl Created:  20070927 14:57:59 CDT
-// Generated:     20070927 14:58:07 CDT
+// Babel Version: 0.10.10
+// sidl Created:  20090120 19:02:01 CST
+// Generated:     20090120 19:02:03 CST
 // Description:   Server-side implementation for iMesh_SIDL.MeshSidl
 // 
 // WARNING: Automatically generated; only changes within splicers preserved
 // 
-// babel-version = 0.10.12
+// babel-version = 0.10.10
 // source-line   = 5
-// source-url    = file:/home/tautges/MOAB/tools/iMesh/SIDL/iMesh_SIDL.sidl
+// source-url    = file:/home/jason/moab/newimesh/src/tools/iMesh/SIDL/iMesh_SIDL.sidl
 // 
 #include "iMesh_SIDL_MeshSidl_Impl.hh"
 
@@ -277,7 +277,7 @@
   // DO-NOT-DELETE splicer.begin(iMesh_SIDL.MeshSidl.getEHData)
   // Insert-Code-Here {iMesh_SIDL.MeshSidl.getEHData} (getEHData method)
   iMesh_getEHData (imeshInstance, (iBase_EntityHandle) entity_handle, (iBase_TagHandle) tag_handle, 
-                   (iBase_TagHandle*)&eh_data, &imeshError);
+                   (iBase_EntityHandle*)&eh_data, &imeshError);
   PROCESS_ERROR;
   // DO-NOT-DELETE splicer.end(iMesh_SIDL.MeshSidl.getEHData)
 }
@@ -375,7 +375,7 @@
 ){
   // DO-NOT-DELETE splicer.begin(iMesh_SIDL.MeshSidl.getAllTags)
   // Insert-Code-Here {iMesh_SIDL.MeshSidl.getAllTags} (getAllTags method)
-  CREATE_TEMP_EH_ARRAY(tag_handles);
+  CREATE_TEMP_TH_ARRAY(tag_handles);
 
   iMesh_getAllTags (imeshInstance, (iBase_EntityHandle) entity_handle,
                     TEMP_ARRAY_INOUT(tag_handles), &imeshError);
@@ -800,7 +800,7 @@
   // DO-NOT-DELETE splicer.begin(iMesh_SIDL.MeshSidl.getAllEntSetTags)
   // Insert-Code-Here {iMesh_SIDL.MeshSidl.getAllEntSetTags} (getAllEntSetTags method)
 
-  CREATE_TEMP_EH_ARRAY(tag_handles);
+  CREATE_TEMP_TH_ARRAY(tag_handles);
 
   iMesh_getAllEntSetTags (imeshInstance, reinterpret_cast<iBase_EntitySetHandle>(entity_set),
                           TEMP_ARRAY_INOUT(tag_handles), &imeshError);
@@ -913,7 +913,7 @@
 ){
   // DO-NOT-DELETE splicer.begin(iMesh_SIDL.MeshSidl.getEntSets)
   // Insert-Code-Here {iMesh_SIDL.MeshSidl.getEntSets} (getEntSets method)
-  CREATE_TEMP_EH_ARRAY(contained_entset_handles);
+  CREATE_TEMP_ESH_ARRAY(contained_entset_handles);
 
   iMesh_getEntSets (imeshInstance,
                     reinterpret_cast<iBase_EntitySetHandle>(entity_set), num_hops,
@@ -931,13 +931,13 @@
 void
 iMesh_SIDL::MeshSidl_impl::addEntToSet (
   /* in */ void* entity_handle,
-  /* inout */ void*& entity_set ) 
+  /* in */ void* entity_set ) 
 throw ( 
   ::iBase::Error
 ){
   // DO-NOT-DELETE splicer.begin(iMesh_SIDL.MeshSidl.addEntToSet)
   // Insert-Code-Here {iMesh_SIDL.MeshSidl.addEntToSet} (addEntToSet method)
-  iMesh_addEntToSet (imeshInstance, (iBase_EntityHandle) entity_handle, reinterpret_cast<iBase_EntitySetHandle*>(&entity_set), &imeshError);
+  iMesh_addEntToSet (imeshInstance, (iBase_EntityHandle) entity_handle, (iBase_EntitySetHandle)entity_set, &imeshError);
   PROCESS_ERROR;
   // DO-NOT-DELETE splicer.end(iMesh_SIDL.MeshSidl.addEntToSet)
 }
@@ -948,13 +948,13 @@
 void
 iMesh_SIDL::MeshSidl_impl::rmvEntFromSet (
   /* in */ void* entity_handle,
-  /* inout */ void*& entity_set ) 
+  /* in */ void* entity_set ) 
 throw ( 
   ::iBase::Error
 ){
   // DO-NOT-DELETE splicer.begin(iMesh_SIDL.MeshSidl.rmvEntFromSet)
   // Insert-Code-Here {iMesh_SIDL.MeshSidl.rmvEntFromSet} (rmvEntFromSet method)
-  iMesh_rmvEntFromSet (imeshInstance, (iBase_EntityHandle) entity_handle, reinterpret_cast<iBase_EntitySetHandle*>(&entity_set), &imeshError);
+  iMesh_rmvEntFromSet (imeshInstance, (iBase_EntityHandle) entity_handle, (iBase_EntitySetHandle)entity_set, &imeshError);
   PROCESS_ERROR;
   // DO-NOT-DELETE splicer.end(iMesh_SIDL.MeshSidl.rmvEntFromSet)
 }
@@ -966,7 +966,7 @@
 iMesh_SIDL::MeshSidl_impl::addEntArrToSet (
   /* in */ ::sidl::array<void*> entity_handles,
   /* in */ int32_t entity_handles_size,
-  /* inout */ void*& entity_set ) 
+  /* in */ void* entity_set ) 
 throw ( 
   ::iBase::Error
 ){
@@ -974,7 +974,7 @@
   // Insert-Code-Here {iMesh_SIDL.MeshSidl.addEntArrToSet} (addEntArrToSet method)
   iMesh_addEntArrToSet (imeshInstance,
                         TEMP_TYPED_ARRAY_IN(iBase_EntityHandle, entity_handles), 
-                        reinterpret_cast<iBase_EntitySetHandle*>(&entity_set), &imeshError);
+                        (iBase_EntitySetHandle)entity_set, &imeshError);
   PROCESS_ERROR;
   // DO-NOT-DELETE splicer.end(iMesh_SIDL.MeshSidl.addEntArrToSet)
 }
@@ -986,7 +986,7 @@
 iMesh_SIDL::MeshSidl_impl::rmvEntArrFromSet (
   /* in */ ::sidl::array<void*> entity_handles,
   /* in */ int32_t entity_handles_size,
-  /* inout */ void*& entity_set ) 
+  /* in */ void* entity_set ) 
 throw ( 
   ::iBase::Error
 ){
@@ -994,7 +994,7 @@
   // Insert-Code-Here {iMesh_SIDL.MeshSidl.rmvEntArrFromSet} (rmvEntArrFromSet method)
   iMesh_rmvEntArrFromSet (imeshInstance,
                           TEMP_TYPED_ARRAY_IN(iBase_EntityHandle, entity_handles), 
-                          reinterpret_cast<iBase_EntitySetHandle*>(&entity_set), &imeshError);
+                          (iBase_EntitySetHandle)entity_set, &imeshError);
   PROCESS_ERROR;
   // DO-NOT-DELETE splicer.end(iMesh_SIDL.MeshSidl.rmvEntArrFromSet)
 }
@@ -1005,14 +1005,14 @@
 void
 iMesh_SIDL::MeshSidl_impl::addEntSet (
   /* in */ void* entity_set_to_add,
-  /* inout */ void*& entity_set_handle ) 
+  /* in */ void* entity_set_handle ) 
 throw ( 
   ::iBase::Error
 ){
   // DO-NOT-DELETE splicer.begin(iMesh_SIDL.MeshSidl.addEntSet)
   // Insert-Code-Here {iMesh_SIDL.MeshSidl.addEntSet} (addEntSet method)
   iMesh_addEntSet (imeshInstance, reinterpret_cast<iBase_EntitySetHandle>(entity_set_to_add), 
-                   reinterpret_cast<iBase_EntitySetHandle*>(&entity_set_handle), &imeshError);
+                   (iBase_EntitySetHandle)entity_set_handle, &imeshError);
   PROCESS_ERROR;
   // DO-NOT-DELETE splicer.end(iMesh_SIDL.MeshSidl.addEntSet)
 }
@@ -1023,14 +1023,14 @@
 void
 iMesh_SIDL::MeshSidl_impl::rmvEntSet (
   /* in */ void* entity_set_to_remove,
-  /* inout */ void*& entity_set_handle ) 
+  /* in */ void* entity_set_handle ) 
 throw ( 
   ::iBase::Error
 ){
   // DO-NOT-DELETE splicer.begin(iMesh_SIDL.MeshSidl.rmvEntSet)
   // Insert-Code-Here {iMesh_SIDL.MeshSidl.rmvEntSet} (rmvEntSet method)
   iMesh_rmvEntSet(imeshInstance, reinterpret_cast<iBase_EntitySetHandle>(entity_set_to_remove),
-                  reinterpret_cast<iBase_EntitySetHandle*>(&entity_set_handle), &imeshError);
+                  (iBase_EntitySetHandle)entity_set_handle, &imeshError);
   PROCESS_ERROR;
   // DO-NOT-DELETE splicer.end(iMesh_SIDL.MeshSidl.rmvEntSet)
 }
@@ -1055,6 +1055,31 @@
 }
 
 /**
+ * Method:  isEntArrContained[]
+ */
+void
+iMesh_SIDL::MeshSidl_impl::isEntArrContained (
+  /* in */ void* containing_set,
+  /* in */ ::sidl::array<void*> entity_handles,
+  /* in */ int32_t entity_handles_size,
+  /* inout */ ::sidl::array<int32_t>& is_contained,
+  /* out */ int32_t& is_contained_size ) 
+throw () 
+{
+  // DO-NOT-DELETE splicer.begin(iMesh_SIDL.MeshSidl.isEntArrContained)
+
+  CREATE_TEMP_ARRAY(int32_t, is_contained);
+
+  iMesh_isEntArrContained( imeshInstance,
+                           (iBase_EntitySetHandle)containing_set,
+                           TEMP_TYPED_ARRAY_IN(iBase_EntityHandle, entity_handles),
+                           TEMP_ARRAY_INOUT(is_contained), &imeshError);
+  PROCESS_ERROR;
+
+  // DO-NOT-DELETE splicer.end(iMesh_SIDL.MeshSidl.isEntArrContained)
+}
+
+/**
  * Method:  isEntSetContained[]
  */
 void
@@ -1080,16 +1105,16 @@
  */
 void
 iMesh_SIDL::MeshSidl_impl::addPrntChld (
-  /* inout */ void*& parent_entity_set,
-  /* inout */ void*& child_entity_set ) 
+  /* in */ void* parent_entity_set,
+  /* in */ void* child_entity_set ) 
 throw ( 
   ::iBase::Error
 ){
   // DO-NOT-DELETE splicer.begin(iMesh_SIDL.MeshSidl.addPrntChld)
   // Insert-Code-Here {iMesh_SIDL.MeshSidl.addPrntChld} (addPrntChld method)
   iMesh_addPrntChld (imeshInstance,
-                     reinterpret_cast<iBase_EntitySetHandle*>(&parent_entity_set), 
-                     reinterpret_cast<iBase_EntitySetHandle*>(&child_entity_set), 
+                     (iBase_EntitySetHandle)parent_entity_set, 
+                     (iBase_EntitySetHandle)child_entity_set, 
                      &imeshError);
   PROCESS_ERROR;
   // DO-NOT-DELETE splicer.end(iMesh_SIDL.MeshSidl.addPrntChld)
@@ -1100,16 +1125,16 @@
  */
 void
 iMesh_SIDL::MeshSidl_impl::rmvPrntChld (
-  /* inout */ void*& parent_entity_set,
-  /* inout */ void*& child_entity_set ) 
+  /* in */ void* parent_entity_set,
+  /* in */ void* child_entity_set ) 
 throw ( 
   ::iBase::Error
 ){
   // DO-NOT-DELETE splicer.begin(iMesh_SIDL.MeshSidl.rmvPrntChld)
   // Insert-Code-Here {iMesh_SIDL.MeshSidl.rmvPrntChld} (rmvPrntChld method)
   iMesh_rmvPrntChld (imeshInstance,
-                       /*inout*/ reinterpret_cast<iBase_EntitySetHandle*>(&parent_entity_set),
-                     /*inout*/ reinterpret_cast<iBase_EntitySetHandle*>(&child_entity_set), &imeshError);
+                    (iBase_EntitySetHandle)parent_entity_set,
+                    (iBase_EntitySetHandle)child_entity_set, &imeshError);
   PROCESS_ERROR;
   // DO-NOT-DELETE splicer.end(iMesh_SIDL.MeshSidl.rmvPrntChld)
 }
@@ -1188,7 +1213,7 @@
   // DO-NOT-DELETE splicer.begin(iMesh_SIDL.MeshSidl.getChldn)
   // Insert-Code-Here {iMesh_SIDL.MeshSidl.getChldn} (getChldn method)
 
-  CREATE_TEMP_EH_ARRAY(child_handles);
+  CREATE_TEMP_ESH_ARRAY(child_handles);
 
   iMesh_getChldn (imeshInstance, 
                   reinterpret_cast<iBase_EntitySetHandle>(from_entity_set), 
@@ -1216,7 +1241,7 @@
   // DO-NOT-DELETE splicer.begin(iMesh_SIDL.MeshSidl.getPrnts)
   // Insert-Code-Here {iMesh_SIDL.MeshSidl.getPrnts} (getPrnts method)
 
-  CREATE_TEMP_EH_ARRAY(parent_handles);
+  CREATE_TEMP_ESH_ARRAY(parent_handles);
 
   iMesh_getPrnts (imeshInstance, 
                   reinterpret_cast<iBase_EntitySetHandle>(from_entity_set), 
@@ -1350,7 +1375,7 @@
   // Insert-Code-Here {iMesh_SIDL.MeshSidl.getRootSet} (getRootSet method)
 
   iMesh_getRootSet (imeshInstance, 
-                    reinterpret_cast<iBase_EntityHandle*>(&root_set), 
+                    reinterpret_cast<iBase_EntitySetHandle*>(&root_set), 
                     &imeshError);
   PROCESS_ERROR;
   // DO-NOT-DELETE splicer.end(iMesh_SIDL.MeshSidl.getRootSet)
@@ -1375,6 +1400,23 @@
 }
 
 /**
+ * Method:  setGeometricDim[]
+ */
+void
+iMesh_SIDL::MeshSidl_impl::setGeometricDim (
+  /* in */ int32_t dim ) 
+throw ( 
+  ::iBase::Error
+){
+  // DO-NOT-DELETE splicer.begin(iMesh_SIDL.MeshSidl.setGeometricDim)
+  // Insert-Code-Here {iMesh_SIDL.MeshSidl.setGeometricDim} (setGeometricDim method)
+  iMesh_setGeometricDimension(imeshInstance, dim, &imeshError);
+  PROCESS_ERROR;
+  
+  // DO-NOT-DELETE splicer.end(iMesh_SIDL.MeshSidl.setGeometricDim)
+}
+
+/**
  * Method:  getDfltStorage[]
  */
 void
@@ -1468,77 +1510,6 @@
 }
 
 /**
- * Method:  getAllVtxCoords[]
- */
-void
-iMesh_SIDL::MeshSidl_impl::getAllVtxCoords (
-  /* in */ void* entity_set,
-  /* inout */ ::sidl::array<double>& coords,
-  /* out */ int32_t& coords_size,
-  /* inout */ ::sidl::array<int32_t>& in_entity_set,
-  /* out */ int32_t& in_entity_set_size,
-  /* inout */ ::iBase::StorageOrder& storage_order ) 
-throw ( 
-  ::iBase::Error
-){
-  // DO-NOT-DELETE splicer.begin(iMesh_SIDL.MeshSidl.getAllVtxCoords)
-  // Insert-Code-Here {iMesh_SIDL.MeshSidl.getAllVtxCoords} (getAllVtxCoords method)
-  CREATE_TEMP_ARRAY(double, coords);
-  CREATE_TEMP_ARRAY(int32_t, in_entity_set);
-  
-  iMesh_getAllVtxCoords (imeshInstance, reinterpret_cast<iBase_EntitySetHandle>(entity_set),
-                         TEMP_ARRAY_INOUT(coords),
-                         TEMP_ARRAY_INOUT(in_entity_set),
-                         (int*)&storage_order, &imeshError);
-
-  PROCESS_ERROR;
-  ASSIGN_TYPED_ARRAY(double, coords);
-  ASSIGN_TYPED_ARRAY(int32_t, in_entity_set);
-
-  // DO-NOT-DELETE splicer.end(iMesh_SIDL.MeshSidl.getAllVtxCoords)
-}
-
-/**
- * Method:  getVtxCoordIndex[]
- */
-void
-iMesh_SIDL::MeshSidl_impl::getVtxCoordIndex (
-  /* in */ void* entity_set,
-  /* in */ ::iBase::EntityType requested_entity_type,
-  /* in */ ::iMesh::EntityTopology requested_entity_topology,
-  /* in */ ::iBase::EntityType entity_adjacency_type,
-  /* inout */ ::sidl::array<int32_t>& offset,
-  /* out */ int32_t& offset_size,
-  /* inout */ ::sidl::array<int32_t>& index,
-  /* out */ int32_t& index_size,
-  /* inout */ ::sidl::array< ::iMesh::EntityTopology>& entity_topologies,
-  /* out */ int32_t& entity_topologies_size ) 
-throw ( 
-  ::iBase::Error
-){
-  // DO-NOT-DELETE splicer.begin(iMesh_SIDL.MeshSidl.getVtxCoordIndex)
-  // Insert-Code-Here {iMesh_SIDL.MeshSidl.getVtxCoordIndex} (getVtxCoordIndex method)
-
-  CREATE_TEMP_ARRAY(int32_t, offset);
-  CREATE_TEMP_ARRAY(int32_t, index);
-  CREATE_TEMP_ENUM_ARRAY(int, entity_topologies);
-  
-  iMesh_getVtxCoordIndex (imeshInstance, reinterpret_cast<iBase_EntitySetHandle>(entity_set), 
-                          (iBase_EntityType)requested_entity_type, 
-                          (iMesh_EntityTopology)requested_entity_topology,
-                          (iBase_EntityType)entity_adjacency_type,
-                          TEMP_ARRAY_INOUT(offset), 
-                          TEMP_ARRAY_INOUT(index), 
-                          TEMP_ARRAY_INOUT(entity_topologies), &imeshError);
-
-  PROCESS_ERROR;
-  ASSIGN_TYPED_ARRAY(int, offset);
-  ASSIGN_TYPED_ARRAY(int, index);
-  ASSIGN_ENUM_ARRAY(entity_topologies);
-  // DO-NOT-DELETE splicer.end(iMesh_SIDL.MeshSidl.getVtxCoordIndex)
-}
-
-/**
  * Method:  getEntities[]
  */
 void
@@ -1635,6 +1606,31 @@
 }
 
 /**
+ * Method:  getAdjEntIndices[]
+ */
+void
+iMesh_SIDL::MeshSidl_impl::getAdjEntIndices (
+  /* in */ void* entity_set_handle,
+  /* in */ ::iBase::EntityType entity_type_requestor,
+  /* in */ ::iMesh::EntityTopology entity_topology_requestor,
+  /* in */ ::iBase::EntityType entity_type_requested,
+  /* inout */ ::sidl::array<void*>& entity_handles,
+  /* out */ int32_t& entity_handles_size,
+  /* inout */ ::sidl::array<void*>& adj_entity_handles,
+  /* out */ int32_t& adj_entity_handles_size,
+  /* inout */ ::sidl::array<int32_t>& adj_entity_indices,
+  /* out */ int32_t& adj_entity_indices_size,
+  /* inout */ ::sidl::array<int32_t>& offset,
+  /* out */ int32_t& offset_size ) 
+throw ( 
+  ::iBase::Error
+){
+  // DO-NOT-DELETE splicer.begin(iMesh_SIDL.MeshSidl.getAdjEntIndices)
+  // Insert-Code-Here {iMesh_SIDL.MeshSidl.getAdjEntIndices} (getAdjEntIndices method)
+  // DO-NOT-DELETE splicer.end(iMesh_SIDL.MeshSidl.getAdjEntIndices)
+}
+
+/**
  * Method:  initEntIter[]
  */
 void

Modified: MOAB/trunk/tools/iMesh/iBase.h
===================================================================
--- MOAB/trunk/tools/iMesh/iBase.h	2009-01-20 22:54:22 UTC (rev 2563)
+++ MOAB/trunk/tools/iMesh/iBase.h	2009-01-21 01:05:15 UTC (rev 2564)
@@ -15,10 +15,10 @@
      * TYPEDEF'S
      *==========================================================
      */
-  typedef void* iBase_Instance;
-  typedef void* iBase_EntityHandle;
-  typedef void* iBase_EntitySetHandle;
-  typedef void* iBase_TagHandle;
+  typedef struct iBase_Instance_Private* iBase_Instance;
+  typedef struct iBase_EntityHandle_Private* iBase_EntityHandle;
+  typedef struct iBase_EntitySetHandle_Private* iBase_EntitySetHandle;
+  typedef struct iBase_TagHandle_Private* iBase_TagHandle;
 
     /*==========================================================
      * ENTITYTYPE ENUMERATION

Modified: MOAB/trunk/tools/iMesh/iMesh.h
===================================================================
--- MOAB/trunk/tools/iMesh/iMesh.h	2009-01-20 22:54:22 UTC (rev 2563)
+++ MOAB/trunk/tools/iMesh/iMesh.h	2009-01-21 01:05:15 UTC (rev 2564)
@@ -1,6 +1,9 @@
 #ifndef IMESH_CBIND_H__
 #define IMESH_CBIND_H__
 
+#define IMESH_MAJOR_VERSION 0
+#define IMESH_MINOR_VERSION 8
+
   /** \mainpage The ITAPS Mesh Interface iMesh
    *
    * The ITAPS Mesh Interface iMesh provides a common interface for
@@ -76,19 +79,19 @@
      *
      * Type used to store iMesh interface handle
      */
-  typedef void* iMesh_Instance;
+  typedef struct iMesh_Instance_Private* iMesh_Instance;
 
     /**\brief  Type used to store an iterator returned by iMesh
      *
      * Type used to store an iterator returned by iMesh
      */
-  typedef void* iMesh_EntityIterator;
-
+  typedef struct iMesh_EntityIterator_Private* iMesh_EntityIterator;
+ 
     /**\brief  Type used to store an array iterator returned by iMesh
      *
      * Type used to store an array iterator returned by iMesh
      */
-  typedef void* iMesh_EntityArrIterator;
+  typedef struct iMesh_EntityArrIterator_Private* iMesh_EntityArrIterator;
 
     /**\brief  Enumerator specifying entity topology
      *
@@ -168,10 +171,10 @@
     /**\brief  Load a mesh from a file
      *
      * Load a mesh from a file.  If entity set is specified, loaded mesh
-     * is added to that set; specify zero if that is not desired.
+     * is added to that set; specify root set if that is not desired.
      * \param instance iMesh instance handle
-     * \param entity_set_handle Set to which loaded mesh will be added, zero
-     *        if not desired
+     * \param entity_set_handle Set to which loaded mesh will be added, 
+     *        root set if not desired
      * \param name File name from which mesh is to be loaded
      * \param options Pointer to implementation-specific options string
      * \param *err Pointer to error type returned from function
@@ -229,6 +232,18 @@
                                    /*out*/ int *geom_dim, 
                                    /*out*/ int *err);
 
+   /**\brief Set geometric dimension of vertex coordinates
+    *
+    * Set the geometric dimension of the mesh.  Notes:  An application
+    * should not expect this function to succeed unless the mesh database
+    * is empty (no vertices created, no files read, etc.)
+    *\param instance Mesh database from which to request change.
+    *\param geom_dim Requested geometric dimension.
+    */
+  void iMesh_setGeometricDimension( iMesh_Instance instance,
+                                    /*in*/ int geom_dim,
+                                    /*out*/ int* err );
+
     /**\brief  Get the default storage order used by this implementation
      *
      * Get the default storage order used by this implementation.  Value
@@ -262,30 +277,10 @@
                           /*out*/ int* adjacency_table_size, 
                           /*out*/ int *err);
 
-    /**\brief  Set the adjacency table and interior entity information for this implementation
-     *
-     * Set the adjacency table and interior entity information for this 
-     * implementation.  This table 
-     * is a 4x4 array, with indices 0-based, where A(i,j) (i=row, j=column) 
-     * non-zero requests that adjacencies be stored explicitly from type i
-     * to type j.  Non-zero diagonal elements request that interior entities
-     * of that dimension be represented explicitly, and created along with
-     * higher-dimensional entities.
-     * \param instance iMesh instance handle
-     * \param *adjacency_table Array representing adjacency table
-     *        passed to function
-     * \param adjacency_table_size Size of adjacency table (should be 16)
-     * \param *err Pointer to error type returned from function
-     */
-  void iMesh_setAdjTable (iMesh_Instance instance,
-                          /*in*/ int* adjacency_table,
-                          /*in*/ int adjacency_table_size,
-                          /*out*/ int *err);
-
     /**\brief  Get the number of entities with the specified type in the instance or set
      *
      * Get the number of entities with the specified type in the instance 
-     * or set.  If entity set handle is zero, return information for instance,
+     * or set.  If entity set handle is root set, return information for instance,
      * otherwise for set.  Value of entity type must be from the
      * iBase_EntityType enumeration.  If iBase_ALL_TYPES is specified,
      * total number of entities (excluding entity sets) is returned.
@@ -304,7 +299,7 @@
     /**\brief  Get the number of entities with the specified topology in the instance or set
      *
      * Get the number of entities with the specified topology in the instance 
-     * or set.  If entity set handle is zero, return information for instance,
+     * or set.  If entity set handle is root set, return information for instance,
      * otherwise for set.  Value of entity topology must be from the
      * iMesh_EntityTopology enumeration.  If iMesh_ALL_TOPOLOGIES is specified,
      * total number of entities (excluding entity sets) is returned.
@@ -339,88 +334,7 @@
                         /*out*/ int *areHandlesInvariant, 
                         /*out*/ int *err);
 
-    /**\brief  Return coordinates of all vertices defined in this instance or set
-     *
-     * Return coordinates of all vertices defined in this instance or set.
-     * If non-zero set is input, return coordinates for vertices either in
-     * the set or contained by entities in the set.  If storage order is
-     * a value other than iBase_UNDETERMINED, coordinates are returned with
-     * that storage order; otherwise storage order is in native order with
-     * respect to the implementation.  On return, storage order contains
-     * order of the returned coordinates.
-     * \param instance iMesh instance handle
-     * \param entity_set_handle Entity set for which vertex coordinates are
-     *        requested
-     * \param *coordinates Pointer to array holding coordinates
-     * \param *coordinates_allocated Pointer to allocated size of coordinates
-     *        array
-     * \param *coordinates_size Pointer to occupied size of coordinates
-     *        array
-     * \param *in_entity_set Pointer to array of flags; if entity set was
-     *        input, (*in_entity_set)[i]=1 indicates that vertex i was in
-     *        the entity set, zero otherwise.
-     * \param *in_entity_set_allocated Pointer to allocated size of 
-     *        in_entity_set array
-     * \param *in_entity_set_size Pointer to occupied size of 
-     *        in_entity_set array
-     * \param *storage_order Pointer to storage order requested/returned from
-     *        function
-     * \param *err Pointer to error type returned from function
-     */
-  void iMesh_getAllVtxCoords (iMesh_Instance instance,
-                              /*in*/ const iBase_EntitySetHandle entity_set_handle,
-                              /*inout*/ double** coordinates,
-                              /*inout*/ int* coordinates_allocated,
-                              /*out*/ int* coordinates_size,
-                              /*inout*/ int** in_entity_set,
-                              /*inout*/ int* in_entity_set_allocated,
-                              /*out*/ int* in_entity_set_size,
-                              /*inout*/ int* storage_order, /*out*/ int *err);
 
-    /**\brief  Get adjacent entities as connectivity lists
-     *
-     * For a specified set handle, entity type and/or entity topology,
-     * return connectivity of adjacent entities of specified dimension.  
-     * Connectivity is expressed as index into array of vertices returned
-     * by getEntities function.  \em offset[i] is the index of the first
-     * vertex of the first entity adjacent to entity \em i in the entity set
-     * or the mesh.  The topology of entities whose connectivity is returned
-     * is given in the entity_topologies array.
-     * \param instance iMesh instance handle
-     * \param entity_set_handle Entity set being queried
-     * \param requested_entity_type Type of entity requested
-     * \param requested_entity_topology Topology of entity requested
-     * \param entity_adjacency_type Adjacency type
-     * \param *offset Pointer to array of offsets returned from function
-     * \param *offset_allocated Pointer to allocated size of offset array
-     * \param *offset_size Pointer to occupied size of offset array
-     * \param *index Pointer to array of indices returned from function
-     * \param *index_allocated Pointer to allocated size of index array
-     * \param *index_size Pointer to occupied size of index array
-     * \param *entity_topologies Pointer to array of entity topologies 
-     *        returned from function
-     * \param *entity_topologies_allocated Pointer to allocated size of 
-     *        entity_topologies array
-     * \param *entity_topologies_size Pointer to occupied size of 
-     *        entity_topologies array
-     * \param *err Pointer to error type returned from function
-     */
-  void iMesh_getVtxCoordIndex (iMesh_Instance instance,
-                               /*in*/ const iBase_EntitySetHandle entity_set_handle,
-                               /*in*/ const int requested_entity_type,
-                               /*in*/ const int requested_entity_topology,
-                               /*in*/ const int entity_adjacency_type,
-                               /*inout*/ int** offset,
-                               /*inout*/ int* offset_allocated,
-                               /*out*/ int* offset_size,
-                               /*inout*/ int** index,
-                               /*inout*/ int* index_allocated,
-                               /*out*/ int* index_size,
-                               /*inout*/  int** entity_topologies,
-                               /*inout*/ int* entity_topologies_allocated,
-                               /*out*/ int* entity_topologies_size, 
-                               /*out*/ int *err);
-
     /**\brief  Get entities of specific type and/or topology in set or instance
      *
      * Get entities of specific type and/or topology in set or instance.  All 
@@ -490,7 +404,7 @@
      * mesh or set.
      * \param instance iMesh instance handle
      * \param entity_set_handle Entity set whose adjacent entities are requested
-     *        (zero indicates whole mesh)
+     *        (root set indicates whole mesh)
      * \param entity_type_requestor Return entities adjacent to entities of this 
      *        type
      * \param entity_topology_requestor Return entities adjacent to entities of 
@@ -514,7 +428,7 @@
      * \param *err Pointer to error type returned from function
      */
   void iMesh_getAdjEntities(iMesh_Instance instance,
-                            /*in*/ const iBase_EntityHandle entity_set_handle,
+                            /*in*/ const iBase_EntitySetHandle entity_set_handle,
                             /*in*/ const int entity_type_requestor,
                             /*in*/ const int entity_topology_requestor,
                             /*in*/ const int entity_type_requested,
@@ -690,16 +604,16 @@
  * \param instance iMesh instance for this call
  * \param entity_handles Entities from which adjacencies are requested
  * \param entity_handles_size Number of entities whose adjacencies are requested
- * \param order_adjacent_key Bridge dimension for 2nd order adjacencies
- * \param requested_entity_type Dimension of adjacent entities returned
- * \param *adj_entity_handles Adjacent entities
- * \param *adj_entity_handles_allocated Allocated size of returned array
- * \param *adj_entity_handles_size Occupied size of returned array
- * \param *offset Offset[i] is offset into adj_entity_handles of 2nd order 
+ * \param bridge_dimension Bridge dimension for 2nd order adjacencies
+ * \param to_dimension Dimension of adjacent entities returned
+ * \param adj_entity_handles Adjacent entities
+ * \param adj_entity_handles_allocated Allocated size of returned array
+ * \param adj_entity_handles_size Occupied size of returned array
+ * \param offset Offset[i] is offset into adj_entity_handles of 2nd order 
  *        adjacencies of ith entity in entity_handles
- * \param *offset_allocated Allocated size of offset array
- * \param *offset_size Occupied size of offset array
- * \param *err Pointer to error type returned from function
+ * \param offset_allocated Allocated size of offset array
+ * \param offset_size Occupied size of offset array
+ * \param err 
  */
   void iMesh_getEntArr2ndAdj( iMesh_Instance instance,
                               iBase_EntityHandle const* entity_handles,
@@ -714,6 +628,62 @@
                               int* offset_size,
                               int* err );
 
+   /**\brief Get indexed representation of mesh or subset of mesh
+    *
+    * Given an entity set and optionally a type or topology, return:
+    * - The entities in the set of the specified type or topology
+    * - The entities adjacent to those entities with a specified
+    *    type, as a list of unique handles.
+    * - For each entity in the first list, the adjacent entities,
+    *    specified as indices into the second list.
+    *
+    *\param entity_set_handle     The set of entities from which to query
+    *\param entity_type_requestor If not iBase_ALL_TYPES, act only on 
+    *                             the subset of 'entity_set_handle' of the
+    *                             specified type.
+    *\param entity_topology_requestor If not iMesh_ALL_TOPOLOGIES, act only
+    *                             on the subset of 'entity_set_handle' with
+    *                             the specified topology.
+    *\param entity_type_requested The type of the adjacent entities to
+    *                             return.
+    *\param entity_handles        The handles of the (non-struct) subset of   
+    *                             the entity set indicated by 
+    *                             'entity_set_handle' and the optional type
+    *                             and topology filtering arguments.
+    *\param adj_entity_handles    The union of the entities of type 
+    *                             'requested_entity_type' adjacent to each
+    *                             entity in 'entity_handles'.
+    *\param adj_entity_indices    For each entity in 'entity_handles', the
+    *                             adjacent entities of type
+    *                             'entity_type_requested', specified as 
+    *                             indices into 'adj_entity_handles'.  The
+    *                             values are concatenated into a single   
+    *                             array in the order of the entity handles 
+    *                             in 'entity_handles'.
+    *\param offset                For each entity in the corresponding 
+    *                             position in 'entity_handles', the position
+    *                             in 'adj_entity_indices' at which values
+    *                             for that entity are stored.
+    */
+  void iMesh_getAdjEntIndices(iMesh_Instance instance,
+                      /*in*/    iBase_EntitySetHandle entity_set_handle,
+                      /*in*/    int entity_type_requestor,
+                      /*in*/    int entity_topology_requestor,
+                      /*in*/    int entity_type_requested,
+                      /*inout*/ iBase_EntityHandle** entity_handles,
+                      /*inout*/ int* entity_handles_allocated,
+                      /*out*/   int* entity_handles_size,
+                      /*inout*/ iBase_EntityHandle** adj_entity_handles,
+                      /*inout*/ int* adj_entity_handles_allocated,
+                      /*out*/   int* adj_entity_handles_size,
+                      /*inout*/ int** adj_entity_indices,
+                      /*inout*/ int* adj_entity_indices_allocated,
+                      /*out*/   int* adj_entity_indices_size,
+                      /*inout*/ int** offset,
+                      /*inout*/ int* offset_allocated,
+                      /*out*/   int* offset_size,
+                      /*out*/   int *err);
+
     /**\brief  Create an entity set
      *
      * Create an entity set, either ordered (isList=1) or unordered 
@@ -810,8 +780,8 @@
      * \param *err Pointer to error type returned from function
      */
   void iMesh_addEntToSet(iMesh_Instance instance,
-                         /*in*/ const iBase_EntityHandle entity_handle,
-                         /*inout*/ iBase_EntitySetHandle* entity_set,
+                         /*in*/ iBase_EntityHandle entity_handle,
+                         /*in*/ iBase_EntitySetHandle entity_set,
                          /*out*/ int *err);
 
     /**\brief  Remove an entity from a set
@@ -824,8 +794,8 @@
      * \param *err Pointer to error type returned from function
      */
   void iMesh_rmvEntFromSet(iMesh_Instance instance,
-                           /*in*/ const iBase_EntityHandle entity_handle,
-                           /*inout*/ iBase_EntitySetHandle* entity_set,
+                           /*in*/ iBase_EntityHandle entity_handle,
+                           /*in*/ iBase_EntitySetHandle entity_set,
                            /*out*/ int *err);
 
 
@@ -839,9 +809,9 @@
      * \param *err Pointer to error type returned from function
      */
   void iMesh_addEntArrToSet(iMesh_Instance instance,
-                            /*in*/ const iBase_EntityHandle* entity_handles,
-                            /*in*/ const int entity_handles_size,
-                            /*inout*/ iBase_EntitySetHandle* entity_set,
+                            /*in*/ iBase_EntityHandle* entity_handles,
+                            /*in*/ int entity_handles_size,
+                            /*in*/ iBase_EntitySetHandle entity_set,
                             /*out*/ int *err);
 
 
@@ -855,9 +825,9 @@
      * \param *err Pointer to error type returned from function
      */
   void iMesh_rmvEntArrFromSet(iMesh_Instance instance,
-                              /*in*/ const iBase_EntityHandle* entity_handles,
-                              /*in*/ const int entity_handles_size,
-                              /*inout*/ iBase_EntitySetHandle* entity_set,
+                              /*in*/ iBase_EntityHandle* entity_handles,
+                              /*in*/ int entity_handles_size,
+                              /*in*/ iBase_EntitySetHandle entity_set,
                               /*out*/ int *err);
 
 
@@ -870,8 +840,8 @@
      * \param *err Pointer to error type returned from function
      */
   void iMesh_addEntSet(iMesh_Instance instance,
-                       /*in*/ const iBase_EntityHandle entity_set_to_add,
-                       /*inout*/ iBase_EntitySetHandle* entity_set_handle,
+                       /*in*/ iBase_EntitySetHandle entity_set_to_add,
+                       /*in*/ iBase_EntitySetHandle entity_set_handle,
                        /*out*/ int *err);
 
 
@@ -884,8 +854,8 @@
      * \param *err Pointer to error type returned from function
      */
   void iMesh_rmvEntSet(iMesh_Instance instance,
-                       /*in*/ const iBase_EntitySetHandle entity_set_to_remove,
-                       /*inout*/ iBase_EntitySetHandle* entity_set_handle,
+                       /*in*/ iBase_EntitySetHandle entity_set_to_remove,
+                       /*in*/ iBase_EntitySetHandle entity_set_handle,
                        /*out*/ int *err);
 
     /**\brief  Return whether an entity is contained in another set
@@ -901,18 +871,28 @@
      */
   void iMesh_isEntContained(iMesh_Instance instance,
                             /*in*/ const iBase_EntitySetHandle containing_entity_set,
-                            /*in*/ const iBase_EntitySetHandle contained_entity,
+                            /*in*/ const iBase_EntityHandle contained_entity,
                             /*out*/ int *is_contained,
                             /*out*/ int *err);
-                            
+
+    /**\brief  Return whether entities are contained in a set
+     *
+     * Return whether each entity is contained in the set.
+     * \param instance iMesh instance handle
+     * \param containing_entity_set Entity set being queried
+     * \param entity_handles List of entities for which to check containment.
+     * \param is_contained One value for each input entity, 1 if contained
+     *          in set, zero otherwise.
+     * \param *err Pointer to error type returned from function
+     */
   void iMesh_isEntArrContained( iMesh_Instance instance,
-                            /*in*/ iBase_EntitySetHandle containing_set,
-                            /*in*/ const iBase_EntitySetHandle* entity_handles,
-                            /*in*/ int num_entity_handles,
-                         /*inout*/ int** is_contained,
-                         /*inout*/ int* is_contained_allocated,
-                           /*out*/ int* is_contained_size,
-                           /*out*/ int* err );
+                         /*in*/ iBase_EntitySetHandle containing_set,
+                         /*in*/ const iBase_EntityHandle* entity_handles,
+                         /*in*/ int num_entity_handles,
+                      /*inout*/ int** is_contained,
+                      /*inout*/ int* is_contained_allocated,
+                        /*out*/ int* is_contained_size,
+                        /*out*/ int* err );
 
     /**\brief  Return whether an entity set is contained in another set
      *
@@ -941,8 +921,8 @@
      * \param *err Pointer to error type returned from function
      */
   void iMesh_addPrntChld(iMesh_Instance instance,
-                         /*inout*/ iBase_EntitySetHandle* parent_entity_set,
-                         /*inout*/ iBase_EntitySetHandle* child_entity_set,
+                         /*in*/ iBase_EntitySetHandle parent_entity_set,
+                         /*in*/ iBase_EntitySetHandle child_entity_set,
                          /*out*/ int *err);
 
     /**\brief  Remove parent/child links between two sets
@@ -954,8 +934,8 @@
      * \param *err Pointer to error type returned from function
      */
   void iMesh_rmvPrntChld(iMesh_Instance instance,
-                         /*inout*/ iBase_EntitySetHandle* parent_entity_set,
-                         /*inout*/ iBase_EntitySetHandle* child_entity_set,
+                         /*in*/ iBase_EntitySetHandle parent_entity_set,
+                         /*in*/ iBase_EntitySetHandle child_entity_set,
                          /*out*/ int *err);
 
     /**\brief  Return whether two sets are related by parent/child links
@@ -1987,12 +1967,12 @@
  * specified "to" dimension.
  * \param instance iMesh instance for this call
  * \param entity_handle Entity from which adjacencies are requested
- * \param order_adjacent_key Bridge dimension for 2nd order adjacencies
- * \param requested_entity_type Dimension of adjacent entities returned
- * \param *adjacent_entities Pointer to array of adjacent entities
- * \param *adjacent_entities_allocated Pointer to allocated size of returned array
- * \param *adjacent_entities_size Pointer to occupied size of returned array
- * \param *err Pointer to error type returned from function
+ * \param bridge_dimension Bridge dimension for 2nd order adjacencies
+ * \param to_dimension Dimension of adjacent entities returned
+ * \param adjacent_entities Adjacent entities
+ * \param adjacent_entities_allocated Allocated size of returned array
+ * \param adjacent_entities_size Occupied size of returned array
+ * \param err 
  */
   void iMesh_getEnt2ndAdj( iMesh_Instance instance,
                            iBase_EntityHandle entity_handle,

Modified: MOAB/trunk/tools/iMesh/iMesh_MOAB.cpp
===================================================================
--- MOAB/trunk/tools/iMesh/iMesh_MOAB.cpp	2009-01-20 22:54:22 UTC (rev 2563)
+++ MOAB/trunk/tools/iMesh/iMesh_MOAB.cpp	2009-01-21 01:05:15 UTC (rev 2564)
@@ -191,7 +191,7 @@
     iter->currentPos = iter->iteratorRange.begin();
     iter->requestedSize = array_size;
   }
-  return iter;
+  return reinterpret_cast<iMesh_EntityIterator>(iter);
 }
 
 
@@ -293,7 +293,7 @@
   }
    
   void iMesh_load(iMesh_Instance instance,
-                  const iBase_EntityHandle handle,
+                  const iBase_EntitySetHandle handle,
                   const char *name, const char *options, 
                   int *err, int name_len, int options_len) 
   {
@@ -337,7 +337,7 @@
   }
 
   void iMesh_save(iMesh_Instance instance,
-                  const iBase_EntityHandle handle,
+                  const iBase_EntitySetHandle handle,
                   const char *name, const char *options, 
                   int *err, const int name_len, int options_len) 
   {
@@ -835,7 +835,7 @@
                              /*in*/ const int requested_entity_type,
                              /*in*/ const int requested_entity_topology,
                              /*in*/ const int requested_array_size,
-                             /*out*/ iMesh_EntityIterator* entArr_iterator,
+                             /*out*/ iMesh_EntityArrIterator* entArr_iterator,
                              int *err) 
   {
     MBEntityType req_type = mb_topology_table[requested_entity_topology];
@@ -867,7 +867,8 @@
       RETURN(iMesh_LAST_ERROR.error_type);
     }
 
-    *entArr_iterator = create_itaps_iterator( range, requested_array_size );
+    *entArr_iterator = reinterpret_cast<iMesh_EntityArrIterator>
+                       (create_itaps_iterator( range, requested_array_size ));
     RETURN(iBase_SUCCESS);
   }
 
@@ -875,7 +876,7 @@
  * Method:  getEntArrNextIter[]
  */
   void iMesh_getNextEntArrIter (iMesh_Instance instance,
-                                /*in*/ iMesh_EntityIterator entArr_iterator,
+                                /*in*/ iMesh_EntityArrIterator entArr_iterator,
                                 /*inout*/ iBase_EntityHandle** entity_handles,
                                 /*inout*/ int* entity_handles_allocated,
                                 /*out*/ int* entity_handles_size,
@@ -906,7 +907,7 @@
  * Method:  resetEntArrIter[]
  */
   void iMesh_resetEntArrIter (iMesh_Instance instance,
-                              /*in*/ iMesh_EntityIterator entArr_iterator, int *err) 
+                              /*in*/ iMesh_EntityArrIterator entArr_iterator, int *err) 
   {
     RangeIterator *this_it = RANGE_ITERATOR(entArr_iterator);
 
@@ -916,7 +917,7 @@
   }
 
   void iMesh_endEntArrIter (iMesh_Instance instance,
-                            /*in*/ iMesh_EntityIterator entArr_iterator, int *err) 
+                            /*in*/ iMesh_EntityArrIterator entArr_iterator, int *err) 
   {
     RangeIterator *this_it = RANGE_ITERATOR(entArr_iterator);
 
@@ -1139,6 +1140,122 @@
     RETURN(iBase_SUCCESS);
   }
 
+  void iMesh_getAdjEntIndices(iMesh_Instance instance,
+                      /*in*/    iBase_EntitySetHandle entity_set_handle,
+                      /*in*/    int entity_type_requestor,
+                      /*in*/    int entity_topology_requestor,
+                      /*in*/    int entity_type_requested,
+                      /*inout*/ iBase_EntityHandle** entity_handles,
+                      /*inout*/ int* entity_handles_allocated,
+                      /*out*/   int* entity_handles_size,
+                      /*inout*/ iBase_EntityHandle** adj_entity_handles,
+                      /*inout*/ int* adj_entity_handles_allocated,
+                      /*out*/   int* adj_entity_handles_size,
+                      /*inout*/ int** adj_entity_indices,
+                      /*inout*/ int* adj_entity_indices_allocated,
+                      /*out*/   int* adj_entity_indices_size,
+                      /*inout*/ int** offset,
+                      /*inout*/ int* offset_allocated,
+                      /*out*/   int* offset_size,
+                      /*out*/   int *err)
+  {
+    // get source entities
+    iMesh_getEntities( instance, 
+                       entity_set_handle,
+                       entity_type_requestor, 
+                       entity_topology_requestor,
+                       entity_handles,
+                       entity_handles_allocated,
+                       entity_handles_size,
+                       err );
+    if (iBase_SUCCESS != *err)
+      return;
+    
+    // get adjacencies
+    // If int and iBase_EntityHandle are the same size, put directly
+    // into adj_entity_indices
+    iBase_EntityHandle* temp_storage = 0;
+    int size = 0;
+    if (sizeof(int) == sizeof(iBase_EntityHandle)) {
+      iMesh_getEntArrAdj( instance,
+                          *entity_handles, *entity_handles_size,
+                          entity_type_requested,
+                          reinterpret_cast<iBase_EntityHandle**>(adj_entity_indices), 
+                          adj_entity_indices_allocated, 
+                          adj_entity_indices_size,
+                          offset, offset_allocated, offset_size,
+                          err );
+      temp_storage = reinterpret_cast<iBase_EntityHandle*>(*adj_entity_indices);
+      size = *adj_entity_indices_size;
+    }
+    // Otherwise put result into new, temporary array and make sure
+    // that adj_entity_indices can hold the same number of entries.
+    else {
+      int alloc = 0;
+      iMesh_getEntArrAdj( instance,
+                          *entity_handles, *entity_handles_size,
+                          entity_type_requested,
+                          &temp_storage, &alloc, &size,
+                          offset, offset_allocated, offset_size,
+                          err );
+      if (!*adj_entity_indices_allocated) {
+        *adj_entity_indices = (int*)malloc(sizeof(iBase_EntityHandle)*size);
+        if (!*adj_entity_indices) {
+          *err = iBase_MEMORY_ALLOCATION_FAILED;
+          return;
+        }
+        *adj_entity_indices_allocated = size;
+      }
+      else if (*adj_entity_indices_allocated < size) {
+        *err = iBase_BAD_ARRAY_DIMENSION;
+        return;
+      }
+      *adj_entity_indices_size = size;
+    }
+    if (*err != iBase_SUCCESS)
+      return;
+    
+    // Put sorted unique version of temp array into final one
+    // If input allocation is too small, need to use another temporary
+    iBase_EntityHandle* unique_adj = 0;
+    if (*adj_entity_handles_allocated == 0) {
+      *adj_entity_handles_allocated = size;
+      *adj_entity_handles = (iBase_EntityHandle*)malloc(sizeof(iBase_EntityHandle) * size);
+      unique_adj = *adj_entity_handles;
+    }
+    else if (*adj_entity_handles_allocated >= size) {
+      unique_adj = *adj_entity_handles;
+    }
+    else {
+      unique_adj = (iBase_EntityHandle*)malloc(sizeof(iBase_EntityHandle) * size);
+    }
+    std::copy( temp_storage, temp_storage+size, unique_adj );
+    std::sort( unique_adj, unique_adj + size );
+    *adj_entity_handles_size = std::unique( unique_adj, unique_adj + size ) - unique_adj;
+    
+    // now copy data and relase temporary storage if necessary
+    if (*adj_entity_handles != unique_adj) {
+      if (*adj_entity_handles_allocated < *adj_entity_handles_size) {
+        *err = iBase_BAD_ARRAY_DIMENSION;
+        free(unique_adj);
+        if ((int*)temp_storage != *adj_entity_indices)
+          free(temp_storage);
+        return;
+      }
+      std::copy( unique_adj, unique_adj + size, *adj_entity_handles );
+      free( unique_adj );
+      unique_adj = *adj_entity_handles;
+    }
+    
+    // convert from adjacency list to indices into unique_adj
+    for (int i = 0; i < *adj_entity_indices_size; ++i)
+      (*adj_entity_indices)[i] = std::lower_bound( unique_adj, 
+        unique_adj + *adj_entity_handles_size, temp_storage[i] ) - unique_adj;
+    if ((int*)temp_storage != *adj_entity_indices)
+      free(temp_storage);
+  }
+
+
   void iMesh_createEntSet(iMesh_Instance instance,
                           /*in*/ const int isList,
                           /*out*/ iBase_EntitySetHandle* entity_set_created, int *err) 
@@ -1158,7 +1275,7 @@
     }
   
       // return EntitySet_Handle
-    *entity_set_created = (iBase_EntityHandle)meshset;
+    *entity_set_created = (iBase_EntitySetHandle)meshset;
     RETURN(iBase_ERROR_MAP[result]);
   }
 
@@ -1241,19 +1358,20 @@
     int k = 0;
 
     for (; iter != end_iter; iter++)
-      (*contained_entset_handles)[k++] = (iBase_EntityHandle)*iter;
+      (*contained_entset_handles)[k++] = (iBase_EntitySetHandle)*iter;
 
     *contained_entset_handles_size = sets.size();
     RETURN(iBase_SUCCESS);
   }
 
   void iMesh_addEntArrToSet(iMesh_Instance instance,
-                            /*in*/ const iBase_EntityHandle* entity_handles,
-                            /*in*/ const int entity_handles_size,
-                            /*inout*/ iBase_EntitySetHandle* entity_set, int *err)
+                            /*in*/ iBase_EntityHandle* entity_handles,
+                            /*in*/ int entity_handles_size,
+                            /*in*/ iBase_EntitySetHandle entity_set, 
+                            int *err)
   {
     const MBEntityHandle *ents = CONST_HANDLE_ARRAY_PTR(entity_handles);
-    MBErrorCode result = MBI->add_entities(ENTITY_HANDLE(*entity_set),
+    MBErrorCode result = MBI->add_entities(ENTITY_HANDLE(entity_set),
                                            ents, entity_handles_size);
 
     if (result != MB_SUCCESS) {
@@ -1267,21 +1385,21 @@
   }
 
   void iMesh_addEntToSet(iMesh_Instance instance,
-                         /*in*/ const iBase_EntityHandle entity_handle,
-                         /*inout*/ iBase_EntitySetHandle* entity_set, int *err)
+                         /*in*/ iBase_EntityHandle entity_handle,
+                         /*in*/ iBase_EntitySetHandle entity_set, int *err)
   {
     iMesh_addEntArrToSet(instance, &entity_handle, 1, entity_set, err);
   }
 
   void iMesh_rmvEntArrFromSet(iMesh_Instance instance,
-                              /*in*/ const iBase_EntityHandle* entity_handles,
-                              /*in*/ const int entity_handles_size,
-                              /*inout*/ iBase_EntitySetHandle* entity_set, int *err)
+                              /*in*/ iBase_EntityHandle* entity_handles,
+                              /*in*/ int entity_handles_size,
+                              /*in*/ iBase_EntitySetHandle entity_set, int *err)
   {
     const MBEntityHandle *ents = CONST_HANDLE_ARRAY_PTR(entity_handles);
 
     MBErrorCode result = MBI->remove_entities
-      (ENTITY_HANDLE(*entity_set), ents, entity_handles_size);
+      (ENTITY_HANDLE(entity_set), ents, entity_handles_size);
   
     if (result != MB_SUCCESS) {
       std::string msg("iMesh_rmvEntArrFromSet:ERROR removing entities in EntitySet, "
@@ -1294,17 +1412,19 @@
   }
   
   void iMesh_rmvEntFromSet(iMesh_Instance instance,
-                           /*in*/ const iBase_EntityHandle entity_handle,
-                           /*inout*/ iBase_EntitySetHandle* entity_set, int *err)
+                           /*in*/ iBase_EntityHandle entity_handle,
+                           /*in*/ iBase_EntitySetHandle entity_set, 
+                           int *err)
   {
     iMesh_rmvEntArrFromSet(instance, &entity_handle, 1, entity_set, err);
   }
   
   void iMesh_addEntSet(iMesh_Instance instance,
-                       /*in*/ const iBase_EntitySetHandle entity_set_to_add,
-                       /*inout*/ iBase_EntitySetHandle* entity_set_handle, int *err)
+                       /*in*/ iBase_EntitySetHandle entity_set_to_add,
+                       /*in*/ iBase_EntitySetHandle entity_set_handle,
+                       int *err)
   {
-    MBErrorCode result = MBI->add_entities(ENTITY_HANDLE(*entity_set_handle),
+    MBErrorCode result = MBI->add_entities(ENTITY_HANDLE(entity_set_handle),
                                            CONST_HANDLE_ARRAY_PTR(&entity_set_to_add), 1);
 
     if (result != MB_SUCCESS) {
@@ -1318,11 +1438,12 @@
   }
 
   void iMesh_rmvEntSet(iMesh_Instance instance,
-                       /*in*/ const iBase_EntitySetHandle entity_set_to_remove,
-                       /*inout*/ iBase_EntitySetHandle *entity_set_handle, int *err)
+                       /*in*/ iBase_EntitySetHandle entity_set_to_remove,
+                       /*in*/ iBase_EntitySetHandle entity_set_handle, 
+                       int *err)
   {
     MBErrorCode result = MBI->remove_entities
-      (ENTITY_HANDLE(*entity_set_handle), CONST_HANDLE_ARRAY_PTR(&entity_set_to_remove), 1);
+      (ENTITY_HANDLE(entity_set_handle), CONST_HANDLE_ARRAY_PTR(&entity_set_to_remove), 1);
   
     if (result != MB_SUCCESS) {
       std::string msg("iMesh_rmvEntSet:ERROR removing entitysets in EntitySet, "
@@ -1335,32 +1456,19 @@
   }
 
   void iMesh_isEntContained (iMesh_Instance instance,
-                             /*in*/ const iBase_EntitySetHandle containing_entity_set,
-                             /*in*/ const iBase_EntitySetHandle contained_entity,
+                             /*in*/ iBase_EntitySetHandle containing_entity_set,
+                             /*in*/ iBase_EntityHandle contained_entity,
                              int *is_contained, int *err) 
   {
-    MBRange all_ents;
-    MBErrorCode result = MBI->get_entities_by_handle(ENTITY_HANDLE(containing_entity_set),
-                                                     all_ents);
-    if (result != MB_SUCCESS) {
-      std::string msg("iMesh_isContainedIn:ERROR getting entities in EntitySet, "
-                      "with error type: ");
-      msg += MBI->get_error_string(result);
-      iMesh_processError(iBase_ERROR_MAP[result], msg.c_str());
-    }
-  
-    if (all_ents.find(ENTITY_HANDLE(contained_entity)) == all_ents.end())
-      *is_contained = false;
-  
-    else
-      *is_contained = true;
-
-    RETURN(iBase_ERROR_MAP[result]);
+    int junk1 = 1, junk2 = 1;
+    iMesh_isEntArrContained( instance, containing_entity_set, 
+                             &contained_entity, 1, &is_contained, 
+                             &junk1, &junk2, err );
   }
 
   void iMesh_isEntArrContained( iMesh_Instance instance,
                             /*in*/ iBase_EntitySetHandle containing_set,
-                            /*in*/ const iBase_EntitySetHandle* entity_handles,
+                            /*in*/ const iBase_EntityHandle* entity_handles,
                             /*in*/ int num_entity_handles,
                          /*inout*/ int** is_contained,
                          /*inout*/ int* is_contained_allocated,
@@ -1390,17 +1498,19 @@
                                 /*in*/ const iBase_EntitySetHandle contained_entity_set,
                                 int *is_contained, int *err) 
   {
-    iMesh_isEntContained(instance, containing_entity_set, contained_entity_set,
+    iMesh_isEntContained(instance, containing_entity_set, 
+                         reinterpret_cast<iBase_EntityHandle>(contained_entity_set),
                          is_contained, err);
   }
 
   void iMesh_addPrntChld(iMesh_Instance instance,
-                         /*inout*/ iBase_EntitySetHandle* parent_entity_set,
-                         /*inout*/ iBase_EntitySetHandle* child_entity_set, int *err) 
+                         /*inout*/ iBase_EntitySetHandle parent_entity_set,
+                         /*inout*/ iBase_EntitySetHandle child_entity_set, 
+                         int *err) 
   {
     MBErrorCode result = MBI->add_parent_child
-      (ENTITY_HANDLE(*parent_entity_set),
-       ENTITY_HANDLE(*child_entity_set));
+      (ENTITY_HANDLE(parent_entity_set),
+       ENTITY_HANDLE(child_entity_set));
 
     if (result != MB_SUCCESS) {
       std::string msg("MB Mesh::addPrntChld: ERROR addParentChild failed, with error type: ");
@@ -1413,12 +1523,13 @@
   }
 
   void iMesh_rmvPrntChld(iMesh_Instance instance,
-                         /*inout*/ iBase_EntitySetHandle* parent_entity_set,
-                         /*inout*/ iBase_EntitySetHandle* child_entity_set, int *err)
+                         /*inout*/ iBase_EntitySetHandle parent_entity_set,
+                         /*inout*/ iBase_EntitySetHandle child_entity_set, 
+                         int *err)
   {
     MBErrorCode result = MBI->remove_parent_child
-      (ENTITY_HANDLE(*parent_entity_set),
-       ENTITY_HANDLE(*child_entity_set));
+      (ENTITY_HANDLE(parent_entity_set),
+       ENTITY_HANDLE(child_entity_set));
   
     if (result != MB_SUCCESS) {
       std::string msg("iMesh_rmvPrntChld: ERROR RemoveParentChild failed, with error type: ");
@@ -2139,7 +2250,7 @@
       *status = iBase_CREATION_FAILED;
     else
       *status = iBase_SUCCESS;
-    *new_entity_handle = CAST_TO_VOID(tmp_ent);
+    *new_entity_handle = reinterpret_cast<iBase_EntityHandle>(tmp_ent);
 
     *err = *status;
   }
@@ -2515,7 +2626,8 @@
                           int *err) 
   {
     iMesh_initEntArrIter(instance, entity_set_handle, requested_entity_type,
-                         requested_entity_topology, 1, entity_iterator,
+                         requested_entity_topology, 1, 
+                         reinterpret_cast<iMesh_EntityArrIterator*>(entity_iterator),
                          err);
   }
 
@@ -2526,20 +2638,25 @@
   {
     int eh_size = 1;
     iMesh_getNextEntArrIter(instance,
-                            entity_iterator, &entity_handle, &eh_size, &eh_size, is_end, err);
+                            reinterpret_cast<iMesh_EntityArrIterator>(entity_iterator),
+                            &entity_handle, &eh_size, &eh_size, is_end, err);
   
   }
 
   void iMesh_resetEntIter (iMesh_Instance instance,
                            /*in*/ iMesh_EntityIterator entity_iterator, int *err) 
   {
-    iMesh_resetEntArrIter(instance, entity_iterator, err);  
+    iMesh_resetEntArrIter(instance,
+                          reinterpret_cast<iMesh_EntityArrIterator>(entity_iterator),
+                          err);  
   }
 
   void iMesh_endEntIter (iMesh_Instance instance,
                          /*in*/ iMesh_EntityIterator entity_iterator, int *err) 
   {
-    iMesh_endEntArrIter(instance, entity_iterator, err);
+    iMesh_endEntArrIter(instance, 
+                        reinterpret_cast<iMesh_EntityArrIterator>(entity_iterator),
+                        err);
   }
 
   void iMesh_getEntTopo (iMesh_Instance instance,
@@ -3123,31 +3240,32 @@
                             MBRange &from_ents,
                             MBEntityHandle in_set) 
 {
-  assert(MBimesh->AdjTable[10] || MBimesh->AdjTable[5]);
+  MBiMesh* mbimesh = dynamic_cast<MBiMesh*>(instance);
+  assert(mbimesh->AdjTable[10] || mbimesh->AdjTable[5]);
   MBRange int_ents;
   MBErrorCode result;
   
-  if (MBimesh->AdjTable[10]) {
-    result = MBI->get_adjacencies(from_ents, 2, true, int_ents,
+  if (mbimesh->AdjTable[10]) {
+    result = instance->get_adjacencies(from_ents, 2, true, int_ents,
                                   MBInterface::UNION);
     if (MB_SUCCESS != result) return result;
     unsigned int old_size = from_ents.size();
     from_ents.merge(int_ents);
     if (old_size != from_ents.size() && in_set) {
-      result = MBI->add_entities(in_set, int_ents);
+      result = instance->add_entities(in_set, int_ents);
       if (MB_SUCCESS != result) return result;
     }
   }
   
-  if (MBimesh->AdjTable[5]) {
+  if (mbimesh->AdjTable[5]) {
     int_ents.clear();
-    result = MBI->get_adjacencies(from_ents, 1, true, int_ents,
+    result = instance->get_adjacencies(from_ents, 1, true, int_ents,
                                   MBInterface::UNION);
     if (MB_SUCCESS != result) return result;
     unsigned int old_size = from_ents.size();
     from_ents.merge(int_ents);
     if (old_size != from_ents.size() && in_set) {
-      result = MBI->add_entities(in_set, int_ents);
+      result = instance->add_entities(in_set, int_ents);
       if (MB_SUCCESS != result) return result;
     }
   }

Modified: MOAB/trunk/tools/iMesh/iMesh_protos.h
===================================================================
--- MOAB/trunk/tools/iMesh/iMesh_protos.h	2009-01-20 22:54:22 UTC (rev 2563)
+++ MOAB/trunk/tools/iMesh/iMesh_protos.h	2009-01-21 01:05:15 UTC (rev 2564)
@@ -10,13 +10,12 @@
 #define iMesh_save FC_FUNC_(imesh_save, IMESH_SAVE)
 #define iMesh_getRootSet FC_FUNC_(imesh_getrootset, IMESH_GETROOTSET)
 #define iMesh_getGeometricDimension FC_FUNC_(imesh_getgeometricdimension, IMESH_GETGEOMETRICDIMENSION)
+#define iMesh_setGeometricDimension FC_FUNC_(imesh_setgeometricdimension, IMESH_SETGEOMETRICDIMENSION)
 #define iMesh_getDfltStorage FC_FUNC_(imesh_getdfltstorage, IMESH_GETDFLTSTORAGE)
 #define iMesh_getAdjTable FC_FUNC_(imesh_getadjtable, IMESH_GETADJTABLE)
 #define iMesh_getNumOfType FC_FUNC_(imesh_getnumoftype, IMESH_GETNUMOFTYPE)
 #define iMesh_getNumOfTopo FC_FUNC_(imesh_getnumoftopo, IMESH_GETNUMOFTOPO)
 #define iMesh_areEHValid FC_FUNC_(imesh_areehvalid, IMESH_AREEHVALID)
-#define iMesh_getAllVtxCoords FC_FUNC_(imesh_getallvtxcoords, IMESH_GETALLVTXCOORDS)
-#define iMesh_getVtxCoordIndex FC_FUNC_(imesh_getvtxcoordindex, IMESH_GETVTXCOORDINDEX)
 #define iMesh_fetErrorType FC_FUNC_(imesh_feterrorType, IMESH_FETERRORTYPE)
 #define iMesh_getEntities FC_FUNC_(imesh_getentities, IMESH_GETENTITIES)
 #define iMesh_getVtxArrCoords FC_FUNC_(imesh_getvtxarrcoords, IMESH_GETVTXARRCOORDS)
@@ -29,6 +28,7 @@
 #define iMesh_getEntArrType FC_FUNC_(imesh_getentarrtype, IMESH_GETENTARRTYPE)
 #define iMesh_getEntArrAdj FC_FUNC_(imesh_getentarradj, IMESH_GETENTARRADJ)
 #define iMesh_getEntArr2ndAdj FC_FUNC_(imesh_getentarr2ndadj, IMESH_GETENTARR2NDADJ)
+#define iMesh_getAdjEntIndices FC_FUNC_(imesh_getadjentindices, IMESH_GETADJENTINDICES)
 #define iMesh_createEntSet FC_FUNC_(imesh_createentset, IMESH_CREATEENTSET)
 #define iMesh_destroyEntSet FC_FUNC_(imesh_destroyentset, IMESH_DESTROYENTSET)
 #define iMesh_isList FC_FUNC_(imesh_islist, IMESH_ISLIST)
@@ -41,6 +41,7 @@
 #define iMesh_addEntSet FC_FUNC_(imesh_addentset, IMESH_ADDENTSET)
 #define iMesh_rmvEntSet FC_FUNC_(imesh_rmventset, IMESH_RMVENTSET)
 #define iMesh_isEntContained FC_FUNC_(imesh_isentcontained, IMESH_ISENTCONTAINED)
+#define iMesh_isEntArrContained FC_FUNC_(imesh_isentarrcontained, IMESH_ISENTARRCONTAINED)
 #define iMesh_isEntSetContained FC_FUNC_(imesh_isentsetcontained, IMESH_ISENTSETCONTAINED)
 #define iMesh_addPrntChld FC_FUNC_(imesh_addprntchld, IMESH_ADDPRNTCHLD)
 #define iMesh_rmvPrntChld FC_FUNC_(imesh_rmvprntchld, IMESH_RMVPRNTCHLD)




More information about the moab-dev mailing list