VR-Forces 4.0.4 Class Documentation
include/vrfobjcore/vrfObjGeom.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2007 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 /*******************************************************************************
00006 ** $RCSfile: vrfObjGeom.h,v $ $Revision: 1.31 $ $State: Exp $
00007 *******************************************************************************/
00008 #ifndef vrfObjGeom_H_
00009 #define vrfObjGeom_H_
00010 
00013 
00014 #include "vrfutil/boundingGeom.h"
00015 #include "vrfutil/rwBoolean.h"
00016 #include "vrfutil/rdrWritr.h"
00017 
00018 #include "vrfutil/lclVecIter.h"
00019 #include "vrfutil/lclVtxList.h"
00020 
00021 class Coordinate_System;
00022 class DtRwVectorIterator;
00023 class DtLocalVertexIterator;
00024 class DtSimObjectStateRepository;
00025 
00030 #include "vrfobjcore/vrfobjcoreDefines.h"
00031 class DT_DLL_vrfobjcore DtVrfObjectGeometry : public DtReaderWriter
00032 {
00033 private:
00035    DtVrfObjectGeometry();
00036 
00037 public:
00038    
00040    DtVrfObjectGeometry(DtSimObjectStateRepository* sr,
00041       const DtString& rwName = DtString::nullString(), 
00042       DtReaderWriterRegistry* parentRegistry = 0);
00043 
00045    DtVrfObjectGeometry(const DtVrfObjectGeometry& orig, 
00046       const DtString& rwName = DtString::nullString(), 
00047       DtReaderWriterRegistry* parentRegistry = 0);
00048 
00050    const DtVrfObjectGeometry& operator=(DtVrfObjectGeometry& orig);
00051 
00053    virtual ~DtVrfObjectGeometry();
00054 
00056    virtual DtVrfObjectGeometry* clone(
00057       const DtString& rwName = DtString::nullString(), 
00058       DtReaderWriterRegistry* parentRegistry = 0) const;
00059 
00061    virtual const DtSimBoundingGeometry& boundingGeometry() const;
00062    virtual DtSimBoundingGeometry& boundingGeometry();
00063    virtual void setBoundingGeometry(const DtSimBoundingGeometry& bounds);
00064 
00067    virtual bool closedFigure() const;
00068    virtual void setClosedFigure(bool closed);
00069 
00072    virtual bool projection() const;
00073    virtual void setProjection(bool projection);
00074 
00076    virtual void removeAllObjectVertices();
00077 
00082    virtual void setObjectVertices(const DtLocalVertexList& vertices);
00083    virtual void setObjectVertices(const DtList& vertices);
00084    virtual const DtLocalVertexList& objectVertices() const;
00085    virtual DtLocalVertexList& objectVertices();
00087 
00088    virtual const DtLocalVectorIterator& objectVertexIterator() const;
00089 
00090 
00091    //******
00092    const DtVertexList& oldWorld() const;
00093    
00096    virtual bool worldPointInsideBoundingGeometry(
00097       const DtVector& worldPoint, const DtVector& objectWorldLocation,
00098       const DtTaitBryan& objectWorldOrientation) const;
00099 
00103    virtual double worldDistSquaredTo(const DtVector& point) const;
00104 
00107    virtual bool worldGetClosestVertex(const DtVector& point, 
00108       DtVector& vertex) const;
00109 
00112    virtual bool localGetClosestVertex(const DtVector& point, DtVector& vertex) const;
00113 
00118    virtual bool worldGetClosestLine(const DtVector& point, 
00119       DtVector& linePt1, DtVector& linePt2) const;
00120 
00125    virtual bool localGetClosestLine(const DtVector& point, 
00126       DtVector& linePt1, DtVector& linePt2) const;
00127 
00132    virtual const DtSimBoundingGeometry& worldBoundingGeometry() const;
00133    virtual DtSimBoundingGeometry& worldBoundingGeometry();
00134    virtual void setWorldBoundingGeometry(const DtSimBoundingGeometry& bounds);
00136 
00137    virtual void removeVertex(int iIndex);
00138 
00152    virtual bool calculateBoundingVolume(const DtVertexList& vertices, 
00153       DtSimBoundingGeometry& boundingGeometry);
00154 
00165 
00166    virtual const DtSimBoundingGeometry& localBoundingGeometry() const;
00167    virtual DtSimBoundingGeometry& localBoundingGeometry();
00168    virtual void setLocalBoundingGeometry(const DtSimBoundingGeometry& bounds);
00169 
00170    virtual double distSquaredTo(const DtVector& testPoint) const;
00171 
00172 protected:
00173 
00175    virtual void getSelf(DtlObjPtr args, const DtFilename& searchPath,
00176       const DtVariableBindingsList& variableBindings);
00177 
00179    void removeAllOldWorldVertices();
00180 
00181 protected:
00182 
00183    DtLocalVertexList     myObjectVertices;
00184    DtSimBoundingGeometry myBoundingGeometry;
00185 
00186    DtRwBoolean           myClosedFigure;
00187    DtRwBoolean           myProjection;
00188 
00191    DtVertexList          myOldWorld;
00192 
00193    DtSimObjectStateRepository* myStateRep;
00194 };
00195 
00196 inline const DtVertexList& DtVrfObjectGeometry::oldWorld() const
00197 {
00198    return myOldWorld;
00199 }
00200 
00201 #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)