VR-Forces 4.0.4 Class Documentation
include/vrvCore/DtSimpleIntersector.h
Go to the documentation of this file.
00001 /****************************************************************************** 
00002 ** Copyright (c) 2011 MAK Technologies, Inc. 
00003 ** All rights reserved. 
00004 ******************************************************************************/ 
00005  
00010 
00011 #pragma once
00012 
00013 #include <vrvCore/vrvCore.h>
00014 #include <vrvCore/DtUniqueID.h>
00015 #include <vrvCore/DtIntersector.h>
00016 
00017 #include <vrvUtil/DtVirtualBaseClass.h>
00018 
00019 #include <vector>
00020  
00021 class DtVector;
00022 
00023 namespace makVrv
00024 { 
00025    class DtDe;
00026 
00030    class DtSimpleIntersectorResult : public DtIntersectorResult
00031    {
00032    public:
00033       DtSimpleIntersectorResult();
00034       DtSimpleIntersectorResult( double cx, double cy, double cz,
00035          double cnormalX, double cnormalY, double cnormalZ,
00036          const DtUniqueID& cid, unsigned int celementType);
00037 
00038       DtSimpleIntersectorResult( const DtSimpleIntersectorResult& orig );
00039       DtSimpleIntersectorResult& operator=( const DtSimpleIntersectorResult& orig );
00040 
00041    public:
00042       // Actually a DtElementEntry::ElementType
00043       unsigned int elementType;
00044    };
00045 
00051    class DT_DLL_VRVCORE DtSimpleIntersector : public DtVirtualBaseClass
00052    {
00053    public:
00055       static DtSimpleIntersector& instance(DtDe& de);
00056 
00058       static void registerInstance(DtDe& de, DtSimpleIntersector* anInstance);    
00059 
00061       virtual ~DtSimpleIntersector();
00062 
00065       virtual double heightAboveTerrain(
00066          const DtVector& loc,
00067          DtSimpleIntersectorResult& result,
00068          int modelSet=0,
00069          bool useHighLod=false,
00070          bool includeEntities=false,
00071          std::vector<DtElementID>* ignoreList=0
00072          );
00073 
00074       virtual double heightAboveTerrain(
00075          DtElementID element,
00076          DtSimpleIntersectorResult& result,
00077          int modelSet=0,
00078          bool useHighLod=false,
00079          bool includeEntities=false,
00080          std::vector<DtElementID>* ignoreList=0
00081          );
00082 
00084       virtual double heightOfTerrain(
00085          const DtVector& loc,
00086          DtSimpleIntersectorResult& result,
00087          int modelSet=0,
00088          bool useHighLod=false);
00089 
00093       virtual bool hasLineOfSight(
00094          const DtVector& fromLoc,
00095          const DtVector& toLoc,
00096          DtSimpleIntersectorResult& result,
00097          int modelSet=0,
00098          bool useHighLod=false,
00099          bool includeEntities=false,
00100          std::vector<DtElementID>* ignoreList=0);
00101 
00102       virtual bool hasLineOfSight(
00103          DtElementID fromElem,
00104          DtElementID toElem,
00105          DtSimpleIntersectorResult& result,
00106          int modelSet=0,
00107          bool useHighLod=false,
00108          bool includeEntities=false,
00109          std::vector<DtElementID>* ignoreList=0);
00110 
00111    protected:
00112       DtSimpleIntersector(DtDe& de);
00113 
00115       virtual DtUniqueID sceneObjectIdFromElementId(
00116          DtElementID element, int modelSet);
00117 
00119       virtual DtVector positionFromSceneObjectId(DtUniqueID sceneObjectId);
00120 
00123       virtual bool getTerrainIntersection(
00124          const DtVector& loc,
00125          DtIntersectorResult& result,
00126          int modelSet=0,
00127          bool useHighLod=false,
00128          bool includeEntities=false,
00129          std::vector<DtElementID>* ignoreList=0);
00130 
00131       virtual void fillInElementType(DtSimpleIntersectorResult& result);
00132 
00133    protected:
00134       DtDe& myDe;
00135 
00136    }; 
00137 } 

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)