MeVisLab Toolbox Reference
CSOValidator.h
Go to the documentation of this file.
1/*************************************************************************************
2**
3** Copyright 2015, MeVis Medical Solutions AG
4**
5** The user may use this file in accordance with the license agreement provided with
6** the Software or, alternatively, in accordance with the terms contained in a
7** written agreement between the user and MeVis Medical Solutions AG.
8**
9** For further information use the contact form at https://www.mevislab.de/contact
10**
11**************************************************************************************/
12
13
15
16#pragma once
17
18#include "MLCSOIncludes.h"
19
20ML_START_NAMESPACE
21
22class CSO;
23class CSOGroup;
24class CSOList;
25class CSOPredicate;
26
28{
29public:
30
34 CSOValidator(const std::vector<const CSO*> &csos);
35 CSOValidator(const CSOList &csoList);
36 CSOValidator(const CSOGroup &csoGroup);
37
41 bool areAllCSOsClosed(CSOIdVector &violatingCSOIDs);
42
46 bool areAllCSOsOpen(CSOIdVector &violatingCSOIDs);
47
52
56 bool areAllCSOsInPlane(CSOIdVector &violatingCSOIDs);
57
62 bool areAllCSOsInSamePlane(CSOIdVector &violatingCSOIDs);
63
68 bool areAllCSOsParallel(double epsilon);
69 bool areAllCSOsParallel(double epsilon, CSOIdVector &violatingCSOIDs);
70
78 bool areAllCSOsParallelToPlane(const Vector3 &planeNormal, double epsilon);
79 bool areAllCSOsParallelToPlane(const Vector3 &planeNormal, double epsilon, CSOIdVector &violatingCSOIDs);
80
84 bool areAllCSOsSatisfyingPredicate(const CSOPredicate &pred, CSOIdVector &violatingCSOIDs);
85
87 bool hasAtMostCSOs(size_t maxNumCSOs);
88
90 bool hasAtLeastCSOs(size_t minNumCSOs);
91
94 bool hasAtMostCSOGroups(size_t maxNumGroups);
95
98 bool hasAtLeastCSOGroups(size_t minNumGroups);
99
100private:
101 const CSO* _getFirstCSO();
102 std::vector<const CSO*> _getAllCSOs();
103 std::vector<const CSO*> _getAllCSOsFromCSOGroup();
104 std::vector<const CSO*> _getAllCSOsFromCSOList();
105
106 const std::vector<const CSO*> *_csos;
107 const CSOGroup *_csoGroup;
108 const CSOList *_csoList;
109};
110
111ML_END_NAMESPACE
std::vector< unsigned int > CSOIdVector
Defines a vector to hold CSO and CSOGroup IDs.
#define MLCSO_EXPORT
Defines export symbols for classes, so they can be used in other DLLs.
Definition MLCSOSystem.h:23
bool hasAtLeastCSOGroups(size_t minNumGroups)
bool areAllCSOsParallelToPlane(const Vector3 &planeNormal, double epsilon)
bool areAllCSOsSatisfyingPredicate(const CSOPredicate &pred)
bool areAllCSOsInPlane(CSOIdVector &violatingCSOIDs)
bool hasAtMostCSOGroups(size_t maxNumGroups)
bool areAllCSOsNotSelfIntersecting(CSOIdVector &violatingCSOIDs)
CSOValidator(const CSOList &csoList)
bool areAllCSOsClosed(CSOIdVector &violatingCSOIDs)
bool areAllCSOsParallel(double epsilon)
bool areAllCSOsInPlane()
bool areAllCSOsClosed()
bool areAllCSOsParallel(double epsilon, CSOIdVector &violatingCSOIDs)
CSOValidator(const CSOGroup &csoGroup)
bool areAllCSOsParallelToPlane(const Vector3 &planeNormal, double epsilon, CSOIdVector &violatingCSOIDs)
bool areAllCSOsInSamePlane(CSOIdVector &violatingCSOIDs)
CSOValidator(const std::vector< const CSO * > &csos)
bool hasAtLeastCSOs(size_t minNumCSOs)
Returns whether passed CSO collection has at least 'minNumCSOs' CSOs.
bool hasAtMostCSOs(size_t maxNumCSOs)
Returns whether passed CSO collection has at most 'maxNumCSOs' CSOs.
bool areAllCSOsNotSelfIntersecting()
bool areAllCSOsInSamePlane()
bool areAllCSOsSatisfyingPredicate(const CSOPredicate &pred, CSOIdVector &violatingCSOIDs)
bool areAllCSOsOpen(CSOIdVector &violatingCSOIDs)
Definition CSO.h:44
Tvec3< MLdouble > Vector3
A vector with three components of type double.
Definition mlVector3.h:286