Home

Basic operations
[EDA Mesh Functionality]

Collaboration diagram for Basic operations:
Declared at <vabridge.h>. More...

Classes

class  va_base_mesh_options
 Options object that controls va_mesh behavior. More...
class  va_mesh
 Abstract base class. More...
class  va_surface_mesh_options
 Options object that controls va_surfmesh behavior. More...
class  va_surfmesh
 Bridge class that provides for the automatic generation of linear or parabolic triangular or quadrilateral elements given an input surface geometry. More...
class  va_tet_mesh_options
 Options object that controls va_tetmesh behavior. More...
class  va_tetmesh
 Bridge class that provides for the automatic generation of linear or parabolic tetrahedral elements given a surface mesh (VA_SURFMESH) as input geometry. More...

Enumerations

enum  VA_ELEMENT_TYPE {
  VA_SURFACE_TRI_LINEAR,
  VA_SURFACE_TRI_PARABOLIC,
  VA_SURFACE_TRI_LAGRANGE,
  VA_SURFACE_QUAD_LINEAR,
  VA_SURFACE_QUAD_PARABOLIC,
  VA_SURFACE_QUAD_LAGRANGE,
  VA_TET_LINEAR,
  VA_TET_PARABOLIC,
  VA_TET_LAGRANGE
}
 Types for 3D meshed elements. More...
enum  VA_FACE_TYPE {
  VA_FACE_TRI_LINEAR,
  VA_FACE_TRI_PARABOLIC,
  VA_FACE_TRI_LAGRANGE,
  VA_FACE_QUAD_LINEAR,
  VA_FACE_QUAD_PARABOLIC,
  VA_FACE_QUAD_LAGRANGE
}
 Types for meshed faces. More...
enum  VHA_RenderMode_e {
  VHA_RENDER_ALL = 0xffff,
  VHA_RENDER_NONE = 0x0000,
  VHA_RENDER_EDGES = 0x0001,
  VHA_RENDER_FACES = 0x0002
}
 Enumerator to control rendering, use a bitwise OR to get combinations. More...

Functions

outcome api_va_create_surface_mesh (va_surfmesh *&surface_mesh, const va_surface_mesh_options *mesh_opts=NULL, AcisOptions *ao=NULL)
 Creates a surface mesh object.
outcome api_va_create_tet_mesh (va_tetmesh *&tet_mesh, const va_tet_mesh_options *mesh_opts=NULL, AcisOptions *ao=NULL)
 Creates a tet mesh object.
outcome api_va_delete_mesh (va_mesh *mesh)
 Deletes VKI Mesh object from ACIS object.
outcome api_va_generate_surface_mesh (const ENTITY_LIST &e_list, va_surfmesh *&surface_mesh, const va_surface_mesh_options *mesh_opts=NULL, AcisOptions *ao=NULL)
 Populates VKI Mesh object from ACIS object.
outcome api_va_generate_tessellation_mesh (ENTITY *&ent, va_surfmesh *&surface_mesh, const va_surface_mesh_options *mesh_opts=NULL, AcisOptions *ao=NULL)
 Generates input geometry to the mesher, without generating a mesh.
outcome api_va_generate_tet_mesh (const ENTITY_LIST &e_list, va_tetmesh *&out_mesh, const va_surface_mesh_options *surface_mesh_opts=NULL, const va_tet_mesh_options *tet_mesh_opts=NULL, AcisOptions *ao=NULL)
 Creates a tet mesh directly from ACIS ENTITYs.
outcome api_va_generate_tet_mesh (va_surfmesh *in_mesh, va_tetmesh *&out_mesh, const va_tet_mesh_options *mesh_opts=NULL, AcisOptions *ao=NULL)
 Given a VKI surface mesh object, this API creates a VKI volumetric mesh object.
outcome api_va_get_edge_nodes (const va_mesh *in_mesh, const int element_index, const int edge_index, int &node_count, int node_array[3], va_base_mesh_options *msopts=NULL, AcisOptions *ao=NULL)
 Gets the nodes in a mesh edge.
outcome api_va_get_element_count (const va_mesh *in_mesh, int &element_count, va_base_mesh_options *msopts=NULL, AcisOptions *ao=NULL)
 Gets the number of elements in a mesh.
