VR-Forces 4.7 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
osgToBullet.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 
11 #pragma once
12 
13 
16 #include <btBulletCollisionCommon.h>
17 #include <btBulletDynamicsCommon.h>
18 #include <memory>
20 #include <vlutil/vlSmartPointers.h>
21 #include <vlutil/vlFilename.h>
22 #include <geometry/surface.h>
23 
25 #include <osg/Matrix>
26 #include <osg/NodeVisitor>
27 #include <vrvOsg/DtOsgRenderer.h>
29 #include <vrvOsg/DtSceneRoot.h>
32 
34 #include <vlutil/vlSmartPointers.h>
35 
37 #include <memory>
38 
39 #include <boost/shared_ptr.hpp>
40 
41 class btTriangleMesh;
42 class Coordinate_System;
44 
45 namespace osg
46 {
47  class Node;
48  class LOD;
49 }
50 
51 typedef std::list< boost::shared_ptr<btCollisionObject> > DtCollisionObjectList;
52 
54 
56 //This should move to surface.h
58 
60  : public boost::enable_shared_from_this<DtCollisionObjectInterface>
61 {
62 public:
63  typedef std::vector< boost::shared_ptr<makVrv::DtDynamicTerrainFeature> > DynamicFeatures;
64 
66  virtual ~DtCollisionObjectInterface();
67 
69  virtual boost::shared_ptr<btCollisionShape> bulletCollisionShape() const = 0;
70 
72  virtual const btTransform& worldTransform() const = 0;
73 
76  virtual bool buildBvh() = 0;
77 
79  virtual bool enabled() const = 0;
80 
82  virtual unsigned int numberOfTriangles() const = 0;
83 
85  virtual double radius() const = 0;
86 
88  virtual DtSurface triangleSurface(unsigned int triangleIndex) const = 0;
89 
91  virtual DynamicFeatures dynamicFeatures() const = 0;
92 };
93 
94 
96 {
97 public:
99  static std::auto_ptr<DtVrfSimTerrainProcessor> Create();
100 
101  static std::auto_ptr<DtVrfSimTerrainProcessor> Create(DtVantageTerrainEngine&);
102 
104  virtual ~DtVrfSimTerrainProcessor();
105 
106  virtual unsigned int numberOfTriangles() const = 0;
107 
108  virtual void setDefaultSurface(const DtSurface&) = 0;
109  virtual void setMatrix(const osg::Matrix&) = 0;
110  virtual void setTraversalMode(osg::NodeVisitor::TraversalMode) = 0;
111  virtual void setVisitorType(osg::NodeVisitor::VisitorType) = 0;
112  virtual void setSurfaceCharacteristicsFile(const DtFilename&) = 0;
113  virtual void setSurfacesToIgnore(const std::vector<std::string>&) = 0;
114 
115  virtual void setTreatPagedLODAsLOD(bool) = 0;
116  virtual void setCheckGeodesForSurfaces(bool) = 0;
117  virtual void setUseQuantization(bool) = 0;
118  virtual void setBuildBvhNow(bool) = 0;
119  virtual void setFilterTransparentPolygons(bool) = 0;
120 
121  virtual makVrv::DtDynamicTerrainWorld::FeatureHandle createTerrainObjects(osg::Node*) = 0;
122 
123  virtual void getCollisionObjects(DtCollisionObjectList& objs) = 0;
124 
125 protected:
127 
129 };

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)