107 lines
2.5 KiB
C++
107 lines
2.5 KiB
C++
/*
|
|
//paragraph [1] Title: [{\Large \bf \begin{center}] [\end{center}}]
|
|
//paragraph [10] Footnote: [{\footnote{] [}}]
|
|
//[TOC] [\tableofcontents]
|
|
//[NP] [\newpage]
|
|
//[ue] [\"u]
|
|
//[e] [\'e]
|
|
//[lt] [\verb+<+]
|
|
//[gt] [\verb+>+]
|
|
|
|
----
|
|
SECONDO 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 SECONDO; if not, write to the Free Software
|
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
----
|
|
|
|
[1] 01590 Fachpraktikum "Erweiterbare Datenbanksysteme"
|
|
|
|
[1] WS 2014 / 2015
|
|
|
|
Jens Breit, Joachim Dechow, Daniel Fuchs, Simon Jacobi, G[ue]nther Milosits,
|
|
Daijun Nagamine, Hans-Joachim Klauke.
|
|
|
|
Betreuer: Dr. Thomas Behr, Fabio Vald[e]s
|
|
|
|
|
|
[1] Implementation of a Spatial3D algebra: SetOps
|
|
|
|
[TOC]
|
|
|
|
[NP]
|
|
|
|
1 Includes and Defines
|
|
|
|
*/
|
|
|
|
#ifndef _SPATIAL3DSETOPS_H
|
|
#define _SPATIAL3DSETOPS_H
|
|
|
|
#include "Spatial3D.h"
|
|
/*
|
|
1 Declarations
|
|
|
|
1.1 forward declaration of Operator
|
|
|
|
Will be included from "Operator.h" in .cpp
|
|
|
|
*/
|
|
class Operator;
|
|
|
|
namespace spatial3DSetOps {
|
|
/*
|
|
1.1 enum set\_operation
|
|
|
|
Used to select the desired set operation in performSetOperation.
|
|
|
|
*/
|
|
|
|
enum set_operation {
|
|
set_union = 1,
|
|
set_intersection,
|
|
set_minus
|
|
};
|
|
|
|
/*
|
|
1.1 performSetOperation for surface3d
|
|
|
|
performs the set operation as specified by set\_operation
|
|
on first and second surface3d objects.
|
|
res must be initialized, but bulk load must not be enabled.
|
|
Contents of res will be deleted.
|
|
|
|
*/
|
|
void performSetOperation (const set_operation operation,
|
|
const Surface3d& first,
|
|
const Surface3d& second,
|
|
Surface3d& res);
|
|
/*
|
|
1.1 performSetOperation for volume3d
|
|
|
|
performs the set operation as specified by set\_operation
|
|
on first and second volume3d objects.
|
|
res must be initialized, but bulk load must not be enabled.
|
|
Contents of res will be deleted.
|
|
|
|
*/
|
|
void performSetOperation (const set_operation operation,
|
|
const Volume3d& first,
|
|
const Volume3d& second,
|
|
Volume3d& res);
|
|
/*
|
|
1.1 Operator pointers
|
|
|
|
Provide Pointers to the Operations as required to include in Algebra.
|
|
|
|
*/
|
|
Operator* getUnionPtr();
|
|
Operator* getIntersectionPtr();
|
|
Operator* getMinusPtr();
|
|
} //namespace spatial3DSTLfileops
|
|
|
|
#endif |