VR-Forces 5.0.1 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtTexturedPrimitiveStyle.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * Copyright (c) 2022 MAK Technologies, Inc.
3  * All rights reserved.
4  *****************************************************************************/
5 
9 
10 #pragma once
11 
14 #include <unordered_map>
15 #include <vector>
16 
17 namespace makVrv
18 {
19 
20  class DtOverlayResourceProvider;
21  class DtProjected2DTexturedEffect;
22 
26  {
27  public:
28 
31  unsigned int vertexCount, bool repeating = false );
32 
34  virtual ~DtTexturedPrimitiveStyle();
35 
37  virtual void add( unsigned int* indexPtr );
38 
40  virtual void remove( unsigned int index );
41 
43  virtual void render( int mode, unsigned int groupCount, bool geocentric,
44  float geocentricAlpha, const double cameraLocation[3],
45  const double positionMatrix[16],
46  const double projectionMatrix[16],
47  int offset);
48 
50  virtual void update( int renderMode );
51 
54 
56  virtual void set3DVertexPosition( unsigned int index, unsigned int vertex,
57  float x, float y, float z, float w );
58 
60  virtual void set3DVertexQuadPositions(unsigned int index,
61  float x, float y, float z, float w);
62 
64  virtual void get3DVertexPosition( unsigned int index, unsigned int vertex,
65  float& x, float& y, float& z, float& w ) const;
66 
68  virtual void set2DVertexPosition( unsigned int index, unsigned int vertex,
69  float x, float y );
70 
72  virtual void get2DVertexPosition( unsigned int index, unsigned int vertex,
73  float& x, float& y ) const;
74 
76  virtual void set2DOffsetRotation( unsigned int index,
77  unsigned int vertIndex, float angle );
78 
80  virtual void get2DOffsetRotation( unsigned int index,
81  unsigned int vertIndex, float& angle ) const;
82 
84  virtual void setColor( unsigned int index, unsigned int vertex,
85  float r, float g, float b, float a );
86 
88  virtual void getColor( unsigned int index, unsigned int vertex,
89  float& r, float& g, float& b, float& a ) const;
90 
92  virtual void setUVCoordinates( unsigned int index,
93  unsigned int vertIndex, float u, float v );
94 
96  virtual void getUVCoordinates( unsigned int index,
97  unsigned int vertIndex, float& u, float& v ) const;
98 
100 
101 
104 
107  virtual void setFillParameters( unsigned int index, void* fill,
108  unsigned int fullStipplePattern[32] = 0 );
109 
112  virtual void getFillParameters( unsigned int index, void*& fill,
113  unsigned int fullStipplePattern[32] ) const;
114 
117  virtual void setGroup( unsigned int index, float zFactor );
118 
121  virtual float group( unsigned int index ) const;
122 
125  virtual void setVisible( unsigned int index, bool visible );
126 
129  virtual bool visible (unsigned int index) const;
130 
132 
133  protected:
134 
136  virtual float* vertexData() const;
137 
139  virtual unsigned int vertexDataSize() const;
140 
141  protected:
142 
144  struct TextureInfo
145  {
147  : myRefCount(0)
148  , myTextureHandle(0)
149  {
150  // intentional nop
151  }
152 
155  std::vector<unsigned int> myIndicies;
156  };
157 
160  {
162  : myIndexPtr(0)
163  , myTextureInfo(0)
164  , myVisible(true)
165  {
166  // intentional nop
167  }
168 
169  unsigned int* myIndexPtr;
171  bool myVisible;
172  };
173 
174  typedef std::vector<DtOffsetColoredTexturedVertex> TexturedQuadVertexList;
175  typedef std::vector<TexturedQuadInfo> TexturedQuadInfoList;
176  typedef std::unordered_map<void*, TextureInfo> TextureIndexMap;
177 
184  };
185 
186 }
int myRefCount
Definition: DtTexturedPrimitiveStyle.h:153
std::vector< unsigned int > myIndicies
Definition: DtTexturedPrimitiveStyle.h:155
void * myTextureHandle
Definition: DtTexturedPrimitiveStyle.h:154
std::vector< TexturedQuadInfo > TexturedQuadInfoList
Definition: DtTexturedPrimitiveStyle.h:175
The abstract base class for the various primitive styles.
Definition: DtPrimitiveStyle.h:21
DtProjected2DTexturedEffect * myEffect
Definition: DtTexturedPrimitiveStyle.h:182
TexturedQuadVertexList myTexturedQuadsVertices
Definition: DtTexturedPrimitiveStyle.h:179
TexturedQuadInfo()
Definition: DtTexturedPrimitiveStyle.h:161
std::vector< DtOffsetColoredTexturedVertex > TexturedQuadVertexList
Definition: DtTexturedPrimitiveStyle.h:174
A extended precision 2D quad rendering effect.
Definition: DtProjected2DTexturedEffect.h:19
TextureIndexMap myTextureIndexMap
Definition: DtTexturedPrimitiveStyle.h:181
TextureInfo()
Definition: DtTexturedPrimitiveStyle.h:146
The overlay resource provider class provies resources for overlay drawing classes.
Definition: DtOverlayResourceProvider.h:23
#define DT_DLL_VRVGRAPHICS
Contains DLL export macros.
Definition: vrvGraphics.h:19
bool myVisible
Definition: DtTexturedPrimitiveStyle.h:171
DtOverlayResourceProvider & myResourceProvider
Definition: DtTexturedPrimitiveStyle.h:178
DT_DLL_vrfutil double angle(double vec1[3], double vec2[3])
A structure to hold information about a textured quad.
Definition: DtTexturedPrimitiveStyle.h:159
A style for rendering a primitive with a single texture applied.
Definition: DtTexturedPrimitiveStyle.h:25
TextureInfo * myTextureInfo
Definition: DtTexturedPrimitiveStyle.h:170
bool myRepeating
Definition: DtTexturedPrimitiveStyle.h:183
A structure to contain per texture data.
Definition: DtTexturedPrimitiveStyle.h:144
unsigned int * myIndexPtr
Definition: DtTexturedPrimitiveStyle.h:169
TexturedQuadInfoList myTexturedQuads
Definition: DtTexturedPrimitiveStyle.h:180
const char int mode
Definition: ioapi.h:38
std::unordered_map< void *, TextureInfo > TextureIndexMap
Definition: DtTexturedPrimitiveStyle.h:176
Contains the makVrv::DtTextured2DRenderer class declaration.
voidpf uLong offset
Definition: ioapi.h:42
Contains the makVrv::DtPrimitiveStyle class declaration.

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)