A3DUVParameterizationData Struct Reference

Structure for parameterizing surfaces. More...

Data Fields

A3DBool m_bSwapUV
 
A3DDouble m_dUCoeffA
 
A3DDouble m_dUCoeffB
 
A3DDouble m_dVCoeffA
 
A3DDouble m_dVCoeffB
 
A3DDomainData m_sUVDomain
 
A3DUns16 m_usStructSize
 

Detailed Description

Structure for parameterizing surfaces.

Version
2.0

This structure is used in surface definitions (see Surfaces Module). Its members specify a trimming domain (2-dimensional range) and parameterization settings.

It describes a surface reparameterization regarding the implicit parameterization that corresponds to its canonical form. Here are some important points:

  • Default settings. If reparameterization is unnecessary (the implicit parameterization is used), the m_dUCoeffA and m_dVCoeffA members must be set to 1, the m_dUCoeffB and m_dVCoeffB members must be set to 0, and the m_bSwapUV should be set to false.
  • UV domain. The m_sUVDomain member defines the 2-dimensional range for a surface. Its coordinates are in the final parameterization space. Parts of the object that are outside the bounding box are excluded from the view. The domain's units are specific for the surface type. For example, the units for a cylinder are degrees and linear units (typically millimeters).

Here is the evaluation formula for a given parameterization setting:

if (swap_uv)
{
   implicit_param.u = parameterization_on_u_coeff_a * param.u + parameterization_on_u_coeff_b
   implicit_param.v = parameterization_on_v_coeff_a * param.v + parameterization_on_v_coeff_b
}
else
{
   implicit_param.u = parameterization_on_v_coeff_a * param.v + parameterization_on_v_coeff_b
   implicit_param.v = parameterization_on_u_coeff_a * param.u + parameterization_on_u_coeff_b
}

To ensure that implicit_param.u(min) < implicit_param.v(min) and implicit_param.u(max) < implicit_param.v(max), you must specify parameterization values.

This example shows the settings to reparameterize a cylinder of 25mm height, having an implicit parameterization of 2 PI radian in u and height in v, to a domain of (0,0) and (1,1):

And this example shows the member settings to retain the implicit parameterization (reparameterization is unnecessary):

Field Documentation

A3DUns16 A3DUVParameterizationData::m_usStructSize

Reserved; must be initialized by A3D_INITIALIZE_DATA.

A3DDomainData A3DUVParameterizationData::m_sUVDomain

Definition domain.

A3DBool A3DUVParameterizationData::m_bSwapUV

Need to swap U and V coordinates.

A3DDouble A3DUVParameterizationData::m_dUCoeffA

Coefficient for reparameterization along u vector.

A3DDouble A3DUVParameterizationData::m_dVCoeffA

Coefficient for reparameterization along v vector.

A3DDouble A3DUVParameterizationData::m_dUCoeffB

Coefficient for reparameterization along u vector.

A3DDouble A3DUVParameterizationData::m_dVCoeffB

Coefficient for reparameterization along v vector.