outcome api_va_get_element_data (const va_mesh *in_mesh, const int element_index, VA_ELEMENT_TYPE &elem_type, int &face_count, int &edge_count, int &node_count, int node_array[10], va_base_mesh_options *msopts=NULL, AcisOptions *ao=NULL)
 Gets the number of faces, edges and nodes in an element.
outcome api_va_get_elements (const va_mesh *in_mesh, const ENTITY *ent, int &elem_count, int *&elem_array, va_base_mesh_options *msopts=NULL, AcisOptions *ao=NULL)
 Gets the elements associated with an entity.
outcome api_va_get_entity (const va_mesh *in_mesh, const int elem_index, const int feat_index, VERTEX *&ent, va_base_mesh_options *msopts=NULL, AcisOptions *ao=NULL)
 Gets the VERTEX associated with a particular element, given a feature in the element.
outcome api_va_get_entity (const va_mesh *in_mesh, const int elem_index, const int feat_index, EDGE *&ent, va_base_mesh_options *msopts=NULL, AcisOptions *ao=NULL)
 Gets the EDGE associated with a particular element, given a feature in the element.
outcome api_va_get_entity (const va_mesh *in_mesh, const int elem_index, const int feat_index, FACE *&ent, va_base_mesh_options *msopts=NULL, AcisOptions *ao=NULL)
 Gets the FACE associated with a particular element, given a feature in the element.
outcome api_va_get_face_nodes (const va_mesh *in_mesh, const int element_index, const int face_index, VA_FACE_TYPE &face_type, int &node_count, int node_array[9], va_base_mesh_options *msopts=NULL, AcisOptions *ao=NULL)
 Gets the nodes in a mesh element face.
outcome api_va_get_faceter_refinement (const va_surfmesh *in_mesh, REFINEMENT *&ref, AcisOptions *ao=NULL)
 Gets faceter refinement.
outcome api_va_get_mesh_options (const va_mesh *in_mesh, va_base_mesh_options *&msopts, AcisOptions *ao=NULL)
 Gets current mesh input options.
outcome api_va_get_node_count (const va_mesh *in_mesh, int &node_count, va_base_mesh_options *msopts=NULL, AcisOptions *ao=NULL)
 Gets the number of nodes in a mesh.
outcome api_va_get_node_entities (const va_mesh *in_mesh, const int node_index, const int entity_type, ENTITY_LIST &enlist, va_base_mesh_options *msopts=NULL, AcisOptions *ao=NULL)
 Gets all entities associated with a particular node.
outcome api_va_get_node_positions (const va_mesh *in_mesh, const int node_count, const int *node_indices, SPAposition *node_position, va_base_mesh_options *msopts=NULL, AcisOptions *ao=NULL)
 Gets the position of nodes in a mesh.
outcome api_va_get_nodes (const va_mesh *in_mesh, const ENTITY *ent, int &node_count, int *&node_array, va_base_mesh_options *msopts=NULL, AcisOptions *ao=NULL)
 Gets the nodes associated with an entity.
outcome api_va_initialize ()
 ACIS style initialization.
outcome api_va_refine (va_surfmesh *in_mesh, AcisOptions *ao=NULL)
 Refines a mesh.
outcome api_va_set_refinement (va_surfmesh *in_mesh, int elem_idx, double size, AcisOptions *ao=NULL)
 Sets refinement for a specific element in mesh.
outcome api_va_terminate ()
 ACIS style termination.
outcome api_vha_initialize ()
 ACIS style initialization.
outcome api_vha_render_mesh (va_mesh *p_mesh, const int render_mode=VHA_RENDER_ALL, AcisOptions *ao=NULL)
 Render a mesh to the open HOOPS segment.
outcome api_vha_terminate ()
 ACIS style termination.

Detailed Description

Declared at <vabridge.h>.

Declared at <vhabridge.h>.


Enumeration Type Documentation

Types for 3D meshed elements.

