A3DUVParameterizationData

Fields

A3DDomainData

m_sUVDomain

A3DBool

m_bSwapUV

A3DDouble

m_dUCoeffA

A3DDouble

m_dVCoeffA

A3DDouble

m_dUCoeffB

A3DDouble

m_dVCoeffB

Detailed Description

struct A3DUVParameterizationData

Structure for parameterizing surfaces.

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

Version

2.0

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):

Public Members

A3DDomainData m_sUVDomain

Definition domain.

A3DBool m_bSwapUV

Need to swap U and V coordinates.

A3DDouble m_dUCoeffA

Coefficient for reparameterization along u vector.

A3DDouble m_dVCoeffA

Coefficient for reparameterization along v vector.

A3DDouble m_dUCoeffB

Coefficient for reparameterization along u vector.

A3DDouble m_dVCoeffB

Coefficient for reparameterization along v vector.