VR-Forces 4.0.4 Class Documentation
include/tmqt/selectionFilters.h
Go to the documentation of this file.
00001 /*********************************************************************
00002 ** Copyright (c) 2005 MaK Technologies, Inc.
00003 ** All rights reserved.
00004 *********************************************************************/
00005 /*********************************************************************
00006 ** $RCSfile: selectionFilters.h,v $ $Revision: 1.9 $ $State: Exp $
00007 *********************************************************************/
00008 
00011 
00012 #ifndef SELECTIONFITLERS_H_
00013 #define SELECTIONFITLERS_H_
00014 
00015 #include "ngutil/entityMapperKey.h"
00016 #include "ngutil/dtqlist.h"
00017 #include "symbolMapper/modelData.h"
00018 
00019 #include <QtCore/QVector>
00020 
00021 class DtTMMapArea;
00022 
00023 #include "tmqt/tmqtDefines.h"
00024 class DT_DLL_tmqt DtFilter
00025 {
00026 public:
00027    DtFilter();
00028    DtFilter(const QString& name);
00029    DtFilter(const DtFilter& filter);
00030    virtual ~DtFilter();
00031 
00032    virtual DtFilter* clone() const = 0;
00033    virtual bool isValid(const DtModelData*) = 0;
00034 
00035    virtual const QString& name() const;
00036    void setName(const QString&);
00037 
00039    virtual int indexOf(const DtModelData*) { return -1; };
00040 
00043    virtual bool checkIfChanged(int flags) const { return false; };
00044 
00045 protected:
00046    QString myName;
00047 };
00048 
00049 class DT_DLL_tmqt DtModelKeyFilter : public DtFilter
00050 {
00051 public:
00052    DtModelKeyFilter(const QString& name, const QVector<DtModelKey>&);
00053    DtModelKeyFilter(const DtModelKeyFilter& filter);
00054    virtual ~DtModelKeyFilter();
00055 
00056    virtual DtFilter* clone() const;
00057    virtual bool isValid(const DtModelData*);
00058 
00059    const QVector<DtModelKey>& keys() const { return myKeys; };
00060    void setModelKeys(const QVector<DtModelKey>& k) { myKeys = k; };
00061 
00062    virtual int indexOf(const DtModelData*);
00063 
00064 protected:
00065    QVector<DtModelKey>  myKeys;
00066 };
00067 
00068 class DT_DLL_tmqt DtObjectFilter : public DtFilter
00069 {
00070 public:
00071    DtObjectFilter();
00072    DtObjectFilter(const DtEntityMapperKey& key);
00073    DtObjectFilter(const QString& name, const DtEntityMapperKey& key);
00074    DtObjectFilter(const DtObjectFilter& filter);
00075    virtual ~DtObjectFilter();
00076 
00077    const DtEntityMapperKey& key() const;
00078    void setKey(const DtEntityMapperKey&);
00079 
00080 protected:
00081    virtual DtFilter* clone() const;
00082    virtual bool isValid(const DtModelData*);
00083    virtual bool checkIfChanged(int flags) const;
00084 
00085 protected:
00086    DtEntityMapperKey myKey;
00087 };
00088 
00089 class DT_DLL_tmqt DtNotObjectFilter : public DtObjectFilter
00090 {
00091 public:
00092    DtNotObjectFilter();
00093    DtNotObjectFilter(const DtEntityMapperKey& key);
00094    DtNotObjectFilter(const QString& name, const DtEntityMapperKey& key);
00095    DtNotObjectFilter(const DtNotObjectFilter& filter);
00096 
00097    virtual ~DtNotObjectFilter();
00098 
00099    void setNotFilter(const DtFilter& f);
00100    void clearNotFilter();
00101 
00102 protected:
00103    virtual DtFilter* clone() const;
00104    virtual bool isValid(const DtModelData*);
00105    virtual bool checkIfChanged(int flags) const;
00106 
00107 protected:
00108    DtEntityMapperKey myKey;
00109    DtFilter*         myNotFilter;
00110 };
00111 
00112 class DT_DLL_tmqt DtKindLessThanFilter : public DtObjectFilter
00113 {
00114 public:
00115    DtKindLessThanFilter(const DtEntityMapperKey& key);
00116    DtKindLessThanFilter(const QString& name, const DtEntityMapperKey& key);
00117    DtKindLessThanFilter(const DtKindLessThanFilter& filter);
00118    virtual ~DtKindLessThanFilter();
00119 
00120 protected:
00121    virtual DtFilter* clone() const;
00122    virtual bool isValid(const DtModelData*);
00123 };
00124 
00125 class DT_DLL_tmqt DtMatchAnyFilter : public DtFilter
00126 {
00127 public:
00128    DtMatchAnyFilter();
00129    DtMatchAnyFilter(const QString& name);
00130    DtMatchAnyFilter(const DtMatchAnyFilter& filter);
00131    virtual ~DtMatchAnyFilter();
00132 
00133    virtual void addKey(const DtEntityMapperKey& key);
00134 
00135 protected:
00136    virtual DtFilter* clone() const;
00137    virtual bool isValid(const DtModelData*);
00138    virtual bool checkIfChanged(int flags) const;
00139 
00140 protected:
00141    QList<DtEntityMapperKey> myMatches;
00142 };
00143 
00144 class DT_DLL_tmqt DtOrFilter : public DtFilter
00145 {
00146 public:
00147    DtOrFilter();
00148    DtOrFilter(const QString& name);
00149    DtOrFilter(const DtOrFilter& filter);
00150    virtual ~DtOrFilter();
00151 
00152    virtual void addFilter(DtFilter* filter);
00153    virtual void addFilter(const DtFilter& filter);
00154 
00155    void clearFilters();
00156    virtual bool checkIfChanged(int flags) const;
00157 
00158 protected:
00159    virtual DtFilter* clone() const;
00160    virtual bool isValid(const DtModelData*);
00161 
00162 protected:
00163    DtPtrQList<DtFilter*>   myFilters;
00164 };
00165 
00166 class DT_DLL_tmqt DtAndFilter : public DtOrFilter
00167 {
00168 public:
00169    DtAndFilter();
00170    DtAndFilter(const QString& name);
00171    DtAndFilter(const DtAndFilter& filter);
00172    virtual ~DtAndFilter();
00173 
00174 protected:
00175    virtual DtFilter* clone() const;
00176    virtual bool isValid(const DtModelData*);
00177 };
00178 
00180 class DT_DLL_tmqt DtMapSelectionFilter : public DtFilter
00181 {
00182 public:
00183    DtMapSelectionFilter(const QString& name, const DtTMMapArea* map);
00184    DtMapSelectionFilter(const DtMapSelectionFilter& filter);
00185    virtual ~DtMapSelectionFilter();
00186 
00187    virtual DtFilter* clone() const;
00188    virtual bool isValid(const DtModelData*);
00189 
00190 protected:
00191    const DtTMMapArea*  myMapArea;
00192 };
00193 
00194 inline const DtEntityMapperKey& DtObjectFilter::key() const
00195 {
00196    return myKey;
00197 }
00198 
00199 inline void DtObjectFilter::setKey(const DtEntityMapperKey& key)
00200 {
00201    myKey = key;
00202 }
00203 
00204 inline void DtFilter::setName(const QString& name)
00205 {
00206    myName = name;
00207 }
00208 
00209 inline void DtOrFilter::clearFilters()
00210 {
00211    myFilters.clear();
00212 }
00213 
00214 #endif

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)