Exemple #1
0
        public static SolutionSpec BuildSolutionByGraph(
            Graph <PointProjectionSolver.ProjectedEdgeInfo, PointProjectionSolver.ProjectedNodeInfo> graph)
        {
            var cycleFinder = new CycleFinder <PointProjectionSolver.ProjectedEdgeInfo, PointProjectionSolver.ProjectedNodeInfo>(
                graph,
                n => n.Data.Projection);

            return(BuildSolutionByCycles(cycleFinder.GetCycles()));
        }
Exemple #2
0
        public static SolutionSpec BuildSolutionByRibbonGraph(Graph <PointProjectionSolver.ProjectedEdgeInfo, PointProjectionSolver.ProjectedNodeInfo> graph)
        {
            var cycleFinder = new CycleFinder <PointProjectionSolver.ProjectedEdgeInfo, PointProjectionSolver.ProjectedNodeInfo>(
                graph,
                n => n.Data.Projection);
            var cycles = cycleFinder.GetCycles();

            var reflectedCycles = CycleReflector.GetUnribbonedCycles(cycles);

            return(SolutionSpecBuilder.BuildSolutionByCycles(reflectedCycles));
        }
Exemple #3
0
 public void DoSomething_WhenSomething()
 {
     var res = GraphExtensons.CreateGraphFromSegmentsArray(new[]
     {
         new Segment(new Vector(0, 0), new Vector(1, 0)),
         new Segment(new Vector(0, 0), new Vector(0, 1)),
         new Segment(new Vector(1, new Rational(1, 3)), new Vector(1, 0)),
         new Segment(new Vector(1, new Rational(1, 3)), new Vector(1, 1)),
         new Segment(new Vector(1, new Rational(1, 3)), new Vector(new Rational(1, 3), 1)),
         new Segment(new Vector(0, 1), new Vector(new Rational(1, 3), 1)),
         new Segment(new Vector(1, 1), new Vector(new Rational(1, 3), 1))
     });
     var cycles = new CycleFinder <Segment, Vector>(res, n => n.Data).GetCycles();
 }