コード例 #1
0
ファイル: Solver.cs プロジェクト: MostafaElAyoubi/DynaShape
        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;
                }
            }
        }
コード例 #2
0
 public static GeometryBinder ChangeColor(GeometryBinder geometryBinder, Color color)
 {
     geometryBinder.Color = color.ToSharpDXColor();
     return(geometryBinder);
 }
コード例 #3
0
ファイル: GeometryBinders.cs プロジェクト: manuPDZ/DynaShape
 public static GeometryBinder Show(GeometryBinder geometryBinder, bool show)
 {
     geometryBinder.Show = show;
     return(geometryBinder);
 }
コード例 #4
0
 public List <object> GetGeometries(GeometryBinder geometryBinder)
 {
     return(geometryBinder.CreateGeometryObjects(Nodes));
 }