VR-Forces 4.0.4 Class Documentation
include/gdb/basicTerrainIntersector.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2008 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 /*******************************************************************************
00006 ** $RCSfile: basicTerrainIntersector.h,v $ $Revision: 1.4 $ $State: Exp $
00007 *******************************************************************************/
00008 
00011 
00012 #ifndef basicTerrainIntersector_h
00013 #define basicTerrainIntersector_h
00014 
00015 #include "gdb/terrainIntersector.h"
00016 #include "gdb/terrainIntersectorDescriptor.h"
00017 
00018 class DtBasicTerrainIntersectorDescriptor;
00019 
00020 // An intersector for DtTerrainDatabase class.
00021 // This intersector doesn't use any special intersection optimization, and
00022 // does not allocate any additional memory.  It is useful when reduced memory
00023 // footprint is more important than intersection speed.
00024 class DT_DLL_gdb DtBasicTerrainIntersector : public DtTerrainIntersector
00025 {
00026 private:
00027    // Not implemented.
00028    DtBasicTerrainIntersector();
00029    // Not implemented.
00030    DtBasicTerrainIntersector(const DtBasicTerrainIntersector& orig);
00031    // Not implemented.
00032    DtBasicTerrainIntersector& operator=(const DtBasicTerrainIntersector& orig);
00033 
00034 public:
00035    DtBasicTerrainIntersector(DtTerrainDatabase* terrainDb,
00036       const DtTerrainIntersectorDescriptor* descriptor);
00037    virtual ~DtBasicTerrainIntersector();
00038 
00039    virtual bool init();
00040    virtual bool reinitialize();
00041 
00042    // \return The total number of bytes of memory used by this intersector
00043    // and any of its internal indexing into the terrain.
00044    virtual unsigned int memoryUsage() const;
00045 
00046    virtual bool chordIntersect(const DtChord& chord,
00047       DtChordIntersectionRecord& record,
00048       DtGdbNode::DtIntersectRecordType irtFlag = DtGdbNode::IRT_ALL_DATA_TERRAIN) const;
00049 
00050    virtual bool allIntersectsAlongChord(const DtChord& chord,
00051       DtChordIntersectRecordList& intList,
00052       DtGdbNode::DtIntersectRecordType irtFlag = DtGdbNode::IRT_ALL_DATA_TERRAIN) const;
00053 
00054    virtual bool sphereIntersect(const DtSphere& sphere, DtSphereIntersectionRecord& record,
00055       DtGdbNode::DtIntersectRecordType irtFlag = DtGdbNode::IRT_ALL_DATA_TERRAIN) const;
00056 
00057    virtual int terrainIntersectorType() const;
00058 
00059    virtual bool load(FILE*) { return true; };
00060    virtual bool save(FILE*) { return true; };
00061 
00062    // \return A descriptor for setting this intersector to the DtTerrainDatabase.
00063    static DtBasicTerrainIntersectorDescriptor* createDescriptor();
00064 };
00065 
00066 // Descriptor for the DtBasicTerrainIntersector class.
00067 class DT_DLL_gdb DtBasicTerrainIntersectorDescriptor : public DtTerrainIntersectorDescriptor
00068 {
00069 public:
00070    DtBasicTerrainIntersectorDescriptor();
00071    DtBasicTerrainIntersectorDescriptor(const DtBasicTerrainIntersectorDescriptor& orig);
00072    virtual ~DtBasicTerrainIntersectorDescriptor();
00073 
00074    DtBasicTerrainIntersectorDescriptor& operator=(const DtBasicTerrainIntersectorDescriptor& orig);
00075 
00076    virtual int terrainIntersectorType() const;
00077 
00078    virtual DtTerrainIntersectorDescriptor* clone() const;
00079 
00080    virtual void descriptorInformation(DtString& name, DtString& properties) const;
00081 };
00082 
00083 #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)