public sealed class SubDEdge : SubDComponent
Single edge of a SubD

Properties

ComponentDirection

public bool ComponentDirection { get; set; }
True when this component is referenced with the reverse of its natural orientation. This is always false for vertices, and for edges and faces obtained directly from the parent SubD; it is only set on components reached through an oriented reference, such as the face on a given side of an oriented edge.
inherited fromSubDComponent

ControlNetLine

#Since v7.0
public Line ControlNetLine { get; }
Line representing the control net end points.

FaceCount

#Since v7.0
public int FaceCount { get; }
Number of faces for this edge.

Id

[CLSCompliant(false)] public uint Id { get; }
Unique id within the parent SubD for this item
inherited fromSubDComponent

IsDamaged

public bool IsDamaged { get; }
Returns true if the SubD component is damaged.
inherited fromSubDComponent

IsDeleted

public bool IsDeleted { get; }
Returns true if the SubD component is deleted.
inherited fromSubDComponent

IsHidden

public bool IsHidden { get; }
Returns true if the SubD component is hidden.
inherited fromSubDComponent

IsHighlighted

public bool IsHighlighted { get; }
Returns true if the SubD component is highlighted.
inherited fromSubDComponent

IsLocked

public bool IsLocked { get; }
Returns true if the SubD component is locked.
inherited fromSubDComponent

IsSelected

public bool IsSelected { get; }
Returns true if the SubD component is selected.
inherited fromSubDComponent

IsSharp

#Since v8.36
public bool IsSharp { get; }
Gets true if this edge is smooth and has a nonzero sharpness. A crease edge is not a sharp edge.

ParentSubD

public SubD ParentSubD { get; }
SubD that this component belongs to
inherited fromSubDComponent

RelativeFaceLeft

#Since v8.36
public SubDFace RelativeFaceLeft { get; }
The face on the left of this edge, with respect to the direction this edge is referenced with. Null for a boundary edge with no face on that side, and for a nonmanifold edge.

RelativeFaceRight

#Since v8.36
public SubDFace RelativeFaceRight { get; }
The face on the right of this edge, with respect to the direction this edge is referenced with.

RelativeVertexFrom

#Since v8.36
public SubDVertex RelativeVertexFrom { get; }
The vertex this edge starts at, taking SubDComponent.ComponentDirection into account. This is VertexFrom for an edge in its natural orientation and VertexTo for a reversed one.

RelativeVertexTo

#Since v8.36
public SubDVertex RelativeVertexTo { get; }
The vertex this edge ends at, taking SubDComponent.ComponentDirection into account.

Sharpness

#Since v8.36
public SubDEdgeSharpness Sharpness { get; set; }
Gets or sets the sharpness of this edge.

The getter reports SubDEdgeSharpness.Crease for a crease edge; use GetSharpness(false) to get SubDEdgeSharpness.Smooth for creases instead.

Remarks: Setting this goes through the parent SubD so that the neighboring edges and vertices are updated too. Assign SubDEdgeSharpness.Smooth to make the edge smooth again.

Tag

#Since v7.0
public SubDEdgeTag Tag { get; set; }
identifies the type of subdivision edge.

VertexFrom

#Since v7.0
public SubDVertex VertexFrom { get; }
Start vertex for this edge.

VertexTo

#Since v7.0
public SubDVertex VertexTo { get; }
End vertex for this edge.

Methods

ClearSavedSubdivisionPoints

#Since v8.36
[ConstOperation] public void ClearSavedSubdivisionPoints(bool clearNeighborhood)
Discards the cached subdivision and surface points for this edge, so they are recomputed on next use.
clearNeighborhood (bool)If true, the cached points of the neighboring components are discarded too. Moving a control net point changes the surface around it, not just at it, so pass true after an edit unless you know only this edge is affected.

ComponentIndex

#Since v8.12
[ConstOperation] public ComponentIndex ComponentIndex()
Gets the component index of this edge.
The component index.

EndSharpness

#Since v8.36
[ConstOperation] public double EndSharpness(int endIndex, bool useCreaseSharpness)
Gets the sharpness of this edge at one of its ends.
endIndex (int)0 for the VertexFrom end, 1 for the VertexTo end.
useCreaseSharpness (bool)If this edge is a crease and useCreaseSharpness is true, then SubDEdgeSharpness.CreaseValue is returned.
The sharpness at that end, or 0.0 if this edge is not sharp.

Equals

public override bool Equals(object obj)
Determines whether an object is a SubDComponent referring to the same component, with the same orientation, in the same SubD.
inherited fromSubDComponent
obj (object)The object to compare with.
Object.Equals

Equals

public bool Equals(SubDComponent other)
Determines whether this component and another refer to the same component, with the same orientation, in the same SubD.
inherited fromSubDComponent
other (SubDComponent)The component to compare with.

FaceAt

#Since v7.0
public SubDFace FaceAt(int index)
Retrieve a SubDFace from this edge.
index (int)

GetHashCode

public override int GetHashCode()
Gets a hash code for this component.
inherited fromSubDComponent

GetSharpness

#Since v8.36
[ConstOperation] public SubDEdgeSharpness GetSharpness()
Gets the sharpness of this edge, reporting SubDEdgeSharpness.Crease for a crease edge.
The sharpness of this edge.

GetSharpness

#Since v8.36
[ConstOperation] public SubDEdgeSharpness GetSharpness(bool useCreaseSharpness)
Gets the sharpness of this edge.
useCreaseSharpness (bool)If this edge is a crease and useCreaseSharpness is true, then SubDEdgeSharpness.Crease is returned. If it is a crease and useCreaseSharpness is false, then SubDEdgeSharpness.Smooth is returned.
The sharpness of a smooth edge, SubDEdgeSharpness.Crease for a crease edge when useCreaseSharpness is true, and SubDEdgeSharpness.Smooth in every other case.

RelativeFaceAt

#Since v8.36
[ConstOperation] public SubDFace RelativeFaceAt(int relativeFaceIndex)
Gets the face on one side of this edge, relative to the direction this edge is referenced with.
relativeFaceIndex (int)0 for the left side, 1 for the right side.
The face, with its SubDComponent.ComponentDirection set so its boundary runs the same way as this edge. Null if there is no such face, or if the edge is nonmanifold.

RelativeVertexAt

#Since v8.36
[ConstOperation] public SubDVertex RelativeVertexAt(int endIndex)
Gets one of this edge's two vertices, relative to the direction this edge is referenced with.
endIndex (int)0 for the start of the edge, 1 for the end.
The vertex, or null if endIndex is out of range.

ReverseComponentDirection

public SubDComponent ReverseComponentDirection()
Flips SubDComponent.ComponentDirection and returns this component, so it can be used inline where an oppositely oriented reference is wanted.
inherited fromSubDComponent
This component.

ToNurbsCurve

#Since v7.0
public NurbsCurve ToNurbsCurve(bool clampEnds)
Get a cubic, uniform, non-rational, NURBS curve that is on the edge's limit curve.
Remarks: If some edges in your SubD are not able to be converted to NURBS, you might need to run SubD.UpdateSurfaceMeshCache(bool).
clampEnds (bool)If true, the end knots are clamped. Otherwise the end knots are(-2,-1,0,...., k1, k1+1, k1+2).
The Nurbs form of this edge.

ToString

public override string ToString()
Returns a string of the form "SubDEdge(+12)", naming the component type, the orientation it is referenced with, and its id.
inherited fromSubDComponent
Object.ToString