Files
secondo/Algebras/Spatial3D/Spatial3DSetOps.h

107 lines
2.5 KiB
C
Raw Normal View History

2026-01-23 17:03:45 +08:00
/*
//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