VR-Forces 4.1 Class Documentation
List of all members | Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Attributes
MAKVRinTerra::DtQuery< Result > Class Template Reference

Represents a set of characeters a DtFeature object can have. More...

Inheritance diagram for MAKVRinTerra::DtQuery< Result >:
Inheritance graph
[legend]

Classes

class  Implementation

Public Types

enum  Type {
  EOther, ETrue, EFalse, EAnd,
  EOr
}
 Enumeration which allows algorithms easier access to the special query types. More...
Special query types
typedef DtTrueQuery True
typedef DtFalseQuery False
typedef DtAndQuery And
typedef DtOrQuery Or

Public Member Functions

 DtQuery ()
 DtQuery (bool val)
 DtQuery (const Implementation &i)
 DtQuery (Implementation *i)
 DtQuery (Implementation::CPtr p)
DtQueryoperator= (const DtQuery &q)
const Implementationimpl () const
template<typename T >
const T & cast () const
template<typename T >
const T * trycast () const
Type type () const
 Returns the type of the query.
bool isTrue () const
bool isFalse () const
bool matches (const DtFeature &feature) const
 Test a feature to see if it matches this query.
boost::optional< DtQueryremove (boost::function< bool(const DtQuery &)>) const
 Remove queries which return true when the argument is called one them.
boost::optional
< DtFeatureGeometry
findEnclosingGeometry () const
void print (std::ostream &stream) const
 Print query to stream.
void pprint (std::ostream &stream, unsigned indent=0) const
std::string pprint (unsigned indent=0) const
virtual ~Visitor ()
virtual Result apply (const DtQuery &query)
virtual Result visit (const DtQuery &)=0
virtual Result visit (const True &)=0
virtual Result visit (const False &)=0
virtual Result visit (const And &)=0
virtual Result visit (const Or &)=0
virtual ~Visitor ()
virtual DtQuery apply (const DtQuery &)
virtual DtQuery visit (const DtQuery &)=0
virtual DtQuery visit (const True &)
virtual DtQuery visit (const False &)
virtual DtQuery visit (const And &)
virtual DtQuery visit (const Or &)
virtual ~Visitor ()
virtual void apply (const DtQuery &)
virtual void visit (const DtQuery &)=0
virtual void visit (const True &)
virtual void visit (const False &)
virtual void visit (const And &)
virtual void visit (const Or &)

Static Public Member Functions

static void SetDebugOutput (std::ostream &)
static void DisableDebugOutput ()

Protected Attributes

Implementation::CPtr myImpl

Detailed Description

template<typename Result>
class MAKVRinTerra::DtQuery< Result >

Represents a set of characeters a DtFeature object can have.

DtQuery objects are the way to communicate to a DtFeatureSet what objects you would like to iterate over. A DtFeatureSet object can have many different types of DtFeatures, and DtQuery allows iterate over only those features which have the characteristics you are currently interested in. The implementation will examine the query to determine the minimum amount of work it needs to do to satisfy it. Conceptually a DtQuery object is just a function you can call on a DtFeature. To actually call this function you use match(). There are special subclasses of DtQuery which the DtFeatureSet framework looks for in order to take shortcuts which in filtering. The first set of special classes are True, False, And, and Or. These queries allow combining simple queries into more complex ones.

Member Typedef Documentation

template<typename Result >
typedef DtTrueQuery MAKVRinTerra::DtQuery< Result >::True
template<typename Result >
typedef DtFalseQuery MAKVRinTerra::DtQuery< Result >::False
template<typename Result >
typedef DtAndQuery MAKVRinTerra::DtQuery< Result >::And
template<typename Result >
typedef DtOrQuery MAKVRinTerra::DtQuery< Result >::Or

Member Enumeration Documentation

template<typename Result >
enum MAKVRinTerra::DtQuery::Type

Enumeration which allows algorithms easier access to the special query types.

Enumerator:
EOther 
ETrue 
EFalse 
EAnd 
EOr 

Constructor & Destructor Documentation

template<typename Result >
MAKVRinTerra::DtQuery< Result >::DtQuery ( )
template<typename Result >
MAKVRinTerra::DtQuery< Result >::DtQuery ( bool  val)
template<typename Result >
MAKVRinTerra::DtQuery< Result >::DtQuery ( const Implementation i)
inline
template<typename Result >
MAKVRinTerra::DtQuery< Result >::DtQuery ( Implementation i)
inline
template<typename Result >
MAKVRinTerra::DtQuery< Result >::DtQuery ( Implementation::CPtr  p)
inline
template<typename Result >
virtual MAKVRinTerra::DtQuery< Result >::~Visitor ( )
inlinevirtual
template<typename Result >
virtual MAKVRinTerra::DtQuery< Result >::~Visitor ( )
virtual
template<typename Result >
virtual MAKVRinTerra::DtQuery< Result >::~Visitor ( )
virtual

Member Function Documentation

