VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
boundingVolumeSupportPointCalculator.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
11 
12 #pragma once
13 
14 #include <vrfGuiCore/vrfGuiCore.h>
16 
17 #include <matrix/vlVector.h>
18 #include <map>
19 
20 class DtEntityType;
21 class Dt3dBoundingVolume;
22 
23 namespace makVrv
24 {
25  class DtDe;
26  class DtSceneObject;
27  class DtOsgExtrudedPolygonModel;
28 }
29 
30 namespace osg
31 {
32  class Node;
33 }
34 
35 namespace makVrf
36 {
43  {
44  public:
45  enum Framework
46  {
47  NoFramework = 0,
48  AllModels = 1,
49  DiGuyOnly = 2,
50  ArticulatedOnly = 3
51  };
52 
54  struct LRInfo
55  {
56  double distance;
60  bool hasOther;
61  };
62 
64  typedef std::map<double, LRInfo> LeftRightCalcs;
65 
66  typedef std::map<double, std::vector<DtVector> > PointsByHeight;
67 
68  public:
71 
74 
79  //
87  virtual bool calculateSupportPointsAndBoundingVolume(const DtEntityType&, makVrv::DtSceneObject*,
88  DtVector& left, DtVector& right, DtVector& other, Dt3dBoundingVolume&, const Framework&);
89 
90  protected:
92  virtual osg::Node* rootNodeFromSceneObject(makVrv::DtSceneObject*, bool& isDiGuy) const;
93 
94  virtual void calculatePossibleLeftRightPointsFromModel(const PointsByHeight&, const Dt3dBoundingVolume& bv,
95  LeftRightCalcs&) const;
96 
97  protected:
100  };
101 }
102 
Framework
Definition: boundingVolumeSupportPointCalculator.h:45
makVrv::DtDe & myDe
Definition: boundingVolumeSupportPointCalculator.h:99
OSG implementation of 3D Extruded Polygon.
Definition: DtOsgExtrudedPolygonModel.h:22
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
bool hasOther
Definition: boundingVolumeSupportPointCalculator.h:60
std::map< double, LRInfo > LeftRightCalcs
Information is by height of left/right points at the given object height.
Definition: boundingVolumeSupportPointCalculator.h:64
DtVector left
Definition: boundingVolumeSupportPointCalculator.h:57
DtVector right
Definition: boundingVolumeSupportPointCalculator.h:58
A DtSceneObject represents an object that can be positioned in the scene by (possibly) attaching it t...
Definition: DtSceneObject.h:44
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:72
double distance
Definition: boundingVolumeSupportPointCalculator.h:56
makVrv::DtOsgExtrudedPolygonModel * myFramework
Definition: boundingVolumeSupportPointCalculator.h:98
Small structure to keep information about possible left/right/other points from model points...
Definition: boundingVolumeSupportPointCalculator.h:54
std::map< double, std::vector< DtVector > > PointsByHeight
Definition: boundingVolumeSupportPointCalculator.h:66
Given a scene object, this class will iterate over the models, looking for an articulated model or di...
Definition: boundingVolumeSupportPointCalculator.h:42
DtVector other
Definition: boundingVolumeSupportPointCalculator.h:59
Contains various enum classes relating to model sets.

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)