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 |
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):
- m_dUCoeffA = 2 PI
- m_dUCoeffB = 0.
- m_dVCoeffA = 25
- m_dVCoeffB = 0.
- m_bSwapUV = false
And this example shows the member settings to retain the implicit parameterization (reparameterization is unnecessary):
- m_dUCoeffA = 1.
- m_dUCoeffB = 0.
- m_dVCoeffA = 1.
- m_dVCoeffB = 0.
- m_bSwapUV = false
Field Documentation
◆ m_sUVDomain
A3DDomainData A3DUVParameterizationData::m_sUVDomain |
Definition domain.
◆ m_bSwapUV
A3DBool A3DUVParameterizationData::m_bSwapUV |
Need to swap U and V coordinates.
◆ m_dUCoeffA
A3DDouble A3DUVParameterizationData::m_dUCoeffA |
Coefficient for reparameterization along u vector.
◆ m_dVCoeffA
A3DDouble A3DUVParameterizationData::m_dVCoeffA |
Coefficient for reparameterization along v vector.
◆ m_dUCoeffB
A3DDouble A3DUVParameterizationData::m_dUCoeffB |
Coefficient for reparameterization along u vector.
◆ m_dVCoeffB
A3DDouble A3DUVParameterizationData::m_dVCoeffB |
Coefficient for reparameterization along v vector.