CMLSurfMapper Class Reference

The surface mapper fills a logical rectangle with a structured mesh of quadrilaterals. More...

#include <CMLSurfMapper.hpp>

Inheritance diagram for CMLSurfMapper:

CMLMesher List of all members.

Public Member Functions

Constructor/Destructor
 CMLSurfMapper (CMLSurfEval *geom_eval, CML::OutputMsg msg_level=CML::STANDARD)
 A class constructor.
virtual ~CMLSurfMapper ()
 A virtual destructor for the class.
Mesh input
bool set_boundary_mesh (int num_points_i, int num_points_j, double *const points, int *const point_ids=NULL)
 Supply the surface mesh describing the surface boundary.
Core mesher
bool generate_mesh (int &num_points_out, int &num_quads)
 Generate a quadrilateral mesh for the surface.
Mesh output
bool get_mesh (int num_points_out, double *const points, int num_quads, int *const quads)
 Retrieve the generated quadrilateral mesh.
int get_points_buf (int buf_size, double *const points, int start_index=0)
 Retrieve the generated points one buffer at a time.
int get_quads_buf (int buf_size, int *const quads, int start_index=0)
 Retrieve the generated quadrilaterals one buffer at a time.
Algorithm properties
void set_param_space (bool value)
 Set the parameter-space flag.
bool get_param_space ()
 Get the value of the parameter-space flag.
Message output control
virtual CML::OutputMsg get_msg_level () const
 Get the value of the message level flag.
virtual void set_msg_level (CML::OutputMsg level)
 Set the value of the message level flag.
virtual void open_log_file (const char *filename, bool append=false)
 Open a log file to record algorithm output.
virtual void close_log_file ()
 Close an open log file.
virtual void set_message_handler (CubitMessageHandler *h)
 Use an alternate output message handler.
virtual void set_progress_handler (CMLProgress *h)
 Use an alternate progress handler.
CAMAL version
virtual int get_major_version () const
 Returns the major version number.
virtual int get_minor_version () const
 Returns the minor version number.
virtual int get_subminor_version () const
 Returns the subminor version (patch) number.
virtual int get_allint_version () const
 Returns version number as one integer.
virtual const char * get_version_string ()
 Returns version number as a string.
Mesher properties
virtual void set_sizing_function (CML::SizingType type, double size1=-1.0, double size2=-1.0)
 Set a sizing function and its parameters.

Detailed Description

The surface mapper fills a logical rectangle with a structured mesh of quadrilaterals.

The surface is defined by a loop of points that are its boundary. The mesh is defined by the number of intervals in the i and j directions. The mapper produces a regular mesh. It uses a CMLSurfEval object to move nodes to the surface.


Constructor & Destructor Documentation

CMLSurfMapper::CMLSurfMapper ( CMLSurfEval geom_eval,
CML::OutputMsg  msg_level = CML::STANDARD 
)

A class constructor.

Parameters:
geom_eval A pointer to the geometry evaluator object that performs move-to-surface, normal-at-point, etc. computations.
msg_level An enumerated constant that controls the amount of output. The default value is CML::STANDARD. A value of CML::NODE causes the mapper to suppress all output.
See also:
set_msg_level()


Member Function Documentation

virtual void CMLSurfMapper::close_log_file (  )  [virtual]

Close an open log file.

See also:
open_log_file()

Implements CMLMesher.

bool CMLSurfMapper::generate_mesh ( int &  num_points_out,
int &  num_quads 
)

Generate a quadrilateral mesh for the surface.

Parameters:
num_points_out The total number of points generated including the input points
num_quads The number of quadrilaterals generated
Returns:
true if successful, false otherwise
Note:
These two output values are useful for dynamically allocating the memory necessary to retrieve the quadrilateral mesh with get_mesh().

bool CMLSurfMapper::get_mesh ( int  num_points_out,
double *const   points,
int  num_quads,
int *const   quads 
)

Retrieve the generated quadrilateral mesh.

Parameters:
num_points_out The number of points to retrieve. This should be the same number returned by generate_mesh().
points An array of points in the generated mesh (array size = 3 * num_points_out.)
The first three array values are the x, y and z coordinates of the first point. The next three are for the second point, then the third, etc.
num_quads The number of quadrilaterals to retrieve. This should be the same number returned by generate_mesh().
quads An array defining the connectivity of the generated mesh (array size = 4 * num_quads.)
The first four array values are the indices to the points array of the first quadrilateral's corner points. The second four describes the second quadrilateral, then the third, etc. The four indices of a quadrilateral are entered in a counter-clockwise direction around the face when viewed from a positive distance along the quadrilateral's normal. Indices range from 0 to num_points_out - 1 since the points array is zero-based.
Returns:
true if successful, false otherwise

