VR-Forces 4.0.4 Class Documentation
include/bhavePathDataGen/terrainInterfaceImporter.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2010 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 
00006 #pragma once
00007 
00008 #include <bhavePathDataGen/pathDataGenDefines.h>
00009 #include <bhavePathDataGen/baseImporter.h>
00010 #include <bhavePathDataGen/extentBoxStruct.h>
00011 #include <kypdg.h>
00012 #include <gdb/terrainDb.h>
00013 #include "terrainInterface/terrainProcessPolygonsBox.h"
00014 #include "terrainInterface/terrainInterface.h"
00015 #include <deque>
00016 
00017 class DtGdbNode;
00018 class DtTriangleIndirect;
00019 
00020 namespace BHAVE {
00021 
00024    class DT_DLL_bhavePathDataGen DtTerrainInterfaceImporter : public DtBaseImporter
00025    {
00026       public:
00027       
00029       DtTerrainInterfaceImporter();
00030 
00032       DtTerrainInterfaceImporter(const DtTerrainInterfaceImporter& orig);
00033 
00035       DtTerrainInterfaceImporter& operator=(const DtTerrainInterfaceImporter& orig);
00036       
00038       virtual void setTerrainInterface(const DtTerrainInterface* currentDb);
00039       
00041       virtual bool initializeCoordinateSystem();
00042       
00045       virtual bool generateTriangleMesh(Kaim::ClientInputConsumer & kynapseConsumer, DtExtentBoxStruct* boundingBox = 0);
00046       
00048       virtual void setImpassableTerrain(DtSoilType soilType);
00049       virtual void unsetImpossibleTerrain(DtSoilType soilType);
00050 
00052       virtual void setImpassableWater(DtBodyOfWaterType soilType);
00053 
00055       virtual void unsetImpossibleWater(DtBodyOfWaterType soilType); 
00056 
00058       virtual bool generateVectorNetwork() const { return myGenerateVectorNetwork; }
00059 
00061       virtual void setGenerateVectorNetwork(bool val) { myGenerateVectorNetwork = val; }
00062 
00064       static void processTriangle(DtTerrainTriangleStruct& triangle, void* usr);
00065 
00067       static void finalize(int status, void* usr);
00068 
00070       virtual void addTerrainTriangle(const DtTerrainTriangleStruct& triangle);
00071 
00073       virtual bool isTriangleSizeWithinLimits(const DtTerrainTriangleStruct& triangle) const;
00074 
00076       virtual void setMaximumTriangleSize(const double& lengthInMeters);
00077 
00079       virtual double maximumTriangleSize() const;
00080       
00082       virtual void splitAndAddTerrainTriangle(const DtTerrainTriangleStruct& triangle);
00083      
00084    protected:
00086       virtual void resetTriangleCount();
00087 
00089       virtual double triangleCount() const;
00090       
00091       const DtTerrainInterface* myTerrainInterface;
00092       std::set<DtSoilType> myImpassableTerrainTypes;
00093       std::set<DtBodyOfWaterType> myImpassableWaterTypes;
00094       bool myGenerateVectorNetwork;
00095       double myTempMinimumZ;
00096       double myTempMaximumZ;
00097       double myMaximumTriangleSize;
00098       double myTriangleCount;
00099    };
00100 
00101 } 
00102 

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)