VR-Forces 4.0.4 Class Documentation
include/terrainqt/boundingVolumesManager.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2003 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 /*******************************************************************************
00006 ** $RCSfile: boundingVolumesManager.h,v $ $Revision: 1.7 $ $State: Exp $
00007 *******************************************************************************/
00008 
00011 
00012 #ifndef DTBOUNDINGVOLUMESMANAGER_H_
00013 #define DTBOUNDINGVOLUMESMANAGER_H_
00014 
00015 #include "geometry/point.h"
00016 #include "ngutil/entityMapperKey.h"
00017 #include "geometry/tdbextent.h"
00018 #include "ngutil/orderedKeyList.h"
00019 
00020 #include <matrix/3dBoundingVolume.h>
00021 
00022 class DtModelData;
00023 class Coordinate_System;
00024 class DtDcm;
00025 
00026 #include "terrainqt/terrainqtDefines.h"
00027 class DT_DLL_terrainqt DtBoundingVolumeInfo : public DtEntityMapperKey
00028 {
00029 public:
00030    DtBoundingVolumeInfo(const DtEntityMapperKey& key, const DtPoint& volume,
00031       const DtPoint& offset);
00032    DtBoundingVolumeInfo(const DtBoundingVolumeInfo& orig);
00033 
00034    virtual void setVolume(const DtPoint& volume);
00035    virtual const DtPoint& volume() const;
00036 
00037    virtual void setOffset(const DtPoint& offset);
00038    virtual const DtPoint& offset() const;
00039 
00040    virtual DtBoundingVolumeInfo& operator=(const DtBoundingVolumeInfo& orig);
00041 
00042    virtual DtBoundingVolumeInfo* clone();
00043 
00044 protected:
00045    DtPoint myBoundingVolume;
00046    DtPoint myOffset;
00047 };
00048 
00049 class DT_DLL_terrainqt DtBoundingVolumesManager
00050 {
00051 public:
00052    DtBoundingVolumesManager();
00053    virtual ~DtBoundingVolumesManager();
00054 
00055    virtual bool init(const QString& boundingVolumesFile);
00056    virtual DtBoundingVolumeInfo* boundingVolume(const DtEntityMapperKey& data) const;
00057    virtual bool addBoundingVolume(DtBoundingVolumeInfo* volume);
00058 
00062    virtual DtBoundingVolumeInfo boundingVolume(const DtModelData& data) const;
00063 
00067    virtual Dt3dBoundingVolume computeExtent(const DtPoint& boudingVolume,
00068       const DtPoint& offset, const DtPoint& symbolOrigin, const DtModelData& data) const;
00069 
00071    virtual void computeBoundingBox(const DtPoint& boundingVolume,
00072       const DtPoint& offset, const DtPoint& symbolOrigin, const DtModelData& data,
00073       DtVector& ul, DtVector& ll, DtVector& ur, DtVector& lr, const Coordinate_System* cs, const DtDcm& bodyToGeoc) const;
00074 
00077    virtual bool intersectLineOfChord(Dt3dBoundingVolume& source,
00078       const DtModelData* data, const DtVector& targetOrigin, const DtVector& start,
00079       const DtVector& end, const DtDcm& bodyToGeoc, DtVector* pointIn = NULL, DtVector* pointOut = NULL);
00080 
00081 public:
00082    static DtBoundingVolumesManager* create();
00083 
00084 protected:
00085    DtOrderedKeyList<DtBoundingVolumeInfo*> myBoundingVolumes;
00086 };
00087 
00088 #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)