VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtIndirectGeometryTextures.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2018 VT-MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvOsg/vrvOsg.h>
13 
14 #include <osg/Texture>
15 
16 #include <vector>
17 
18 namespace makVrv
19 {
20  class DtIndirectEffectTexturesTemplate;
21 
22 
27  class DT_DLL_VRVOSG DtIndirectGeometryTextures : public osg::Referenced
28  {
29  public:
30  typedef std::vector<unsigned int> VectorTextureUnits;
31  typedef std::vector< osg::ref_ptr<osg::Texture> > VectorTextures;
32 
33  public:
34 
36  DtIndirectGeometryTextures(const DtIndirectEffectTexturesTemplate* effectTexturesTemplate);
37 
38  private:
41 
44 
47 
48  protected:
50  virtual ~DtIndirectGeometryTextures();
51 
52  public:
54  virtual bool hasDiffuseTexture(void) const;
55 
57  virtual bool hasEffectTexture(int type) const;
58 
60  virtual int getNumEffectTextures() const;
61 
63  virtual osg::Texture * diffuseTexture(void) const;
64 
68  virtual unsigned int diffuseTextureUnit() const;
69 
71  virtual osg::Texture * effectTextureForType(int type) const;
72 
74  virtual int effectTextureUnitForType(int type) const;
75 
77  virtual const DtIndirectEffectTexturesTemplate* effectTexturesTemplate(void) const;
78 
80  virtual void setDiffuseTexture(osg::Texture* texture);
81 
83  virtual void setDiffuseTextureUnit(unsigned int unit);
84 
86  virtual void setEffectTexture(int type, osg::Texture* texture);
87 
89  virtual void setEffectTextureUnit(int type, unsigned int unit);
90 
92  virtual void setConfigurableEffectSuffixes(const std::vector<std::string>& suffixes);
93 
95  virtual const std::vector<std::string> configurableEffectSuffixes(void) const;
96 
98  virtual void getEffectTextureUnits(VectorTextureUnits& textureUnits) const;
99 
100  protected:
102  virtual osg::Texture * textureForIndex(int index) const;
103 
107  virtual int textureUnitForIndex(int index) const;
108 
109  protected:
110 
114 
116 
118 
119  std::vector<std::string> myConfigurableEffectSuffixes;
120 
121 
122  };
123 
125  typedef std::vector<DtIndirectGeometryTexturesRefPtr> OsgTexturesArray;
126 }
Diagonal crossing liens.
Definition: DtTacticalGraphicUtilities.h:93
VectorTextureUnits myEffectTextureUnits
Definition: DtIndirectGeometryTextures.h:117
VectorTextures myEffectTextures
Definition: DtIndirectGeometryTextures.h:115
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
osg::ref_ptr< osg::Texture > myDiffuseTexture
Definition: DtIndirectGeometryTextures.h:112
std::vector< unsigned int > VectorTextureUnits
Definition: DtIndirectGeometryTextures.h:30
int myDiffuseTextureUnit
Definition: DtIndirectGeometryTextures.h:113
std::vector< DtIndirectGeometryTexturesRefPtr > OsgTexturesArray
Definition: DtIndirectGeometryTextures.h:125
class to hold osg Textures (diffuse map texture + effect textures) basically just a list of osg textu...
Definition: DtIndirectGeometryTextures.h:27
Contains DLL export macros.
std::vector< osg::ref_ptr< osg::Texture > > VectorTextures
Definition: DtIndirectGeometryTextures.h:31
const DtIndirectEffectTexturesTemplate * myEffectTexturesTemplate
Definition: DtIndirectGeometryTextures.h:111
std::vector< std::string > myConfigurableEffectSuffixes
Definition: DtIndirectGeometryTextures.h:119
Class that allows you to abstractly register effect texture types the effect texture types are client...
Definition: DtIndirectEffectTexturesTemplate.h:38
osg::ref_ptr< DtIndirectGeometryTextures > DtIndirectGeometryTexturesRefPtr
Definition: DtIndirectGeometryTextures.h:124

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)