VR-Forces 5.0.1 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
simModelRepository.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2017 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 
11 #pragma once
12 
15 
17 
20 
21 #include <vlutil/vlMachineTypes.h>
22 
23 #include <boost/unordered_map.hpp>
24 
25 #include <tbb/spin_rw_mutex.h>
26 
27 class DtFilename;
28 class DtEntityType;
30 class DtAppearance;
32 
34 DT_DLL_vantageTerrainImplementation std::size_t hash_value(const DtAppearance& appearance);
35 DT_DLL_vantageTerrainImplementation bool operator== (const DtAppearance& app1, const DtAppearance& app2);
36 
39 {
40 public:
43 
45  virtual void lookupGeometries(
46  const DtFilename& file, const DtAppearance& appearance,
47  DtCollisionObjectList& objects);
48 
49 protected:
50  virtual makVrv::DtOsgArticulatedModel* createModel(const DtFilename& file) const;
51  virtual DtFilename surfaceCharacteristicsFileName(const DtFilename& input) const;
52  virtual DtString modelDefinitionName(const DtFilename& file) const;
53 
54  virtual void setModelState(makVrv::DtOsgArticulatedModel& model, DtAppearance appearance) const;
55  virtual void setModelAttributeState(makVrv::DtOsgArticulatedModel& model,
56  makVrv::DtEntityAppearanceMapper& mapper, const DtAppearance& app, DtAppearAttribute attr) const;
57  virtual osg::Node* getRootNode(makVrv::DtOsgArticulatedModel& model) const;
58  virtual void parseTerrain(osg::Node*, const DtFilename& surfCharFile, DtCollisionObjectList& output) const;
59 
61  class EntityInfo
62  {
63  public:
64  explicit EntityInfo(DtSimModelRepository& rep, const DtFilename& file);
65 
66  void collisionObjectsForAppearance(DtAppearance appearance, DtCollisionObjectList& objects);
67 
68  protected:
69  DtCollisionObjectList createAppearance(DtAppearance appearance);
70 
71  typedef boost::unordered_map<DtAppearance, DtCollisionObjectList> AppearanceMap;
72 
73  mutable tbb::spin_rw_mutex myMutex;
75  boost::scoped_ptr<makVrv::DtOsgArticulatedModel> myModel;
78  };
79 
80  friend class EntityInfo;
81 
82  typedef boost::unordered_map<DtFilename, boost::shared_ptr<EntityInfo> > EntityMap;
83 
85  boost::scoped_ptr<makVrv::DtEntityAppearanceMapperFactory> myAppearanceMapperFactory;
86 
87  mutable tbb::spin_rw_mutex myMutex;
89 };
boost::unordered_map< DtAppearance, DtCollisionObjectList > AppearanceMap
Definition: simModelRepository.h:71
Manager for bullet objects created from vrv models.
Definition: simModelRepository.h:38
boost::scoped_ptr< makVrv::DtEntityAppearanceMapperFactory > myAppearanceMapperFactory
Definition: simModelRepository.h:85
DtFilename mySurfaceCharacteristicsFile
Definition: simModelRepository.h:76
Decoder for converting a particular entity type&#39;s appearance bits into generic enumerated values...
Definition: DtEntityAppearanceMapper.h:25
Allows manipulating a terrain object. Returned by functions which create terrain objects.
Definition: terrainImplementation.h:141
DT_DLL_terrainCS bool operator==(const DtDegMinSec &lhs, const DtDegMinSec &rhs)
Contains makVrv::DtEntityAppearanceMapper class.
An articulated model manipulator for controlling an articulated model. Supports indirect rendering of...
Definition: DtOsgArticulatedModel.h:69
DtVantageTerrainEngine & myVantageTerrainEngine
Definition: simModelRepository.h:84
Holds all the info for a given entity model.
Definition: simModelRepository.h:61
Contains makVrv::DtEntityAppearanceMapperFactory class.
tbb::spin_rw_mutex myMutex
Definition: simModelRepository.h:87
std::size_t hash_value(const DtNodeBoundingInfoPtr &p)
needed for boost::unordered
Definition: boundingNodeInfo.h:91
EntityMap myEntityMap
Definition: simModelRepository.h:88
#define DT_DLL_vantageTerrainImplementation
This file is used to determine how to build.
Definition: vantageTerrainImplementationDefines.h:28
AppearanceMap myAppearances
Definition: simModelRepository.h:77
tbb::spin_rw_mutex myMutex
Definition: simModelRepository.h:73
std::list< boost::shared_ptr< btCollisionObject > > DtCollisionObjectList
Definition: osgToBullet.h:51
boost::scoped_ptr< makVrv::DtOsgArticulatedModel > myModel
Definition: simModelRepository.h:75
This class wraps the VR-Vantage Display Engine, and uses as a terrain loader and intersector. This is the terrain engine that powers the DtVantageTerrainImplementation. The DtVantageTerrainEngine runs the DtDe it its own thread, and processes commands thought the command queue.
Definition: vantageTerrainEngine.h:99
Contains the makVrv::DtOsgArticulatedModel class declaration.
boost::unordered_map< DtFilename, boost::shared_ptr< EntityInfo > > EntityMap
Definition: simModelRepository.h:82
DtSimModelRepository & myModelRepository
Definition: simModelRepository.h:74

Document ID: Generated on Mon Jun 20 00:38:30 EDT 2022 from SVN revision 244029
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)