Enumerator:
VA_SURFACE_TRI_LINEAR  Triangle connectivity, Serendipity Linear.
VA_SURFACE_TRI_PARABOLIC  Triangle connectivity, Serendipity Parabolic.
VA_SURFACE_TRI_LAGRANGE  Triangle connectivity, Lagrange Parabolic.
VA_SURFACE_QUAD_LINEAR  Quadrilateral connectivity, Serendipity Linear.
VA_SURFACE_QUAD_PARABOLIC  Quadrilateral connectivity, Serendipity Parabolic.
VA_SURFACE_QUAD_LAGRANGE  Quadrilateral connectivity, Lagrange Parabolic.
VA_TET_LINEAR  Tetrahedron connectivity, Serendipity Linear.
VA_TET_PARABOLIC  Tetrahedron connectivity, Serendipity Parabolic.
VA_TET_LAGRANGE  Tetrahedron connectivity, Lagrange Parabolic.

Types for meshed faces.

include <vabridge.h>

Enumerator:
VA_FACE_TRI_LINEAR  Triangle connectivity, Serendipity Linear.
VA_FACE_TRI_PARABOLIC  Triangle connectivity, Serendipity Parabolic.
VA_FACE_TRI_LAGRANGE  Triangle connectivity, Lagrange Parabolic.
VA_FACE_QUAD_LINEAR  Quadrilateral connectivity, Serendipity Linear.
VA_FACE_QUAD_PARABOLIC  Quadrilateral connectivity, Serendipity Parabolic.
VA_FACE_QUAD_LAGRANGE  Quadrilateral connectivity, Lagrange Parabolic.

Enumerator to control rendering, use a bitwise OR to get combinations.

Enumerator:
VHA_RENDER_ALL  All objects rendered.
VHA_RENDER_NONE  No objects rendered.
VHA_RENDER_EDGES  edges are rendered.
VHA_RENDER_FACES  faces are rendered.


Function Documentation

outcome api_va_create_surface_mesh ( va_surfmesh *&  surface_mesh,
const va_surface_mesh_options mesh_opts = NULL,
AcisOptions ao = NULL 
)

Creates a surface mesh object.

Role:
Creates a mesh object and the corresponding VKI objects, but does not generate a mesh. This gives applications an opportunity to set refinement options in the Faceter before any ENTITYs are meshed.
Journal:
Available
Parameters:
mesh (output) New surface Mesh object
mesh_opts (input) Mesh options object that set several parameters on the mesh
ao (input) ACIS options object
Returns:
Indicates success or failure.

include <vabridge.h>

outcome api_va_create_tet_mesh ( va_tetmesh *&  tet_mesh,
const va_tet_mesh_options mesh_opts = NULL,
AcisOptions ao = NULL 
)

Creates a tet mesh object.

Role:
Creates a tet mesh object and the corresponding VKI objects, but does not generate a mesh. This gives applications an opportunity to set options on the VKI objects.
Journal:
Available
Parameters:
mesh (input) New tet Mesh object
mesh_opts (input) Mesh options object that set several parameters on the mesh
ao (input) ACIS options object
Returns:
Indicates success or failure.

include <vabridge.h>

outcome api_va_delete_mesh ( va_mesh mesh  ) 

Deletes VKI Mesh object from ACIS object.

Parameters:
mesh mesh to delete
Returns:
Indicates success or failure.

include <vabridge.h>

outcome api_va_generate_surface_mesh ( const ENTITY_LIST e_list,
va_surfmesh *&  surface_mesh,
const va_surface_mesh_options mesh_opts = NULL,
AcisOptions ao = NULL 
)

Populates VKI Mesh object from ACIS object.

Role:
Given a list of ACIS bodies, this API creates a new VKI surface mesh object.
Journal:
Available
Parameters:
e_list (input) List of entities to be meshed
surface_mesh (input/output) Surface Mesh object, if this is NULL then a new one is created
mesh_opts (input) Mesh options object that set several parameters on the mesh
ao (input) ACIS options object
Returns:
Indicates success or failure.

include <vabridge.h>

outcome api_va_generate_tessellation_mesh ( ENTITY *&  ent,
va_surfmesh *&  surface_mesh,
const va_surface_mesh_options mesh_opts = NULL,
AcisOptions ao = NULL 
)

Generates input geometry to the mesher, without generating a mesh.

