Synopsis

PDX_MSGT gcr_Face(long option, MDA_PTR orig_db_ptr, PDX_BOOL surf_sense, MDA_PTR surf_ptr, PDX_BOOL first_is_outer, MDA_COUNT num_of_loops, struct t_gdx_face_loops *loops, int gdx_model, MDA_PTR *gdx_face_ptr)

Purpose

Create a GDX Face.

Description

Given the number of loops, the structures of loop pointers and senses, the pointer to the surface, sense of the surface, and a flag indicating the first boundary is the outer boundary, create a GDX Face. The loop sense flags indicates the senses of the loops with respect to the face, PDX_TRUE means the sense agrees. The surf_sense flag indicates the sense of the surface normal with respect to the face, PDX_TRUE means the surface normal and face normal have the same direction. Loop directions are based on the surface normal after the surf_sense flag is applied (i.e. if surf_sense is PDX_FALSE, the outer loop must be defined clockwise). If the GCR_ADD_EC_FACES option is specified, then the underlying GDX Edge Curves will be automatically updated (via gcr_EdgeCurveAddFace) to include this face in their 'faces' data. This is intended for the case when the underlying GDX Edge Curves were created without 'faces' data. The orig_db_ptr argument should contain the database pointer of the entity that the new entity was created from (usually this should be obtained by the calling routine via mda_GetOrigDbptr) or MDA_NULL_PTR. See the mda_intro man page for more information about predecessor entities.

Input

option

GCR_NOVALIDATE

No validation will occur on the input data.

GCR_ADD_EC_FACES

Underlying GDX Edge Curves will be updated with corresponding face information (see above).

orig_db_ptr

The original entities orig_db_ptr as obtained from the mda_GetOrigDbptr call, or MDA_NULL_PTR

surf_sense

Sense of the surf_ptr normal with respect to the face.

surf_ptr

Pointer to the suface.

first_is_outer

Flag indicating if the first boundary is outer.

num_of_loops

Number of loops that make up the Face, must be > 0.

loops

MDA memory contaings structures of the senses and database pointers of loops that make up the face. Always consumed by this function even on error.

gdx_model

The GDX model for entity creation

Output

gdx_face_ptr

Entity database pointer of the GDX Face

Tolerances

      .fi

Return

      GCR_NOERR
      GCR_INVALID_MODEL
      Low level error return
      .fi