Rhino C++ API
8.10
|
#include <opennurbs_topology.h>
Public Types | |
enum | : unsigned int { Damaged = 0x80000000U } |
enum | EdgeAttributes : unsigned int { Open = 1, Closed = 2, ZeroLength = 4, NonzeroLength = 8, Wire = 16, Boundary = 32, Interior = 64, Nonmanifold = 128, InteriorOriented = 256, InteriorNotOriented = 512, InteriorSmooth = 1024, InteriorCrease = 2048, InteriorTwoFaced = 4096, InteriorSeam = 8192, InteriorSlit = 16384, InteriorSharp = 32768, Mask = 0xFFFF } |
Static Public Member Functions | |
static bool | EdgeIsEligible (unsigned int edge_attributes_filter, const class ON_SubDEdge *edge) |
Inspects edge attributes to determine if the edge is has the attributes specified by the edge_attributes_filter. More... | |
static bool | EdgeIsEligible (unsigned int edge_attributes_filter, unsigned int edge_attributes) |
static bool | HasBoundary (unsigned int aggregate_edge_component_attributes) |
Inspects aggregate edge demographics to determine if there is a boundary edge. More... | |
static bool | IsManifold (unsigned int aggregate_edge_component_attributes) |
Inspects aggregate edge demographics to determine if the object is a manifold, possibly with boundary. Face orientation is ignored. More... | |
static bool | IsNotManifold (unsigned int aggregate_edge_component_attributes) |
Inspects aggregate edge demographics to determine if the object is a not manifold. More... | |
static bool | IsNotOriented (unsigned int aggregate_edge_component_attributes) |
Inspects aggregate edge demographics to determine if the faces have a compatible orientations. More... | |
static bool | IsOriented (unsigned int aggregate_edge_component_attributes) |
Inspects aggregate edge demographics to determine if the faces have a compatible orientations. More... | |
static bool | IsSolid (unsigned int aggregate_edge_component_attributes) |
Inspects aggregate edge demographics to determine if every edge has exactly two faces and all the faces have a compatible orientations. More... | |
Copyright (c) 1993-2022 Robert McNeel & Associates. All rights reserved. OpenNURBS, Rhinoceros, and Rhino3D are registered trademarks of Robert McNeel & Associates.
THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY. ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR PURPOSE AND OF MERCHANTABILITY ARE HEREBY DISCLAIMED.
For complete openNURBS copyright information see http://www.opennurbs.org.
anonymous enum : unsigned int |
enum ON_ComponentAttributes::EdgeAttributes : unsigned int |
ON_EdgeAttributeFlags are used to report attributes of single edge objects, like ON_SubDEdge and ON_BrepEdge, and aggregate edge demographics in objects with topology like ON_SubD, ON_Mesh and ON_Brep.
Enumerator | |
---|---|
Open | summary> The Open bit is set when an edge has distinct start and end vertices. Open and Closed are mutually exclusive edge attributes. Note that an open edge can have zero length when two distinct vertices have identical locations and the edge's geometry is a zero length curve. /summary> summary> The Closed bit is set when an edge begins and ends at the same vertex. Open and Closed are mutually exclusive edge attributes. Note that a closed edge can have zero length or nonzero length. /summary> |
Closed | summary> The ZeroLength edge has zero length. It can be open or closed. ZeroLength and NonzeroLength are mutually exclusive edge attributes. /summary> |
ZeroLength | summary> The NonzeroLength edge has non zero length. It can be open or closed. ZeroLength and NonzeroLength are mutually exclusive edge attributes. /summary> |
NonzeroLength | summary> The Wire edge has no faces. Wire, Boundary, Interior, and Nonmanifold are mutually exclusive edge attributes. /summary> |
Wire | summary> The Boundary edge has one face. Wire, Boundary, Interior, and Nonmanifold are mutually exclusive edge attributes. /summary> |
Boundary | summary> The Interior edge has two faces. Wire, Boundary, Interior, and Nonmanifold are mutually exclusive edge attributes. /summary> |
Interior | summary> The Nonmanifold edge has three or more faces. Wire, Boundary, Interior, and Nonmanifold are mutually exclusive edge attributes. /summary> |
Nonmanifold | summary> The InteriorOriented edge has two faces with compatible face orientations. InteriorOriented and InteriorNotOriented are mutually exclusive interior edge attributes. /summary> |
InteriorOriented | summary> The InteriorNotOriented edge has two faces with opposite face orientations. InteriorOriented and InteriorNotOriented are mutually exclusive interior edge attributes. /summary> |
InteriorNotOriented | summary> The InteriorSmooth edge has two faces with a guaranteed surface tangent continuity. InteriorSmooth and InteriorCrease are mutually exclusive interior edge attributes. /summary> |
InteriorSmooth | summary> The InteriorCrease edge has two faces with a possible surface tangent discontinuity InteriorSmooth and InteriorCrease are mutually exclusive interior edge attributes. /summary> |
InteriorCrease | summary> The InteriorTwoFaced edge has two distinct faces. InteriorTwoFaced, InteriorSeam, and InteriorSlit are mutually exclusive interior edge attributes. /summary> |
InteriorTwoFaced | summary> The InteriorSeam edge has two faces that are identical and the edge is on the parametric boundary of the face's surface. InteriorTwoFaced, InteriorSeam, and InteriorSlit are mutually exclusive interior edge attributes. /summary> example> Parametric surfaces that are cylinders are an example of a situation where seam edges occur. /example> |
InteriorSeam | summary> The InteriorSlit edge has two faces that are identical and the edges is not a seam. InteriorTwoFaced, InteriorSeam, and InteriorSlit are mutually exclusive interior edge attributes. /summary> |
InteriorSlit | summary> The InteriorSharp edge has two faces with a guaranteed surface tangent continuity. An InteriorSharp edge is an InteriorSmooth edge with added SubD sharpness. /summary> |
InteriorSharp | summary> ON_ComponentAttributes::EdgeAttributes::Mask can be used to isolate EdgeAttributes bits from an unsigned int bit field containing other information. /summary> example> Determine if two unsigned ints have identical ON_ComponentAttributes::EdgeAttributes settings. code> unsigned int combined_flags1 = ...; unsigned int combined_flags2 = ...; unsigned int edge_flags1 = (ON_ComponentAttributes::EdgeAttributes::Mask & combined_flags1); unsigned int edge_flags2 = (ON_ComponentAttributes::EdgeAttributes::Mask & combined_flags2); if ( edge_flags1 == edge_flags1) { ... edges flags are identical ... } /code> /example> |
Mask |
|
static |
Inspects edge attributes to determine if the edge is has the attributes specified by the edge_attributes_filter.
|
static |
|
static |
Inspects aggregate edge demographics to determine if there is a boundary edge.
aggregate_edge_component_attributes | Value made by bitwise or of ON_ComponentAttributes::EdgeAttributes values for every edge in the object. |
|
static |
Inspects aggregate edge demographics to determine if the object is a manifold, possibly with boundary. Face orientation is ignored.
aggregate_edge_component_attributes | Value made by bitwise or of ON_ComponentAttributes::EdgeAttributes values for every edge in the object. |
|
static |
Inspects aggregate edge demographics to determine if the object is a not manifold.
aggregate_edge_component_attributes | Value made by bitwise or of ON_ComponentAttributes::EdgeAttributes values for every edge in the object. |
|
static |
Inspects aggregate edge demographics to determine if the faces have a compatible orientations.
aggregate_edge_component_attributes | Value made by bitwise or of ON_ComponentAttributes::EdgeAttributes values for every edge in the object. |
|
static |
Inspects aggregate edge demographics to determine if the faces have a compatible orientations.
aggregate_edge_demographics | Value made by bitwise or of ON_ComponentAttributes::EdgeAttributes values for every edge in the object. |
|
static |
Inspects aggregate edge demographics to determine if every edge has exactly two faces and all the faces have a compatible orientations.
This sample shows how to determine if an ON_SubD is a solid.
aggregate_edge_component_attributes | Value made by bitwise or of ON_ComponentAttributes::EdgeAttributes values for every edge in the object. |