Role:
This API serves as an intermediate step that allows generation of input geometry to be used in the mesher. No mesh is yet generated, but is the intermediate step between ACIS geometry and that provided to the mesher.
Parameters:
e_list (input) List of entities to be meshed
surface_mesh (input/output) Surface Mesh object, if this is NULL then a new one is created
mesh_opts (input) Mesh options object that set several parameters on the mesh
ao (input) ACIS options object
Returns:
Indicates success or failure.

include <vabridge.h>

outcome api_va_generate_tet_mesh ( const ENTITY_LIST e_list,
va_tetmesh *&  out_mesh,
const va_surface_mesh_options surface_mesh_opts = NULL,
const va_tet_mesh_options tet_mesh_opts = NULL,
AcisOptions ao = NULL 
)

Creates a tet mesh directly from ACIS ENTITYs.

Role:
Given a list of ACIS bodies, this API creates a new VKI tet mesh object.
Journal:
Available
Parameters:
e_list (input) List of entities to be meshed
surface_mesh (input/output) Surface Mesh object, if this is NULL then a new one is created
surface_mesh_opts (input) Options object that set several parameters on the intermediate surface mesh.
tet_mesh_opts (input) Options object that set several parameters on the intermediate surface mesh.
ao (input) ACIS options object
Returns:
Indicates success or failure.

include <vabridge.h>

outcome api_va_generate_tet_mesh ( va_surfmesh in_mesh,
va_tetmesh *&  out_mesh,
const va_tet_mesh_options mesh_opts = NULL,
AcisOptions ao = NULL 
)

Given a VKI surface mesh object, this API creates a VKI volumetric mesh object.

Parameters:
in_mesh (input) Surface mesh object
out_mesh (output) New volumetric mesh object
mesh_opts (input) Mesh options object that set several parameters on the mesh
ao (input) ACIS options object
Returns:
Indicates success or failure.

include <vabridge.h>

outcome api_va_get_edge_nodes ( const va_mesh in_mesh,
const int  element_index,
const int  edge_index,
int &  node_count,
int  node_array[3],
va_base_mesh_options msopts = NULL,
AcisOptions ao = NULL 
)

Gets the nodes in a mesh edge.

Role:
For a linear mesh, the edges have two nodes, for a parabolic edge there are three nodes; the first and last are the end points and the second is the midpoint.
Journal:
Available.
Parameters:
in_mesh (input) Mesh created by VKI
element_index (input) The index of the element to get information about
edge_index (input) The index of the edge to get information about
node_count (output) Number of nodes in the edge
node_array (output) Array of integers to hold the node indices
msopts (Optional) Mesh options
ao (input) ACIS options
Returns:
Indicates success or failure.

include <vabridge.h>

outcome api_va_get_element_count ( const va_mesh in_mesh,
int &  element_count,
va_base_mesh_options msopts = NULL,
AcisOptions ao = NULL 
)

Gets the number of elements in a mesh.

Journal:
Available.
Parameters:
in_mesh Mesh created by VKI
element_count Number of elements in the mesh
msopts (Optional) Mesh options
ao ACIS options
Returns:
Indicates success or failure.

include <vabridge.h>

outcome api_va_get_element_data ( const va_mesh in_mesh,
const int  element_index,
VA_ELEMENT_TYPE elem_type,
int &  face_count,
int &  edge_count,
int &  node_count,
int  node_array[10],
va_base_mesh_options msopts = NULL,
AcisOptions ao = NULL 
)

Gets the number of faces, edges and nodes in an element.

Journal:
Available.
Parameters:
in_mesh (input) Mesh created by VKI
element_index (input) The index of the element to get information about
elem_type (output) The type of the element
face_count (output) Number of faces in the element
edge_count (output) Number of edges in the element
node_count (output) Number of nodes in the element
node_array (output) Node indices array
msopts (Optional) Mesh options
ao ACIS options
Returns:
outcome Indicates success or failure.

include <vabridge.h>

outcome api_va_get_elements ( const va_mesh in_mesh,
const ENTITY ent,
int &  elem_count,
int *&  elem_array,
va_base_mesh_options msopts = NULL,
AcisOptions ao = NULL 
)

Gets the elements associated with an entity.

Role:
For any given mesh, the number of elements associated to an entity varies from model to model. This API will allocate (ACIS_NEW []) enough space to hold an array of those elements, returning the total of elements in the process.
It is the responsibility of the caller to delete the memory allocated.

