VR-Forces 4.5 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DtModelInstance.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2012 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCore/vrvCore.h>
13 #include <vrvCore/DtUniqueID.h>
15 
16 #include <string>
17 #include <vector>
18 
19 #include <matrix/vlVector.h>
20 #include <matrix/vlTaitBryan.h>
21 
22 #include <boost/signal.hpp>
23 
24 namespace makVrv
25 {
26  class DtModelDefinition;
27  class DtDe;
28 
40  {
41  public:
42 
44  DtModelInstance(DtDe& de);
45 
47  virtual ~DtModelInstance();
48 
51  virtual bool realize(DtModelDefinition& definition);
52 
55  const std::string& realizedDefinitionName() const;
56 
58  virtual bool saveModelToFile(const std::string& filename) const;
59 
61  const DtVector& boundingBoxExtents() const;
62 
64  void getBoundingBoxExtents(double& x, double& y, double& z) const;
65 
67  const DtVector& boundingBoxCenter() const;
68 
70  void getBoundingBoxCenter(double& x, double& y, double& z) const;
71 
72  void getBoundingBoxComponents( DtVector& minimum, DtVector& maximum );
73 
76  virtual void setContributesToBound( bool trueOrFalse );
77 
80  bool contributesToBound() const;
81 
83  virtual void setVisible(bool isVisible) = 0;
84 
86  virtual void setBlendColor(float r, float g, float b, float a);
87 
91  virtual void enableColorBlending( bool b );
92 
93  //Utility function for reading a float from a definition.
94  static float readFloat(const std::string& paramName, const DtModelDefinition& definition);
95 
96  //Utility function for reading a Vec4 from a definition.
97  static DtVector readVector(const std::string& paramName, const DtModelDefinition& definition);
98 
99  boost::signal<void (DtModelInstance*)> signal_modelInstanceChanged;
100 
101  protected:
102 
110 
111  //Note about myColorBlendingEnabled: If this particular model has instancing enabled then this flag is set to false
112  // and color blending is handled by the instance manager.
114  float myBlendRed;
115  float myBlendBlue;
118 
119  };
120 
124  {
125  public:
126 
128  virtual ~DtModelInstanceCreator();
129 
131  virtual DtModelInstance* create(DtDe& de) = 0;
132 
133  protected:
134 
136  };
137 
138 }

Document ID: Generated on Thu Mar 23 18:54:12 EDT 2017 from SVN revision 174804
Copyright © 2005-2017 VT MÄK. All Rights Reserved (www.mak.com)