public void AddGeometryBinder(GeometryBinder geometryBinder, double nodeMergeThreshold = 0.001) { GeometryBinders.Add(geometryBinder); if (geometryBinder.StartingPositions == null && geometryBinder.NodeIndices != null) { return; } geometryBinder.NodeIndices = new int[geometryBinder.NodeCount]; for (int i = 0; i < geometryBinder.NodeCount; i++) { bool nodeAlreadyExist = false; for (int j = 0; j < Nodes.Count; j++) { if ((geometryBinder.StartingPositions[i] - Nodes[j].Position).LengthSquared < nodeMergeThreshold * nodeMergeThreshold) { geometryBinder.NodeIndices[i] = j; nodeAlreadyExist = true; break; } } if (!nodeAlreadyExist) { Nodes.Add(new Node(geometryBinder.StartingPositions[i])); geometryBinder.NodeIndices[i] = Nodes.Count - 1; } } }
public static GeometryBinder ChangeColor(GeometryBinder geometryBinder, Color color) { geometryBinder.Color = color.ToSharpDXColor(); return(geometryBinder); }
public static GeometryBinder Show(GeometryBinder geometryBinder, bool show) { geometryBinder.Show = show; return(geometryBinder); }
public List <object> GetGeometries(GeometryBinder geometryBinder) { return(geometryBinder.CreateGeometryObjects(Nodes)); }