Parameters:
in_mesh Pointer to mesh object
ent Pointer to ACIS ENTITY
elem_count (output) total number of elements associated with given entity
elem_array (output) Indices of those elements associated with given entity
msopts (Optional) Mesh options
ao ACIS options
Returns:
Indicates success or failure.

include <vabridge.h>

outcome api_va_get_entity ( const va_mesh in_mesh,
const int  elem_index,
const int  feat_index,
VERTEX *&  ent,
va_base_mesh_options msopts = NULL,
AcisOptions ao = NULL 
)

Gets the VERTEX associated with a particular element, given a feature in the element.

Parameters:
in_mesh Pointer to mesh object
elem_index Element index
feat_index Node index (requires global node index)
ent (output) Pointer to ACIS ENTITY
msopts (Optional) Mesh options
ao ACIS options
Returns:
Indicates success or failure.

include <vabridge.h>

outcome api_va_get_entity ( const va_mesh in_mesh,
const int  elem_index,
const int  feat_index,
EDGE *&  ent,
va_base_mesh_options msopts = NULL,
AcisOptions ao = NULL 
)

Gets the EDGE associated with a particular element, given a feature in the element.

Parameters:
in_mesh Pointer to mesh object
elem_index Element index
feat_index Edge index in the mesh element (Note: 1 based)
ent (output) Pointer to ACIS ENTITY
msopts (Optional) Mesh options
ao ACIS options
Returns:
Indicates success or failure.

include <vabridge.h>

outcome api_va_get_entity ( const va_mesh in_mesh,
const int  elem_index,
const int  feat_index,
FACE *&  ent,
va_base_mesh_options msopts = NULL,
AcisOptions ao = NULL 
)

Gets the FACE associated with a particular element, given a feature in the element.

Parameters:
in_mesh Pointer to mesh object
elem_index Element index
feat_index Face index in the mesh element (Note: 1 based)
ent (output) Pointer to ACIS ENTITY
msopts (Optional) Mesh options
ao ACIS options
Returns:
Indicates success or failure.

include <vabridge.h>

outcome api_va_get_face_nodes ( const va_mesh in_mesh,
const int  element_index,
const int  face_index,
VA_FACE_TYPE face_type,
int &  node_count,
int  node_array[9],
va_base_mesh_options msopts = NULL,
AcisOptions ao = NULL 
)

Gets the nodes in a mesh element face.

Journal:
Available.
Parameters:
in_mesh (input) Mesh created by VKI
element_index (input) The index of the element to get information about
face_index (input) The index of the face to get information about
face_type (output) The type of the face
node_count (output) Number of nodes in the node_array
node_array (output) Array of integers to hold the node indices
msopts (Optional) Mesh options
ao ACIS options
Returns:
Indicates success or failure.

include <vabridge.h>

outcome api_va_get_faceter_refinement ( const va_surfmesh in_mesh,
REFINEMENT *&  ref,
AcisOptions ao = NULL 
)

Gets faceter refinement.

Journal:
Available.
Parameters:
in_mesh (input) Pointer to surface mesh object
ref (output) Pointer to REFINEMENT entity, related to ACIS Faceter
ao (input) ACIS Options
Returns:
Indicates success or failure.

include <vabridge.h>

outcome api_va_get_mesh_options ( const va_mesh in_mesh,
va_base_mesh_options *&  msopts,
AcisOptions ao = NULL 
)

Gets current mesh input options.

Parameters:
in_mesh Pointer to mesh object
msopts (output) Current mesh input options (used to generate a mesh)
ao ACIS options
Returns:
Indicates success or failure.

include <vabridge.h>

outcome api_va_get_node_count ( const va_mesh in_mesh,
int &  node_count,
va_base_mesh_options msopts = NULL,
AcisOptions ao = NULL 
)

Gets the number of nodes in a mesh.

Journal:
Available.
Parameters:
in_mesh Mesh created by VKI
node_count Number of nodes in the mesh
msopts (Optional) Mesh options
ao (Optional) ACIS options
Returns:
Indicates success or failure.

include <vabridge.h>