virtual CML::OutputMsg CMLSurfMapper::get_msg_level (  )  const [virtual]

Get the value of the message level flag.

Returns:
The current message level flag.
See also:
set_msg_level()

Implements CMLMesher.

bool CMLSurfMapper::get_param_space (  ) 

Get the value of the parameter-space flag.

Returns:
true if parameter-space flag is set.
See also:
set_param_space()

int CMLSurfMapper::get_points_buf ( int  buf_size,
double *const   points,
int  start_index = 0 
)

Retrieve the generated points one buffer at a time.

Parameters:
buf_size The length of the points array.
points The output buffer for points. A maximum of buf_size/3 points will be copied to this buffer.
start_index The index of the first output point.
Returns:
The number of points returned in points buffer. Returns zero if start_index is greater than the number of points in the array.
Note:
To return all points, begin with start_index = 0 and increment it by the return value until the return value is zero.

int CMLSurfMapper::get_quads_buf ( int  buf_size,
int *const   quads,
int  start_index = 0 
)

Retrieve the generated quadrilaterals one buffer at a time.

Parameters:
buf_size The length of the quads buffer array
quads The output buffer for quadrilaterals. A maximum of buf_size/4 quadrilaterals will be copied to this buffer.
start_index The index of the first output quadrilateral.
Returns:
The number of quadrilaterals returned in quads buffer. Returns zero if start_index is greater than the number of quadrilaterals in the array.
Note:
To return all quadrilaterals, begin with start_index = 0 and increment it by the return value until the return value is zero.

virtual void CMLSurfMapper::open_log_file ( const char *  filename,
bool  append = false 
) [virtual]

Open a log file to record algorithm output.

Parameters:
filename The log file name
append Appends to the file filename if it exists
See also:
close_log_file()

Implements CMLMesher.

bool CMLSurfMapper::set_boundary_mesh ( int  num_points_i,
int  num_points_j,
double *const   points,
int *const   point_ids = NULL 
)

Supply the surface mesh describing the surface boundary.

Parameters:
num_points_i The number of points that make up the first side of the four sides in the boundary. The 3rd side has the same number of points.
num_points_j The number of points that make up the second side of the four sides in the boundary. The 4th side has the same number of points.
points An array of points (array size = 3 * num_points_in.)
The first three array values are the x, y and z coordinates of the first point. The next three are for the second point, then the third, etc. The number of points is 2*[(num_points_i-1)+(num_points_j-1)]. The points are ordered counter-clockwise around the boundary when viewed from a positive distance along the surface normal..
point_ids An optional array whose values are the user's identifiers for the points (array size = num_points_in.)
Messages generated by the mapper use this array to translate from internal point identifiers to user identifiers.
Returns:
true if successful, false otherwise.

virtual void CMLSurfMapper::set_message_handler ( CubitMessageHandler *  h  )  [virtual]

Use an alternate output message handler.

Parameters:
h A pointer to a message handler derived from CubitMessageHandler.

Implements CMLMesher.

virtual void CMLSurfMapper::set_msg_level ( CML::OutputMsg  level  )  [virtual]

Set the value of the message level flag.

Parameters:
level The value of the message level is an enumerated constant. The default value is CML::STANDARD and generates minimal output. A value of CML::VERBOSE generates more output, and a value of CML::DEBUG generates output helpful to developers. A value of CML::NONE causes the mesher to suppress all output.
See also:
get_msg_level()

Implements CMLMesher.

void CMLSurfMapper::set_param_space ( bool  value  ) 

Set the parameter-space flag.

Mesh generations will be performed in parameter space if the parameter-space flag is set. Otherwise, the algorithm uses cartesian space.

Parameters:
value true to use parameter space and false to use cartesian space.
See also:
get_param_space()

virtual void CMLSurfMapper::set_progress_handler ( CMLProgress *  h  )  [virtual]

Use an alternate progress handler.

Parameters:
h A pointer to a progress hander derived from CMLProgress.

Implements CMLMesher.

virtual void CMLSurfMapper::set_sizing_function ( CML::SizingType  type,
double  size1 = -1.0,
double  size2 = -1.0 
) [virtual]

Set a sizing function and its parameters.

Parameters:
type The enum of sizing function for the triangle mesher or paver.
size1 The constant size for CONSTANT_SIZING function and the minimum size for all others.
size2 The maximum size for all sizing functions.

Implements CMLMesher.


The documentation for this class was generated from the following file:

CAMAL 5.2-0 documentation created on 1 Jun 2010
Comments to csimsoft.com