VR-Forces 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) 2023 MAK Technologies, Inc.
3  * All rights reserved.
4  *****************************************************************************/
5 
9 
10 #pragma once
11 
15 
16 #include <unordered_map>
17 
18 #include <vector>
19 
20 #include <matrix/vlVector.h>
21 
22 namespace makVrv
23 {
24 
25  class DtOverlayResourceProvider;
26  class DtProjected2DTexturedEffect;
27  struct DtObserverRenderData;
28 
32  {
33  public:
34 
37  unsigned int vertexCount, bool repeating = false );
38 
40  virtual ~DtTexturedPrimitiveStyle();
41 
43  virtual void add( unsigned int* indexPtr );
44 
46  virtual void remove( unsigned int index );
47 
50  virtual void render(int mode, unsigned int groupCount, bool geocentric,
51  float geocentricAlpha, const double cameraLocation[3],
52  const DtObserverRenderData& observerRenderData,
53  const double positionMatrix[16], const double projectionMatrix[16],
54  const int viewport[4], int offset) override;
55 
57  virtual void update( int renderMode );
58 
61 
63  virtual void set3DVertexPosition( unsigned int index, unsigned int vertex,
64  float x, float y, float z, float w );
65 
67  virtual void set3DVertexQuadPositions(unsigned int index,
68  float x, float y, float z, float w);
69 
71  virtual void get3DVertexPosition( unsigned int index, unsigned int vertex,
72  float& x, float& y, float& z, float& w ) const;
73 
75  virtual void set2DVertexPosition( unsigned int index, unsigned int vertex,
76  float x, float y );
77 
79  virtual void get2DVertexPosition( unsigned int index, unsigned int vertex,
80  float& x, float& y ) const;
81 
83  virtual void set2DOffsetRotation( unsigned int index,
84  unsigned int vertIndex, float angle );
85 
87  virtual void get2DOffsetRotation( unsigned int index,
88  unsigned int vertIndex, float& angle ) const;
89 
91  virtual void setColor( unsigned int index, unsigned int vertex,
92  float r, float g, float b, float a );
93 
95  virtual void getColor( unsigned int index, unsigned int vertex,
96  float& r, float& g, float& b, float& a ) const;
97 
99  virtual void setUVCoordinates( unsigned int index,
100  unsigned int vertIndex, float u, float v );
101 
103  virtual void getUVCoordinates( unsigned int index,
104  unsigned int vertIndex, float& u, float& v ) const;
105 
112  virtual void projectUVCoordinates(unsigned int index, const DtVector& origin,
113  const DtVector& axisU, const DtVector& axisV, float scale) override;
114 
116 
117 
120 
123  virtual void setFillParameters( unsigned int index, unsigned int fullStipplePattern[32] = 0 ) override;
124 
127  virtual void getFillParameters( unsigned int index, unsigned int fullStipplePattern[32] ) const override;
128 
136  virtual void setFillPatternFrequency(unsigned int index, float frequency) override;
137 
139  virtual void setTextureHandle( unsigned int index, DtTextureInterface* newTextureHandle ) override;
140 
142  virtual DtTextureInterface* findTextureHandle( unsigned int index ) const override;
143 
146  virtual void setGroup( unsigned int index, float zFactor );
147 
150  virtual float group( unsigned int index ) const;
151 
154  virtual void setVisible( unsigned int index, bool visible );
155 
158  virtual bool visible (unsigned int index) const;
159 
161 
162  protected:
163 
165  virtual float* vertexData() const;
166 
168  virtual unsigned int vertexDataSize() const;
169 
170  protected:
171 
173  struct TextureInfo
174  {
176  : myIndexPtr( nullptr )
177  , myTextureHandle( nullptr )
178  {
179  // intentional nop
180  }
181  unsigned int* myIndexPtr;
183  std::vector<unsigned int> myIndicies;
184  };
185 
188  {
190  : myIndexPtr(nullptr)
191  , myTextureInfo(nullptr)
192  , myVisible(true)
193  {
194  // intentional nop
195  }
196 
197  unsigned int* myIndexPtr;
199  bool myVisible;
200  };
201 
202  typedef std::vector<DtOffsetColoredTexturedVertex> TexturedPrimitiveVertexList;
203  typedef std::vector<TexturedQuadInfo> TexturedPrimitiveInfoList;
204  typedef std::list<TextureInfo> TextureList;
205 
212  };
213 
214 }
std::vector< unsigned int > myIndicies
Definition: DtTexturedPrimitiveStyle.h:183
std::vector< DtOffsetColoredTexturedVertex > TexturedPrimitiveVertexList
Definition: DtTexturedPrimitiveStyle.h:202
The abstract base class for the various primitive styles.
Definition: DtPrimitiveStyle.h:25
unsigned int * myIndexPtr
Definition: DtTexturedPrimitiveStyle.h:181
DtProjected2DTexturedEffect * myEffect
Definition: DtTexturedPrimitiveStyle.h:210
voidpf uLong int origin
Definition: ioapi.h:42
TexturedQuadInfo()
Definition: DtTexturedPrimitiveStyle.h:189
Interface for a texture. Used to pass in a texture to vrvGraphics.
Definition: DtTextureInterface.h:24
A extended precision 2D quad rendering effect.
Definition: DtProjected2DTexturedEffect.h:18
TexturedPrimitiveInfoList myTexturedPrimitives
Definition: DtTexturedPrimitiveStyle.h:208
TexturedPrimitiveVertexList myTexturedPrimitivesVertices
Definition: DtTexturedPrimitiveStyle.h:207
std::vector< TexturedQuadInfo > TexturedPrimitiveInfoList
Definition: DtTexturedPrimitiveStyle.h:203
TextureInfo()
Definition: DtTexturedPrimitiveStyle.h:175
The overlay resource provider class provides resources for overlay drawing classes.
Definition: DtOverlayResourceProvider.h:28
#define DT_DLL_VRVGRAPHICS
Contains DLL export macros.
Definition: vrvGraphics.h:19
bool myVisible
Definition: DtTexturedPrimitiveStyle.h:199
DtOverlayResourceProvider & myResourceProvider
Definition: DtTexturedPrimitiveStyle.h:206
DT_DLL_vrfutil double angle(double vec1[3], double vec2[3])
std::list< TextureInfo > TextureList
Definition: DtTexturedPrimitiveStyle.h:204
A structure to hold information about a textured quad.
Definition: DtTexturedPrimitiveStyle.h:187
A style for rendering a primitive with a single texture applied.
Definition: DtTexturedPrimitiveStyle.h:31
TextureInfo * myTextureInfo
Definition: DtTexturedPrimitiveStyle.h:198
bool myRepeating
Definition: DtTexturedPrimitiveStyle.h:211
A structure to contain per texture data.
Definition: DtTexturedPrimitiveStyle.h:173
unsigned int * myIndexPtr
Definition: DtTexturedPrimitiveStyle.h:197
DtTextureInterface * myTextureHandle
Definition: DtTexturedPrimitiveStyle.h:182
const char int mode
Definition: ioapi.h:38
Contains the makVrv::DtTextured2DRenderer class declaration.
TextureList myTextureList
Definition: DtTexturedPrimitiveStyle.h:209
Contains the makVrv::DtOffsetColoredTexturedVertex class declaration.
voidpf uLong offset
Definition: ioapi.h:42
Definition: DtCommonRenderData.h:33
Contains the makVrv::DtPrimitiveStyle class declaration.

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)