VR-Forces 4.10 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) 2020 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 
26  class DT_DLL_VRVOSG DtIndirectGeometryTextures : public osg::Referenced
27  {
28  public:
29  typedef std::vector<unsigned int> VectorTextureUnits;
30  typedef std::vector< osg::ref_ptr<osg::Texture> > VectorTextures;
31 
32  //Also defined in the indirect pixel shader. Needs to stay in sync if new modes are added.
34  {
35  Blend = 0,
36  Decal = 1
37  };
38 
39  public:
40 
42  DtIndirectGeometryTextures(const DtIndirectEffectTexturesTemplate* effectTexturesTemplate);
43 
44  private:
47 
50 
53 
54  protected:
56  virtual ~DtIndirectGeometryTextures();
57 
58  public:
60  virtual bool hasDiffuseTexture(void) const;
61 
63  virtual bool hasEffectTexture(int type) const;
64 
66  virtual int getNumEffectTextures() const;
67 
69  virtual osg::Texture * diffuseTexture(void) const;
70 
74  virtual unsigned int diffuseTextureUnit() const;
75 
77  virtual unsigned int diffuseTextureBlendMode() const;
78 
80  virtual osg::Texture * effectTextureForType(int type) const;
81 
83  virtual int effectTextureUnitForType(int type) const;
84 
86  virtual const DtIndirectEffectTexturesTemplate* effectTexturesTemplate(void) const;
87 
89  virtual void setDiffuseTexture(osg::Texture* texture);
90 
92  virtual void setDiffuseTextureUnit(unsigned int unit);
93 
95  virtual void setDiffuseTextureBlendMode(unsigned int mode);
96 
98  virtual void setEffectTexture(int type, osg::Texture* texture);
99 
101  virtual void setEffectTextureUnit(int type, unsigned int unit);
102 
104  virtual void setConfigurableEffectSuffixes(const std::vector<std::string>& suffixes);
105 
107  virtual const std::vector<std::string> configurableEffectSuffixes(void) const;
108 
110  virtual void getEffectTextureUnits(VectorTextureUnits& textureUnits) const;
111 
112  protected:
114  virtual osg::Texture * textureForIndex(int index) const;
115 
119  virtual int textureUnitForIndex(int index) const;
120 
121  protected:
122 
127 
129 
131 
132  std::vector<std::string> myConfigurableEffectSuffixes;
133 
134 
135  };
136 
138  typedef std::vector<DtIndirectGeometryTexturesRefPtr> OsgTexturesArray;
139 }
Diagonal crossing liens.
Definition: DtTacticalGraphicUtilities.h:93
VectorTextureUnits myEffectTextureUnits
Definition: DtIndirectGeometryTextures.h:130
VectorTextures myEffectTextures
Definition: DtIndirectGeometryTextures.h:128
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
osg::ref_ptr< osg::Texture > myDiffuseTexture
Definition: DtIndirectGeometryTextures.h:124
std::vector< unsigned int > VectorTextureUnits
Definition: DtIndirectGeometryTextures.h:29
int myDiffuseTextureUnit
Definition: DtIndirectGeometryTextures.h:125
std::vector< DtIndirectGeometryTexturesRefPtr > OsgTexturesArray
Definition: DtIndirectGeometryTextures.h:138
class to hold osg Textures (diffuse map texture + effect textures) basically just a list of osg textu...
Definition: DtIndirectGeometryTextures.h:26
IndirectTextureBlendModesSupported
Definition: DtIndirectGeometryTextures.h:33
const char int mode
Definition: ioapi.h:38
Contains DLL export macros.
std::vector< osg::ref_ptr< osg::Texture > > VectorTextures
Definition: DtIndirectGeometryTextures.h:30
unsigned int myDiffuseTextureBlendMode
Definition: DtIndirectGeometryTextures.h:126
const DtIndirectEffectTexturesTemplate * myEffectTexturesTemplate
Definition: DtIndirectGeometryTextures.h:123
std::vector< std::string > myConfigurableEffectSuffixes
Definition: DtIndirectGeometryTextures.h:132
Class that allows you to abstractly register effect texture types the effect texture types are client...
Definition: DtIndirectEffectTexturesTemplate.h:40
osg::ref_ptr< DtIndirectGeometryTextures > DtIndirectGeometryTexturesRefPtr
Definition: DtIndirectGeometryTextures.h:137

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)