template<typename Result >
static void MAKVRinTerra::DtQuery< Result >::SetDebugOutput ( std::ostream &  )
static
template<typename Result >
static void MAKVRinTerra::DtQuery< Result >::DisableDebugOutput ( )
static
template<typename Result >
DtQuery& MAKVRinTerra::DtQuery< Result >::operator= ( const DtQuery< Result > &  q)
inline
template<typename Result >
const Implementation& MAKVRinTerra::DtQuery< Result >::impl ( ) const
inline
template<typename Result >
template<typename T >
const T& MAKVRinTerra::DtQuery< Result >::cast ( ) const
inline
template<typename Result >
template<typename T >
const T* MAKVRinTerra::DtQuery< Result >::trycast ( ) const
inline
template<typename Result >
Type MAKVRinTerra::DtQuery< Result >::type ( ) const
inline

Returns the type of the query.

The query framework uses the return value of this function to optimize performance. It is highly recommended that users do not reimplement this function. Any type which returns EAnd MUST derive from DtQuery::And. Any type which returns EOr MUST derive from DtQuery::Or. Any type which returns ETrue may be substituted with DtQuery::True at any point. Any type which returns EFalse may be subsituted with DtQuery::False at any point.

Referenced by MAKVRinTerra::DtQuery< Result >::apply().

template<typename Result >
bool MAKVRinTerra::DtQuery< Result >::isTrue ( ) const
inline
template<typename Result >
bool MAKVRinTerra::DtQuery< Result >::isFalse ( ) const
inline
template<typename Result >
bool MAKVRinTerra::DtQuery< Result >::matches ( const DtFeature feature) const
inline

Test a feature to see if it matches this query.

template<typename Result >
boost::optional<DtQuery> MAKVRinTerra::DtQuery< Result >::remove ( boost::function< bool(const DtQuery< Result > &)>  ) const

Remove queries which return true when the argument is called one them.

This function may return null if removing the specified queries results in an empty query.

template<typename Result >
boost::optional<DtFeatureGeometry> MAKVRinTerra::DtQuery< Result >::findEnclosingGeometry ( ) const
template<typename Result >
void MAKVRinTerra::DtQuery< Result >::print ( std::ostream &  stream) const
inline

Print query to stream.

template<typename Result >
void MAKVRinTerra::DtQuery< Result >::pprint ( std::ostream &  stream,
unsigned  indent = 0 
) const
inline
template<typename Result >
std::string MAKVRinTerra::DtQuery< Result >::pprint ( unsigned  indent = 0) const
template<typename Result >
virtual Result MAKVRinTerra::DtQuery< Result >::apply ( const DtQuery< Result > &  query)
inlinevirtual
template<typename Result >
virtual Result MAKVRinTerra::DtQuery< Result >::visit ( const DtQuery< Result > &  )
pure virtual
template<typename Result >
virtual Result MAKVRinTerra::DtQuery< Result >::visit ( const True )
pure virtual
template<typename Result >
virtual Result MAKVRinTerra::DtQuery< Result >::visit ( const False )
pure virtual
template<typename Result >
virtual Result MAKVRinTerra::DtQuery< Result >::visit ( const And )
pure virtual
template<typename Result >
virtual Result MAKVRinTerra::DtQuery< Result >::visit ( const Or )
pure virtual
template<typename Result >
virtual DtQuery MAKVRinTerra::DtQuery< Result >::apply ( const DtQuery< Result > &  )
virtual
template<typename Result >
virtual DtQuery MAKVRinTerra::DtQuery< Result >::visit ( const DtQuery< Result > &  )
pure virtual
template<typename Result >
virtual DtQuery MAKVRinTerra::DtQuery< Result >::visit ( const True )
virtual
template<typename Result >
virtual DtQuery MAKVRinTerra::DtQuery< Result >::visit ( const False )
virtual
template<typename Result >
virtual DtQuery MAKVRinTerra::DtQuery< Result >::visit ( const And )
virtual
template<typename Result >
virtual DtQuery MAKVRinTerra::DtQuery< Result >::visit ( const Or )
virtual
template<typename Result >
virtual void MAKVRinTerra::DtQuery< Result >::apply ( const DtQuery< Result > &  )
virtual
template<typename Result >
virtual void MAKVRinTerra::DtQuery< Result >::visit ( const DtQuery< Result > &  )
pure virtual
template<typename Result >
virtual void MAKVRinTerra::DtQuery< Result >::visit ( const True )
virtual
template<typename Result >
virtual void MAKVRinTerra::DtQuery< Result >::visit ( const False )
virtual
template<typename Result >
virtual void MAKVRinTerra::DtQuery< Result >::visit ( const And )
virtual
template<typename Result >
virtual void MAKVRinTerra::DtQuery< Result >::visit ( const Or )
virtual

Member Data Documentation

template<typename Result >
Implementation::CPtr MAKVRinTerra::DtQuery< Result >::myImpl
protected

The documentation for this class was generated from the following file:

Document ID: Generated on Tue Jan 29 18:21:16 EST 2013 from SVN revision 123193
Copyright © 2005-2013 VT MÄK Inc. All Rights Reserved (www.mak.com)