42 template <
typename TKSpace,
typename TImage>
48 template <
typename TKSpace,
typename TImage>
53 : myPtrSpace( &aSpace ), myPtrImage( &anImage ),
54 myLabel1( l1 ), myLabel2( l2 )
57 template <
typename TKSpace,
typename TImage>
61 : myPtrSpace( other.myPtrSpace ), myPtrImage( other.myPtrImage ),
62 myLabel1( other.myLabel1 ), myLabel2( other.myLabel2 )
65 template <
typename TKSpace,
typename TImage>
81 template <
typename TKSpace,
typename TImage>
87 Dimension orthDir = myPtrSpace->sOrthDir( s );
88 bool orthDirect = myPtrSpace->sDirect( s, orthDir );
89 SCell int_spel = myPtrSpace->sIncident( s, orthDir, orthDirect );
90 Point int_p = myPtrSpace->sCoords( int_spel );
92 out_p[ orthDir ] += orthDirect ? -1 : 1;
93 return ( (*myPtrImage)( int_p ) == myLabel1 )
94 && ( (*myPtrImage)( out_p ) == myLabel2 );
97 template <
typename TKSpace,
typename TImage>
103 out <<
"[FrontierPredicate]";
106 template <
typename TKSpace,
typename TImage>
124 template <
typename TKSpace,
typename TImage>
130 object.selfDisplay ( out );