VR-Forces 4.0.4 Class Documentation
include/vrfmodel/railObstructionFinder.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2010 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 
00008 
00010 
00011 #pragma once
00012 
00013 #include "vrfmodel/vrfmodelDefines.h"
00014 #include "vrfutil/railSegment.h"
00015 #include <list>
00016 #include "vrfobjcore/entityCollision.h"
00017 #include "vrfmodel/railObstructionInfo.h"
00018 #include "vrfutil/rwObjectTypeList.h"
00019 
00020 class DtVrfObjectManager;
00021 class DtPhysicalWorld;
00022 class DtVector;
00023 class DtCollisionDetector;
00024 class DtVrfObject;
00025 
00028 class DT_DLL_vrfmodel DtRailObstructionFinder
00029 {
00030 public:
00031 
00032    DtRailObstructionFinder(DtVrfObjectManager* objMgr, DtPhysicalWorld* world,
00033       DtVrfObject* hostEntity);
00034    virtual ~DtRailObstructionFinder();
00035 
00036    virtual void init(const DtRwObjectTypeList & passableObjectTypes);
00037 
00041    virtual void findObstructions(const DtRailSegmentList& rail, const DtVector& point,
00042       double distance, std::list<DtRailObstructionPtr>& result);
00043 
00044 protected:
00047    virtual bool fillObstructionList(const DtRailSegmentList& rail, const DtVector& startPoint,
00048       double testDistance, std::list<DtRailObstructionPtr>& collisionList);
00049 
00052    virtual bool findObstructionsAlongSegment(const DtRailSegment* segment, double testAltitude,
00053       double distFromSegStart, double testDistance, std::list<DtRailObstructionPtr>& collisionList);
00054 
00058    virtual void mergeObstructions(const std::list<DtRailObstructionPtr>& sourceList,
00059       std::list<DtRailObstructionPtr>& destiatnionList, double adjustmentDistance);
00060 
00062    void publishDebugPath(const DtVector& localStart,
00063       const DtVector& localEnd);
00064 
00065 private:
00067 
00068    DtRailObstructionFinder();
00069    DtRailObstructionFinder(const DtRailObstructionFinder& orig);
00070    DtRailObstructionFinder& operator=(const DtRailObstructionFinder& orig);
00072 
00073 protected:
00074    DtVrfObjectManager* myObjectManager;
00075    DtPhysicalWorld* myPhysicalWorld;
00076    DtCollisionDetector* myCollisionDetector;
00077    DtVrfObject* myHostEntity;
00078    DtVrfObject* myDebugRoute;
00079 };

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)