Rhino C++ API
7.26
|
#include <opennurbs_mesh.h>
Public Types | |
enum | : unsigned int { UnsetDensity = 0, MinimumUserInterfaceDensity = 1, MaximumUserInterfaceDensity = 5, MinimumAdaptiveDensity = 1, MinimumDensity = 0, ExtraCoarseDensity = 1, CoarseDensity = 2, MediumDensity = 3, FineDensity = 4, DefaultDensity = 4, ExtraFineDensity = 5, MaximumDensity = 6 } |
enum | : unsigned int { AdaptiveDisplayMeshQuadMaximum = 512000 } |
enum | Context : unsigned char { Context::Unknown = 0, Context::SubDToMesh = 1, Context::SubDToNURBS = 2 } |
Static Public Member Functions | |
static unsigned int | AbsoluteDisplayDensityFromSubD (unsigned adaptive_subd_display_density, const class ON_SubD &subd) |
static unsigned int | AbsoluteDisplayDensityFromSubDFaceCount (unsigned adaptive_subd_display_density, unsigned subd_face_count) |
static const ON_SubDDisplayParameters | CreateFromAbsoluteDisplayDensity (unsigned int absolute_subd_display_density) |
static const ON_SubDDisplayParameters | CreateFromDisplayDensity (unsigned int adaptive_subd_display_density) |
static const ON_SubDDisplayParameters | CreateFromMeshDensity (double normalized_mesh_density) |
static const ON_SubDDisplayParameters | DecodeFromUnsignedChar (unsigned char encoded_parameters) |
Static Public Attributes | |
static const ON_SubDDisplayParameters | Coarse |
static const ON_SubDDisplayParameters | Default |
static const ON_SubDDisplayParameters | Empty |
static const ON_SubDDisplayParameters | ExtraCoarse |
static const ON_SubDDisplayParameters | ExtraFine |
static const ON_SubDDisplayParameters | Fine |
static const ON_SubDDisplayParameters | Medium |
A collection of parameters that are passed to functions that calculate a various representations of ON_SubD objects.
anonymous enum : unsigned int |
anonymous enum : unsigned int |
|
strong |
Enumerator | |
---|---|
Unknown | summary> Unknown, unspecified, or unset context. This is typical. /summary> summary> These parameters are being used to generate a quad mesh approximations of an ON_SubD. Low level meshing code copies input paramters and specifies this context when appropriate. /summary> |
SubDToMesh | summary> These parameters are being used to generate NURBS surface approximations of an ON_SubD. Low level conversion to NURB code copies input paramters and specifies this context when appropriate. /summary> |
SubDToNURBS |
|
default |
|
default |
|
default |
|
static |
Parameters: adaptive_subd_display_density - [in] A value <= ON_SubDDisplayParameters::MaximumDensity. When in doubt, pass ON_SubDDisplayParameters::DefaultDensity. Invalid input values are treated as ON_SubDDisplayParameters::DefaultDensity. subd - [in] In the cases when the subd in question is not available, like user interface code that applies in general and to unknown SubDs, pass ON_SubD::Empty. Returns: The absolute SubD display density for subd. The absolute SubD display density is <= adaptive_subd_display_density and <= ON_SubDDisplayParameters::MaximumDensity.
|
static |
Parameters: adaptive_subd_display_density - [in] A value <= ON_SubDDisplayParameters::MaximumDensity. When in doubt, pass ON_SubDDisplayParameters::DefaultDensity. Invalid input values are treated as ON_SubDDisplayParameters::DefaultDensity. subd_face_count - [in] Number of SubD faces. When subd_face_count = 0, adaptive_subd_display_density is returned. Returns: The absolute SubD display density for SubD with subd_face_count faces. The absolute SubD display density is <= adaptive_subd_display_density and <= ON_SubDDisplayParameters::MaximumDensity.
ON_SubDDisplayParameters::Context ON_SubDDisplayParameters::ContextForExperts | ( | ) | const |
Description: Low level mesh creation and ON_SubD to NURBS conversion code occasional looks at the context. Typically it is set in a local copy and no user of the top level ON_SubD SDK needs to be concerned about the context setting. This setting is not saved in 3dm archives and is ingnored by all compare functions.
|
static |
Description: Use of absolute display density is strongly discouraged. SubDs can have a single face or millions of faces. Adaptive display meshing produces more desirable results in almost all cases. Parameters: absolute_subd_display_density - [in] A value <= ON_SubDDisplayParameters::MaximumDensity. When in doubt, pass ON_SubDDisplayParameters::DefaultDensity. Returns: A ON_SubDDisplayParameters that treats the display density value as a constant for all SubDs.
|
static |
Description: In most applications, the caller sets the mesh_density and leaves the other parameters set to the default values. Parameters: adaptive_subd_display_density - [in] A value <= ON_SubDDisplayParameters::MaximumDensity. When in doubt, pass ON_SubDDisplayParameters::DefaultDensity. Values < ON_SubDDisplayParameters::MinimumAdaptiveDensity are treated as N_SubDDisplayParameters::MinimumAdaptiveDensity. All other invalid input values are treated as ON_SubDDisplayParameters::DefaultDensity. Returns: A ON_SubDDisplayParameters with adaptive SubD display density.
|
static |
Description: This function creates ON_SubDDisplayParameters from a user interface "slider" like Rhino's simple mesh controls. Parameters: normalized_mesh_density - [in] A double between 0.0 and 1.0
The table below shows the correpondence between normalized_density and subd display density.
Mesh density percentage / normalized_mesh_density / subd display density 0% -> [0.0, ON_ZERO_TOLERANCE] -> 1 = adaptive MinimumUserInterfaceDensity 0% to 19% -> (ON_ZERO_TOLERANCE, 0.20) -> 2 = adaptive CoarseDensity 20% to 34% -> [0.20, 0.35) -> 3 = adaptive MediumDensity 35% to 75% -> [0.35, 0.75] -> 4 = adaptive FineDensity 76% to 99% -> (0.75, 1 - ON_ZERO_TOLERANCE) -> 5 = adaptive ExtraFineDensity 100% -> [1 - ON_ZERO_TOLERANCE, 1.0] -> 5 = adaptive MaximumUserInterfaceDensity
Invalid input -> adaptive DefaultDensity;
Returns: A valid ON_SubDDisplayParameters with the specified subd display denstity.
|
static |
unsigned int ON_SubDDisplayParameters::DisplayDensity | ( | ) | const |
unsigned int ON_SubDDisplayParameters::DisplayDensity | ( | const class ON_SubD & | subd | ) | const |
Parameters: subd - [in] Used when the display density is adaptive and subd.FaceCount() > 0. Ignored when the display density is absolute or subd.FaceCount() = 0.
Returns: The absolute display density to use when creating display meshes for subd. When adaptive reduction is enabled, subd.FaceCount() is used to determine the appropriate display density.
Remarks: The chart below shows the relationship between the returned value and the number of display mesh quads a generated by 1 SubD quad.
return display mesh value quads 0 1 = 1x1 1 4 = 2x2 2 16 = 4x4 3 64 = 8x8
4 128 = 16x16 5 1,024 = 32x32 6 4,096 = 64x64
bool ON_SubDDisplayParameters::DisplayDensityIsAbsolute | ( | ) | const |
Returns: True if the SubD display density setting is absolute. Remarks: this->DensityIsAdaptive() and this->DensityIsAbsolute() always return opposite bool values. Use the one that makes your code easiest to read and understand.
bool ON_SubDDisplayParameters::DisplayDensityIsAdaptive | ( | ) | const |
Returns: True if the SubD display density setting is adaptive and approximate display mesh quad count is capped at ON_SubDDisplayParameters::AdaptiveDisplayMeshQuadMaximum. Remarks: this->DensityIsAdaptive() and this->DensityIsAbsolute() always return opposite bool values. Use the one that makes your code easiest to read and understand.
void ON_SubDDisplayParameters::Dump | ( | class ON_TextLog & | ) | const |
unsigned char ON_SubDDisplayParameters::EncodeAsUnsignedChar | ( | ) | const |
ON_SubDComponentLocation ON_SubDDisplayParameters::MeshLocation | ( | ) | const |
Description: The MeshLocation() property determines if the mesh is on the SubD's control net or the SubD's surface.
|
default |
ON_ProgressReporter* ON_SubDDisplayParameters::ProgressReporter | ( | ) | const |
const ON_Interval ON_SubDDisplayParameters::ProgressReporterInterval | ( | ) | const |
bool ON_SubDDisplayParameters::Read | ( | class ON_BinaryArchive & | archive | ) |
void ON_SubDDisplayParameters::SetAbsoluteDisplayDensity | ( | unsigned int | absolute_display_density | ) |
Description: In almast all cases, you are better off using SetAdaptiveDisplayDensity(). Parameters: absolute_display_density - [in] absolute_display_density <= ON_SubDDisplayParameters::MaximumDensity Remarks: The use of this setting
void ON_SubDDisplayParameters::SetAdaptiveDisplayDensity | ( | unsigned int | adaptive_display_density | ) |
Description: Set an adaptive SubD display density that caps display mesh quad count at ON_SubDDisplayParameters::AdaptiveDisplayMeshQuadMaximum. Parameters: adaptive_display_density - [in] adaptive_display_density <= ON_SubDDisplayParameters::MaximumDensity Values <= ON_SubDDisplayParameters::MinimumAdaptiveDensity will never be adaptively reduced during display mesh creation. Remarks: The use of this setting
void ON_SubDDisplayParameters::SetContextForExperts | ( | ON_SubDDisplayParameters::Context | context | ) |
void ON_SubDDisplayParameters::SetDisplayDensity | ( | unsigned int | adaptive_display_density | ) |
void ON_SubDDisplayParameters::SetMeshLocation | ( | ON_SubDComponentLocation | mesh_location | ) |
Description: The MeshLocation() property determines if the mesh is on the SubD's control net or the SubD's surface. Parameters: mesh_location - [in]
void ON_SubDDisplayParameters::SetProgressReporter | ( | ON_ProgressReporter * | progress_reporter, |
ON_Interval | progress_reporter_interval | ||
) |
void ON_SubDDisplayParameters::SetTerminator | ( | ON_Terminator * | terminator | ) |
ON_Terminator* ON_SubDDisplayParameters::Terminator | ( | ) | const |
TODO - split this class into two - what's above and one derived from that with what's below.
bool ON_SubDDisplayParameters::Write | ( | class ON_BinaryArchive & | archive | ) | const |
|
static |
Parameters for a course limit surface display mesh. SubD display density = adaptive ON_SubDDisplayParameters::CoarseDensity
|
static |
Parameters for the default limit surface display mesh. SubD display density = adaptive ON_SubDDisplayParameters::DefaultDensity
|
static |
|
static |
Parameters for a course limit surface display mesh. SubD display density = adaptive ON_SubDDisplayParameters::ExtraCoarseDensity
|
static |
Parameters for an extra fine limit surface display mesh. SubD display density = adaptive ON_SubDDisplayParameters::ExtraFineDensity
|
static |
Parameters for the default limit surface display mesh. Produces and acceptable rendering of the SubD Rhino logo. SubD display density = adaptive ON_SubDDisplayParameters::FineDensity (default)
|
static |
Parameters for a medium limit surface display mesh. SubD display density = adaptive ON_SubDDisplayParameters::MediumDensity Too crude for a quality rendering of the SubD Rhino logo.