diff -r 1243abd47381 -r e1c9010eb9e8 src/misc/ringFinder.h
--- a/src/misc/ringFinder.h Tue Jul 15 02:54:23 2014 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,98 +0,0 @@
-/*
- * LDForge: LDraw parts authoring CAD
- * Copyright (C) 2013, 2014 Santeri Piippo
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-
-#pragma once
-#include "../main.h"
-
-//
-// Implements a ring finding algorithm. It is passed two radii and it tries to
-// find solutions of rings that would fill the given space.
-//
-// Note: it is not fool-proof and does not always yield a solution.
-//
-class RingFinder
-{
-public:
- // A single component in a solution
- struct Component
- {
- int num;
- double scale;
- };
-
- // A solution whose components fill the desired ring space.
- class Solution
- {
- public:
- inline void addComponent (const Component& a);
- inline const QVector& getComponents() const;
- void scaleComponents (double scale);
- bool isSuperiorTo (const Solution* other) const;
-
- private:
- QVector m_components;
- };
-
- RingFinder();
-
- inline const QVector& allSolutions() const;
- inline const Solution* bestSolution() const;
- bool findRings (double r0, double r1);
-
-private:
- QVector m_solutions;
- const Solution* m_bestSolution;
- int m_stack;
-
- bool findRingsRecursor (double r0, double r1, Solution& currentSolution);
-};
-
-//
-// Gets the components of a solution
-//
-inline const QVector& RingFinder::Solution::getComponents() const
-{
- return m_components;
-}
-
-//
-// Adds a component to a solution
-//
-inline void RingFinder::Solution::addComponent (const Component& a)
-{
- m_components.push_back (a);
-}
-
-//
-// Returns the solution that was considered best. Returns null
-// if there isn't any suitable solution.
-//
-inline const RingFinder::Solution* RingFinder::bestSolution() const
-{
- return m_bestSolution;
-}
-
-//
-// Returns all found solutions.
-//
-inline const QVector& RingFinder::allSolutions() const
-{
- return m_solutions;
-}
-
-extern RingFinder g_RingFinder;