outcome api_va_get_node_entities ( const va_mesh in_mesh,
const int  node_index,
const int  entity_type,
ENTITY_LIST enlist,
va_base_mesh_options msopts = NULL,
AcisOptions ao = NULL 
)

Gets all entities associated with a particular node.

Parameters:
in_mesh Pointer to mesh object
node_index Global node index
entity_type Type of entity use as filter (ACIS id: FACE_ID, EDGE_ID or VERTEX_ID).
elist (output) List of ENTITYs associated with given node
msopts (Optional) Mesh options
ao ACIS options
Returns:
Indicates success or failure.

include <vabridge.h>

outcome api_va_get_node_positions ( const va_mesh in_mesh,
const int  node_count,
const int *  node_indices,
SPAposition node_position,
va_base_mesh_options msopts = NULL,
AcisOptions ao = NULL 
)

Gets the position of nodes in a mesh.

Journal:
Available.
Parameters:
in_mesh Mesh created by VKI
node_count Number of nodes to get the positions of
node_indices Indices of the nodes to get positions for
node_position Positions
msopts (Optional) Mesh options
ao ACIS options
Returns:
Indicates success or failure.

include <vabridge.h>

outcome api_va_get_nodes ( const va_mesh in_mesh,
const ENTITY ent,
int &  node_count,
int *&  node_array,
va_base_mesh_options msopts = NULL,
AcisOptions ao = NULL 
)

Gets the nodes associated with an entity.

Role:
For any given mesh, the number of nodes associated to an entity varies from model to model. This API will allocate (ACIS_NEW []) enough space to hold an array of those elements, returning the total of elements in the process.
It is the responsibility of the caller to delete the memory allocated.

Parameters:
in_mesh Pointer to mesh object
ent Pointer to ACIS ENTITY
node_count (output) Total number of nodes associated with given entity
node_array (output) Indices of those nodes associated with given entity
msopts (Optional) Mesh options
ao ACIS options
Returns:
Indicates success or failure.

include <vabridge.h>

outcome api_va_initialize (  ) 

ACIS style initialization.

Role:
Initializes the VKI ACIS bridge. This should be called once during run-time.
Returns:
Indicates success or failure.

include <vabridge.h>

outcome api_va_refine ( va_surfmesh in_mesh,
AcisOptions ao = NULL 
)

Refines a mesh.

At least one of its elements must have been specified and set for refinement.

Parameters:
in_mesh (input) Mesh to be refined (only surface meshes can be refined)
ao (input) ACIS options object
Returns:
Indicates success or failure.

include <vabridge.h>

outcome api_va_set_refinement ( va_surfmesh in_mesh,
int  elem_idx,
double  size,
AcisOptions ao = NULL 
)

Sets refinement for a specific element in mesh.

Parameters:
in_mesh (input) Mesh to be refined (only surface meshes can be refined)
elem_idx (input) Element index (Mesh element index starts with 1)
size (input) Set refinement value
ao (input) ACIS options object
Returns:
Indicates success or failure.

include <vabridge.h>

outcome api_va_terminate (  ) 

ACIS style termination.

Role:
Terminates the VKI ACIS bridge. This should be called once during run-time.
Returns:
Indicates success or failure.

include <vabridge.h>

outcome api_vha_initialize (  ) 

ACIS style initialization.

Role:
Initializes the VKI/HOOPS/ACIS bridge. This should be called once during run-time.
Returns:
Indicates success or failure.

include <vhabridge.h>

outcome api_vha_render_mesh ( va_mesh p_mesh,
const int  render_mode = VHA_RENDER_ALL,
AcisOptions ao = NULL 
)

Render a mesh to the open HOOPS segment.

Role:
HOOPS data is created in the open segment. All responsibility for opening segments and setting of visual propoerties is left to the application.
Parameters:
p_mesh Mesh to render.
render_mode Bitwise OR of values in VHA_RenderMode_e to control what is rendered.
ao ACIS options object
Returns:
Indicates success or failure with an error.

include <vhabridge.h>

outcome api_vha_terminate (  ) 

ACIS style termination.

Role:
Terminates the VKI/HOOPS/ACIS bridge. This should be called once during run-time.
Returns:
Indicates success or failure.

include <vhabridge.h>