VR-Forces 4.0.4 Class Documentation
include/vrfobjcore/pathMetric.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2004 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 /*******************************************************************************
00006 ** $RCSfile: pathMetric.h,v $ $Revision: 1.4 $ $State: Exp $
00007 *******************************************************************************/
00008 
00012 
00014 
00015 #ifndef pathMetric_H_
00016 #define pathMetric_H_
00017 
00018 #include "geometry/point.h"
00019 #include "vrfobjcore/pathMetricFact.h"
00020 
00021 class DtVrfObject;
00022 class DtChordIntersectionRecord;
00023 
00046 #include "vrfobjcore/vrfobjcoreDefines.h"
00047 class DT_DLL_vrfobjcore DtPathMetric
00048 {
00049 private:
00051    DtPathMetric();
00053    DtPathMetric(const DtPathMetric& orig);
00055    DtPathMetric& operator=(const DtPathMetric& orig);
00056 
00057 public:
00059    DtPathMetric(DtVrfObject* entity);
00060 
00062    virtual ~DtPathMetric();
00063    
00065    virtual bool init();
00066 
00068    virtual double transitionCost(const DtPoint& startPoint, 
00069          const DtPoint& endPoint) const = 0;
00070 
00074    virtual double turningCost(double cosAngle) const = 0;
00075 
00086    virtual double heuristic(const DtPoint& point, const DtPoint& goalPoint) const;
00087 
00088    virtual DtVrfObject* entity();
00089    virtual const DtVrfObject* entity() const;
00090 
00092    static void addPathMetricCreatorFcn(const DtString& type, 
00093       DtPathMetricCreatorFcn fcn);
00094 
00095    static DtPathMetricFactory* factory();
00096    static void setFactory(DtPathMetricFactory* factory);
00097 
00102    static DtPathMetric* createPathMetric(const DtString& type, DtVrfObject* entity);
00104 
00105 protected:
00106    DtVrfObject* myEntity;
00107    static DtPathMetricFactory* theFactory;
00108 };
00109 
00110 #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)