MAK RTIspy API Documentation for HLA 1516
objRegSet.h
Go to the documentation of this file.
00001 /*********************************************************************
00002 ** Copyright (c) 2001 MaK Technologies, Inc.
00003 ** All rights reserved.
00004 *********************************************************************/
00005 /*********************************************************************
00006 ** $RCSfile: objRegSet.h,v $ $Revision: 1.20 $ $State: Exp $
00007 *********************************************************************/
00010 
00011 #ifndef DtObjectRegSet_H_
00012 #define DtObjectRegSet_H_
00013 #ifdef DDM
00014 
00015 #include "regionSet.h"
00016 #include "attrHandSet.h"
00017 
00018 class DtRegAttrAssoc;
00019 
00020 class DT_DLL_LRC DtObjectRegionSet : public DtRegionSet
00021 {
00022 public:
00023 
00024    DtObjectRegionSet();
00025    DtObjectRegionSet(DtRegionHandle setHandleValue, DtRegionRealization* region);
00026 
00027    virtual ~DtObjectRegionSet();
00028 
00030    virtual bool inUse();
00031 
00033    virtual void addAttribute(DtObjectClassInfo* classDesc,
00034       DtAttributeHandle attrHandle);
00035    virtual void removeAttribute(DtObjectClassHandle classHandle,
00036       DtAttributeHandle attrHandle);
00037 
00039    virtual void addAttribute(DtObjectInstanceHandle objectHandle,
00040       const char* objName, DtObjectClassInfo* classDesc,
00041       DtAttributeHandle attrHandle);
00042    virtual void removeAttribute(DtObjectInstanceHandle objectHandle,
00043       DtObjectClassInfo* classDesc, DtAttributeHandle attrHandle);
00044 
00046    virtual void addUnownedAttribute(DtObjectInstanceHandle objectHandle,
00047       DtAttributeHandle attrHandle);
00048    virtual void removeUnownedAttribute(DtObjectInstanceHandle objectHandle,
00049       DtAttributeHandle attrHandle);
00050 
00052    virtual void addAttributes(DtObjectClassInfo* classDesc,
00053       const DtAttributeHandleSet& attrSet);
00054    virtual void removeAttributes(DtObjectClassHandle classHandle,
00055       const DtAttributeHandleSet& attrSet);
00056 
00058    virtual void addAttributes(DtObjectInstanceHandle objectHandle,
00059       const char* objName, DtObjectClassInfo* classDesc,
00060       const DtAttributeHandleSet& attrSet);
00061    virtual void removeAttributes(DtObjectInstanceHandle objectHandle,
00062       DtObjectClassInfo* classDesc, const DtAttributeHandleSet& attrSet);
00063 
00065    virtual void addUnownedAttributes(DtObjectInstanceHandle objectHandle,
00066       const DtAttributeHandleSet& attrSet);
00067    virtual void removeUnownedAttributes(DtObjectInstanceHandle objectHandle,
00068       const DtAttributeHandleSet& attrSet);
00069 
00071    virtual DtAttributeHandleSet* attributes(DtObjectClassHandle classHandle);
00073    virtual const DtAttributeHandleSet* attributes(
00074       DtObjectClassHandle classHandle) const;
00075 
00078    virtual bool attributesOf(DtObjectClassHandle classHandle,
00079       DtAttributeHandleSet& attributes) const;
00080 
00084    virtual bool attributesMatching(DtObjectClassInfo const& classInfo,
00085       DtAttributeHandleSet& attributes) const;
00086 
00088    virtual bool isMemberAttributes(DtObjectClassHandle classHandle,
00089       DtAttributeHandle attrHandle) const;
00090 
00092    virtual const DtAttributeHandleSet* objectAttributes(DtObjectInstanceHandle objectHandle);
00093 
00095    virtual const DtAttributeHandleSet* objectUnownedAttributes(
00096       DtObjectInstanceHandle objectHandle);
00097 
00099    virtual bool isMemberObject(DtObjectInstanceHandle objectHandle);
00100 
00102    virtual const MAKRti::DtHashList& objectAssociations();
00103 
00105    virtual const MAKRti::DtHashList& objectUnownedAssociations();
00106 
00108    virtual void addOverlap(DtObjectRegionSet* regionSet);
00109 
00111    virtual void removeOverlap(DtRegionHandle regionSetHandle);
00112 
00114    virtual unsigned int overlapCount() const;
00115 
00117    virtual const DtRegionSetList& overlapList();
00118 
00121    virtual void emptyOverlaps(MAKRti::DtList* overlapsRemoved=NULL);
00122 
00124    virtual bool isOverlap(DtRegionHandle regionSetHandle) const;
00125 
00127    virtual void addMatch(DtObjectRegionSet* regionSet,
00128       DtObjectClassHandle classHandle);
00129    virtual void removeMatch(DtRegionHandle regionSetHandle,
00130       DtObjectClassHandle classHandle);
00131 
00133    virtual void removeMatches(DtRegionHandle regionSetHandle);
00134 
00136    virtual bool isMatch(DtRegionHandle regSetHandle) const;
00137 
00139    virtual bool isMatchedClass(DtRegionHandle regionSetHandle,
00140       DtObjectClassHandle classHandle);
00141 
00143    virtual void addMatchOverlap(DtObjectRegionSet* regionSet);
00144    virtual void removeMatchOverlap(DtRegionHandle regionSetHandle);
00145 
00147    virtual bool isMatchOverlap(DtRegionHandle regionSetHandle) const;
00148 
00150    virtual unsigned int matchCount() const;
00151 
00153    virtual unsigned int matchOverlapCount() const;
00154 
00156    virtual const DtRegionSetList& matchList();
00157 
00159    virtual const MAKRti::DtHashList& attributeAssociations();
00160 
00162    virtual DtRegAttrAssoc* attributeAssociation(
00163       DtObjectClassHandle classHandle);
00164 
00167    virtual void moveAttrToOverlap(const DtObjectRegionSet& remoteRegSet)=0;
00168    virtual void moveAttrToMatching(const DtObjectRegionSet& remoteRegSet)=0;
00169 
00170 protected:
00171 
00173    virtual void emptyAttrs();
00174 
00176    virtual void emptyMatches();
00177 
00179    DtObjectRegionSet* self() const;
00180 
00181    DtObjectRegionSet(DtObjectRegionSet const & rhs);
00182    DtObjectRegionSet &operator=(DtObjectRegionSet const & rhs);
00183 
00184 protected:
00185 
00186    DtRegionSetList myOverlaps;
00187    DtRegionSetList myMatches;
00188    DtRegionSetList myMatchOverlaps;
00189    MAKRti::DtHashList myObjectAssocs;
00190    MAKRti::DtHashlist myAttrAssocs;
00191    MAKRti::DtHashlist myUnownedAttrAssocs;
00192 
00195    MAKRti::DtHashList myMatchedClasses;
00196 };
00197 
00198 inline DtObjectRegionSet* DtObjectRegionSet::self() const
00199 {
00200    return const_cast<DtObjectRegionSet*>( this );
00201 }
00202 
00203 inline const MAKRti::DtHashList& DtObjectRegionSet::objectAssociations()
00204 {
00205    return myObjectAssocs;
00206 }
00207 inline const MAKRti::DtHashList& DtObjectRegionSet::objectUnownedAssociations()
00208 {
00209    return myUnownedAttrAssocs;
00210 }
00211 
00212 inline const MAKRti::DtHashList& DtObjectRegionSet::attributeAssociations()
00213 {
00214    return myAttrAssocs;
00215 }
00216 
00217 inline const DtRegionSetList& DtObjectRegionSet::overlapList()
00218 {
00219    return myOverlaps;
00220 }
00221 
00222 inline const DtRegionSetList& DtObjectRegionSet::matchList()
00223 {
00224    return myMatches;
00225 }
00226 
00227 #endif
00228 #endif

Document ID: Generated on Thu Jun 14 14:15:04 EDT 2012 from SVN revision 116116
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)