Class EdgeLoopRemesher
This is a custom Remesher that only affects the edges along an EdgeLoop.
The edges are only split and collapsed, flipping is not permitted.
The loop vertices are smoothed along the loop, ie using curve laplacian
rather than one-ring laplacian.
[TODO] avoid rebuild_edge_list(). requires handling various cases below...
[TODO] Precompute() seems overly expensive...?
[TODO] local-smoothing impl is not very efficient. Should not be necessary to
rebuild nbrhood each time if we are not changing it.
Inheritance
EdgeLoopRemesher
Namespace: g3
Assembly: cs.temp.dll.dll
Syntax
public class EdgeLoopRemesher : Remesher
Constructors
EdgeLoopRemesher(DMesh3, EdgeLoop)
Declaration
public EdgeLoopRemesher(DMesh3 m, EdgeLoop loop)
Parameters
Fields
Declaration
public EdgeLoop InputLoop
Field Value
LocalSmoothingRings
Can optionally include N one-rings around the loop in
the smoothing/projection pass. This will produce cleaner results.
Declaration
public int LocalSmoothingRings
Field Value
OutputLoop
Declaration
public EdgeLoop OutputLoop
Field Value
Methods
begin_smooth()
Declaration
protected override void begin_smooth()
Overrides
end_pass()
Declaration
protected override void end_pass()
Overrides
next_edge(Int32, out Boolean)
Declaration
protected override int next_edge(int cur_eid, out bool bDone)
Parameters
Returns
Overrides
OnEdgeCollapse(Int32, Int32, Int32, DMesh3.EdgeCollapseInfo)
Declaration
protected override void OnEdgeCollapse(int edgeID, int va, int vb, DMesh3.EdgeCollapseInfo collapseInfo)
Parameters
Overrides
OnEdgeSplit(Int32, Int32, Int32, DMesh3.EdgeSplitInfo)
Declaration
protected override void OnEdgeSplit(int edgeID, int va, int vb, DMesh3.EdgeSplitInfo splitInfo)
Parameters
Overrides
Precompute()
Declaration
public override void Precompute()
Overrides
project_vertices()
Declaration
protected override IEnumerable<int> project_vertices()
Returns
Overrides
smooth_vertices()
Declaration
protected override IEnumerable<int> smooth_vertices()
Returns
Overrides
start_edges()
Declaration
protected override int start_edges()
Returns
Overrides
UpdateLoop(EdgeLoop)
Declaration
public void UpdateLoop(EdgeLoop loop)
Parameters