DGtal  1.3.beta
BoundaryPredicate.h
1 
17 #pragma once
18 
31 #if defined(BoundaryPredicate_RECURSES)
32 #error Recursive header files inclusion detected in BoundaryPredicate.h
33 #else // defined(BoundaryPredicate_RECURSES)
34 
35 #define BoundaryPredicate_RECURSES
36 
37 #if !defined BoundaryPredicate_h
38 
39 #define BoundaryPredicate_h
40 
42 // Inclusions
43 #include <iostream>
44 #include <boost/array.hpp>
45 
46 #include "DGtal/base/Common.h"
47 #include "DGtal/base/ConstAlias.h"
48 #include "DGtal/images/CConstImage.h"
49 #include "DGtal/topology/CCellularGridSpaceND.h"
51 
52 // @since 0.8 In DGtal::functors
53 namespace DGtal {
54  namespace functors {
55 
57  // class BoundaryPredicate
68  template <typename TKSpace, typename TImage>
70  {
71  // ----------------------- public types ------------------------------
72  public:
75  typedef TKSpace KSpace;
76  typedef TImage Image;
77  typedef typename KSpace::Surfel Surfel;
78  typedef typename KSpace::Point Point;
79  typedef typename KSpace::SCell SCell;
80  typedef typename Image::Value Value;
81  // KSpace::Point same type as Image::Point
84  typename Image::Point>::value ));
85 
86 
87  // ----------------------- Standard services ------------------------------
88  public:
89 
94 
104  const Value & l1 );
105 
110  BoundaryPredicate ( const BoundaryPredicate & other );
111 
118 
128  bool operator()( const Surfel & s ) const;
129 
130  // ----------------------- Interface --------------------------------------
131  public:
132 
137  void selfDisplay ( std::ostream & out ) const;
138 
143  bool isValid() const;
144 
145  // ------------------------- Private Datas --------------------------------
146  private:
147 
150  // the image of interest
154 
155  // ------------------------- Hidden services ------------------------------
156  protected:
157  // ------------------------- Internals ------------------------------------
158  private:
159 
160  }; // end of class BoundaryPredicate
161 
162  } // namespace functors
163 
170  template <typename TKSpace, typename TImage>
171  std::ostream&
172  operator<< ( std::ostream & out,
174 
175 
176 } // namespace DGtal
177 
178 
180 // Includes inline functions.
181 #include "DGtal/topology/helpers/BoundaryPredicate.ih"
182 
183 // //
185 
186 #endif // !defined BoundaryPredicate_h
187 
188 #undef BoundaryPredicate_RECURSES
189 #endif // else defined(BoundaryPredicate_RECURSES)
DGtal::functors::BoundaryPredicate::BoundaryPredicate
BoundaryPredicate(ConstAlias< KSpace > aSpace, ConstAlias< Image > anImage, const Value &l1)
boost::ForwardContainer
Go to http://www.sgi.com/tech/stl/ForwardContainer.html.
Definition: Boost.dox:110
boost_concepts::RandomAccessTraversalConcept
Go to http://www.boost.org/doc/libs/1_52_0/libs/iterator/doc/RandomAccessTraversal....
Definition: BoostConcepts.dox:53
boost::DefaultConstructible
Go to http://www.sgi.com/tech/stl/DefaultConstructible.html.
Definition: Boost.dox:30
boost::UniqueAssociativeContainer
Go to http://www.sgi.com/tech/stl/UniqueAssociativeContainer.html.
Definition: Boost.dox:140
boost::BinaryFunction
Go to http://www.sgi.com/tech/stl/BinaryFunction.html.
Definition: Boost.dox:76
boost::Convertible
Go to http://www.boost.org/libs/concept_check/reference.htm.
Definition: Boost.dox:57
boost::Container
Go to http://www.sgi.com/tech/stl/Container.html.
Definition: Boost.dox:104
boost::EdgeListGraphConcept
Go to http://www.boost.org/doc/libs/1_52_0/libs/graph/doc/EdgeListGraph.html.
Definition: Boost.dox:171
DGtal::ConstAlias
Aim: This class encapsulates its parameter class so that to indicate to the user that the object/poin...
Definition: ConstAlias.h:186
boost::UnaryPredicate
Go to http://www.sgi.com/tech/stl/Predicate.html.
Definition: Boost.dox:79
boost::Generator
Go to http://www.sgi.com/tech/stl/Generator.html.
Definition: Boost.dox:70
DGtal::functors::BoundaryPredicate::myPtrImage
const Image * myPtrImage
Definition: BoundaryPredicate.h:151
DGtal::ImageContainerBySTLVector::Value
TValue Value
Definition: ImageContainerBySTLVector.h:153
boost::Mutable_BidirectionalIterator
Go to http://www.boost.org/libs/concept_check/reference.htm.
Definition: Boost.dox:64
DGtal::functors::BoundaryPredicate::Image
TImage Image
Definition: BoundaryPredicate.h:76
boost::ForwardIterator
Go to http://www.sgi.com/tech/stl/ForwardIterator.html.
Definition: Boost.dox:40
boost::Collection
Go to http://www.sgi.com/tech/stl/Collection.html.
Definition: Boost.dox:155
boost::LessThanComparable
Go to http://www.sgi.com/tech/stl/LessThanComparable.html.
Definition: Boost.dox:48
boost_concepts::SinglePassIteratorConcept
Go to http://www.boost.org/doc/libs/1_52_0/libs/iterator/doc/SinglePassIterator.html.
Definition: BoostConcepts.dox:44
DGtal::concepts::CCellularGridSpaceND
Aim: This concept describes a cellular grid space in nD. In these spaces obtained by cartesian produc...
Definition: CCellularGridSpaceND.h:162
boost::SignedInteger
Go to http://www.sgi.com/tech/stl/SignedInteger.html.
Definition: Boost.dox:50
DGtal::functors::BoundaryPredicate::selfDisplay
void selfDisplay(std::ostream &out) const
DGtal::functors::BoundaryPredicate::Surfel
KSpace::Surfel Surfel
Definition: BoundaryPredicate.h:77
boost_concepts::IncrementableIteratorConcept
Go to http://www.boost.org/doc/libs/1_52_0/libs/iterator/doc/IncrementableIterator....
Definition: BoostConcepts.dox:41
boost
Definition: Boost.dox:28
boost::VertexListGraphConcept
Go to http://www.boost.org/doc/libs/1_52_0/libs/graph/doc/VertexListGraph.html.
Definition: Boost.dox:162
boost::BackInsertionSequence
Go to http://www.sgi.com/tech/stl/BackInsertionSequence.html.
Definition: Boost.dox:134
boost::AdaptableBinaryFunction
Go to http://www.sgi.com/tech/stl/AdaptableBinaryFunction.html.
Definition: Boost.dox:94
DGtal::SignedKhalimskyCell
Represents a signed cell in a cellular grid space by its Khalimsky coordinates and a boolean value.
Definition: KhalimskySpaceND.h:208
boost::IncidenceGraphConcept
Go to http://www.boost.org/doc/libs/1_52_0/libs/graph/doc/IncidenceGraph.html.
Definition: Boost.dox:168
boost_concepts::InteroperableIteratorConcept
Go to http://www.boost.org/doc/libs/1_52_0/libs/iterator/doc/InteroperableIterator....
Definition: BoostConcepts.dox:56
boost::GraphConcept
Go to http://www.boost.org/doc/libs/1_52_0/libs/graph/doc/Graph.html.
Definition: Boost.dox:159
DGtal::functors::BoundaryPredicate::BOOST_STATIC_ASSERT
BOOST_STATIC_ASSERT((concepts::ConceptUtils::SameType< typename KSpace::Point, typename Image::Point >::value))
boost_concepts::WritableIteratorConcept
Go to http://www.boost.org/doc/libs/1_52_0/libs/iterator/doc/WritableIterator.html.
Definition: BoostConcepts.dox:32
boost::Mutable_ForwardIterator
Go to http://www.boost.org/libs/concept_check/reference.htm.
Definition: Boost.dox:62
DGtal::operator<<
std::ostream & operator<<(std::ostream &out, const ATu0v1< TKSpace, TLinearAlgebra > &object)
DGtal::functors::BoundaryPredicate::~BoundaryPredicate
~BoundaryPredicate()
DGtal::functors::BoundaryPredicate::myPtrSpace
const KSpace * myPtrSpace
the cellular space where lies the image.
Definition: BoundaryPredicate.h:149
boost_concepts::ForwardTraversalConcept
Go to http://www.boost.org/doc/libs/1_52_0/libs/iterator/doc/ForwardTraversal.html.
Definition: BoostConcepts.dox:47
DGtal::functors::BoundaryPredicate::operator()
bool operator()(const Surfel &s) const
boost::BinaryPredicate
Go to http://www.sgi.com/tech/stl/BinaryPredicate.html.
Definition: Boost.dox:82
boost::OutputIterator
Go to http://www.sgi.com/tech/stl/OutputIterator.html.
Definition: Boost.dox:38
DGtal
DGtal is the top-level namespace which contains all DGtal functions and types.
DGtal::functors::BoundaryPredicate::operator=
BoundaryPredicate & operator=(const BoundaryPredicate &other)
DGtal::functors::BoundaryPredicate::BOOST_CONCEPT_ASSERT
BOOST_CONCEPT_ASSERT((concepts::CCellularGridSpaceND< TKSpace >))
boost::AssociativeContainer
Go to http://www.sgi.com/tech/stl/AssociativeContainer.html.
Definition: Boost.dox:137
boost::Mutable_RandomAccessContainer
Go to http://www.boost.org/libs/concept_check/reference.htm.
Definition: Boost.dox:125
boost::Const_BinaryPredicate
Go to http://www.boost.org/libs/concept_check/reference.htm.
Definition: Boost.dox:85
boost::UnsignedInteger
Go to http://www.boost.org/libs/concept_check/reference.htm.
Definition: Boost.dox:53
boost_concepts
Definition: BoostConcepts.dox:26
DGtal::functors::BoundaryPredicate::SCell
KSpace::SCell SCell
Definition: BoundaryPredicate.h:79
boost::BidirectionalIterator
Go to http://www.sgi.com/tech/stl/BidirectionalIterator.html.
Definition: Boost.dox:42
boost_concepts::LvalueIteratorConcept
Go to http://www.boost.org/doc/libs/1_52_0/libs/iterator/doc/LvalueIteratorConcept....
Definition: BoostConcepts.dox:38
boost::AdjacencyGraphConcept
Go to http://www.boost.org/doc/libs/1_52_0/libs/graph/doc/AdjacencyGraph.html.
Definition: Boost.dox:165
DGtal::functors::BoundaryPredicate::Value
Image::Value Value
Definition: BoundaryPredicate.h:80
boost::CopyConstructible
Go to http://www.sgi.com/tech/stl/CopyConstructible.html.
Definition: Boost.dox:34
boost::MultiPassInputIterator
Go to http://www.boost.org/doc/libs/1_52_0/libs/utility/MultiPassInputIterator.html.
Definition: Boost.dox:175
boost::ReversibleContainer
Go to http://www.sgi.com/tech/stl/ReversibleContainer.html.
Definition: Boost.dox:116
boost::Sequence
Go to http://www.sgi.com/tech/stl/Sequence.html.
Definition: Boost.dox:128
boost::InputIterator
Go to http://www.sgi.com/tech/stl/InputIterator.html.
Definition: Boost.dox:36
boost::is_unsigned
Go to http://www.boost.org/doc/libs/1_52_0/libs/type_traits/doc/html/index.html.
Definition: Boost.dox:183
boost_concepts::SwappableIteratorConcept
Go to http://www.boost.org/doc/libs/1_52_0/libs/iterator/doc/SwappableIterator.html.
Definition: BoostConcepts.dox:35
boost::Mutable_RandomAccessIterator
Go to http://www.boost.org/libs/concept_check/reference.htm.
Definition: Boost.dox:66
boost::Mutable_ReversibleContainer
Go to http://www.boost.org/libs/concept_check/reference.htm.
Definition: Boost.dox:119
boost::AdaptableUnaryFunction
Go to http://www.sgi.com/tech/stl/AdaptableUnaryFunction.html.
Definition: Boost.dox:91
DGtal::concepts::ConceptUtils::SameType
Definition: ConceptUtils.h:106
boost::AdaptableBinaryPredicate
Go to http://www.sgi.com/tech/stl/AdaptableBinaryPredicate.html.
Definition: Boost.dox:100
boost::Mutable_ForwardContainer
Go to http://www.boost.org/libs/concept_check/reference.htm.
Definition: Boost.dox:113
boost::RandomAccessContainer
Go to http://www.sgi.com/tech/stl/RandomAccessContainer.html.
Definition: Boost.dox:122
boost::RandomAccessIterator
Go to http://www.sgi.com/tech/stl/RandomAccessIterator.html.
Definition: Boost.dox:44
boost::AdaptablePredicate
Go to http://www.sgi.com/tech/stl/AdaptablePredicate.html.
Definition: Boost.dox:97
boost::SortedAssociativeContainer
Go to http://www.sgi.com/tech/stl/SortedAssociativeContainer.html.
Definition: Boost.dox:152
DGtal::functors::BoundaryPredicate::KSpace
TKSpace KSpace
Definition: BoundaryPredicate.h:75
boost::UnaryFunction
Go to http://www.sgi.com/tech/stl/UnaryFunction.html.
Definition: Boost.dox:73
DGtal::PointVector< dim, Integer >
boost::SimpleAssociativeContainer
Go to http://www.sgi.com/tech/stl/SimpleAssociativeContainer.html.
Definition: Boost.dox:146
boost_concepts::BidirectionalTraversalConcept
Go to http://www.boost.org/doc/libs/1_52_0/libs/iterator/doc/BidirectionalTraversal....
Definition: BoostConcepts.dox:50
boost_concepts::ReadableIteratorConcept
Go to http://www.boost.org/doc/libs/1_52_0/libs/iterator/doc/ReadableIterator.html.
Definition: BoostConcepts.dox:29
DGtal::functors::BoundaryPredicate::myLabel1
Value myLabel1
the label of the inner region that defines the boundary.
Definition: BoundaryPredicate.h:153
boost::FrontInsertionSequence
Go to http://www.sgi.com/tech/stl/FrontInsertionSequence.html.
Definition: Boost.dox:131
boost::EqualityComparable
Go to http://www.sgi.com/tech/stl/EqualityComparable.html.
Definition: Boost.dox:46
boost::AdaptableGenerator
Go to http://www.sgi.com/tech/stl/AdaptableGenerator.html.
Definition: Boost.dox:88
DGtal::functors::BoundaryPredicate
Aim: The predicate on surfels that represents the frontier between a region and its complementary in ...
Definition: BoundaryPredicate.h:69
DGtal::functors::BoundaryPredicate::isValid
bool isValid() const
boost::Integer
Go to http://www.boost.org/libs/concept_check/reference.htm.
Definition: Boost.dox:55
boost::PairAssociativeContainer
Go to http://www.sgi.com/tech/stl/PairAssociativeContainer.html.
Definition: Boost.dox:149
boost::Assignable
Go to http://www.sgi.com/tech/stl/Assignable.html.
Definition: Boost.dox:32
DGtal::functors::BoundaryPredicate::Point
KSpace::Point Point
Definition: BoundaryPredicate.h:78
boost::SGIAssignable
Go to http://www.boost.org/libs/concept_check/reference.htm.
Definition: Boost.dox:59
boost::Mutable_Container
Go to http://www.boost.org/libs/concept_check/reference.htm.
Definition: Boost.dox:107
DGtal::concepts::CConstImage
Aim: Defines the concept describing a read-only image, which is a refinement of CPointFunctor.
Definition: CConstImage.h:94
boost::MultipleAssociativeContainer
Go to http://www.sgi.com/tech/stl/MultipleAssociativeContainer.html.
Definition: Boost.dox:143
boost::is_integral
Go to http://www.boost.org/doc/libs/1_52_0/libs/type_traits/doc/html/index.html.
Definition: Boost.dox:179