Synopsis

PDX_MSGT gcr_Cylinder2(long option, MDA_PTR orig_db_ptr, MTH_3DPNT center, MTH_3DVEC axis_vec, MTH_3DVEC ref_vec, double radius, double top_parm, int gdx_model, MDA_PTR *gdx_cylinder_ptr)

Purpose

Create a GDX Cylinder.

Description

Given a point on the cylinder axis, a cylinder axis vector, the radius of the cylinder, and the U parametrization reference vector, create a GDX cylinder entity.

The top_parm field in the GDX Cylinder is for internal use. If top_parm is greater than 0.0, then that value is used as the bound. Otherwise, the cylinder is considered to be unbounded.

The radius must be > the current GDX ZERO_TOL.

If ref_vec is not NULL, the corresponding magnitude of the given vector must be > the current GDX NORMAL_MAG_TOL. If the given vector is not perpendicular to the cylinder axis vector within the current GDX ANGLE_TOL, the closest perpendicular vector is used.

If the ref_vec is NULL, an arbitrary ref_vec (perpendicular to the given axis_vec) will be determined and stored in the entity.

If the magnitude of the axis_vec cylinder axis vector is less than the current GDX NORMAL_MAG_TOL, the Z cylinder axis vector is assumed.

\fBRules\fR .IP • 3 radius > 0.0 .IP • 3 top_parm > 0.0 (Cylinder is bounded in v direction) .IP • 3 top_parm < 0.0 (Cylinder is infinite in v direction) .IP • 3 ref_vec magnitude > 0.0 (if ref_vec not NULL) .LP

Input

option

GCR_NOVALIDATE

No validation will occur on the input data.

orig_db_ptr

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

center

The cylinder point

axis_vec

The center axis of the cylinder

ref_vec

The U parametric axis reference vector, or NULL

radius

The radius of the cylinder

top_parm

The bound of the cylinders height (v). Positive value means cylinder is bounded, Negative value means cylinder is to be unbounded.

gdx_model

The GDX model for entity creation

Output

gdx_cylinder_ptr

Entity database pointer of the GDX Cylinder

Tolerances

      NORMAL_MAG_TOL
      ANGLE_TOL
      ZERO_TOL
      .fi

Return

      GCR_NOERR
      GCR_CYLINDER_RADIUS
      GCR_CYLINDER_U_REF_VECTOR
      Low level error return
      .fi