Rhino C++ API
7.18

#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, 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) 19932015 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 distict 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> 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. 