This file is indexed.

/usr/include/oce/Graphic3d_ArrayOfPrimitives.hxx is in liboce-visualization-dev 0.18.2-2build1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
// This file is generated by WOK (CPPExt).
// Please do not edit this file; modify original file instead.
// The copyright and license terms as defined for the original file apply to 
// this header file considered to be the "object code" form of the original source.

#ifndef _Graphic3d_ArrayOfPrimitives_HeaderFile
#define _Graphic3d_ArrayOfPrimitives_HeaderFile

#include <Standard.hxx>
#include <Standard_DefineHandle.hxx>
#include <Handle_Graphic3d_ArrayOfPrimitives.hxx>

#include <Graphic3d_IndexBuffer.hxx>
#include <Graphic3d_Buffer.hxx>
#include <Graphic3d_BoundBuffer.hxx>
#include <Graphic3d_TypeOfPrimitiveArray.hxx>
#include <Standard_Integer.hxx>
#include <Standard_Byte.hxx>
#include <MMgt_TShared.hxx>
#include <Standard_Boolean.hxx>
#include <Standard_Real.hxx>
#include <Standard_ShortReal.hxx>
#include <Standard_CString.hxx>
class Standard_OutOfRange;
class Graphic3d_InitialisationError;
class Graphic3d_Group;
class gp_Pnt;
class Quantity_Color;
class gp_Dir;
class gp_Pnt2d;


//! This class furnish services to defined and fill an
//! array of primitives compatible with the use of
//! the OPENGl glDrawArrays() or glDrawElements() functions.
//! NOTE that the main goal of this kind of primitive
//! is to avoid multiple copies of datas between
//! each layer of the software.
//! So the array datas exist only one time and the use
//! of SetXxxxxx() methods enable to change dynamically
//! the aspect of this primitive.
//!
//! Advantages are :
//! 1) Decrease strongly the loading time.
//! 2) Decrease strongly the display time using optimized Opengl
//! primitives.
//! 3) Enable to change dynamically the components of the primitive
//! (vertice,normal,color,texture coordinates).
//! 4) Add true triangle and quadrangle strips or fans capabilities.
class Graphic3d_ArrayOfPrimitives : public MMgt_TShared
{

public:

  
  Standard_EXPORT   void Destroy() ;
~Graphic3d_ArrayOfPrimitives()
{
  Destroy();
}
  
  //! Adds a vertice in the array.
  //! returns the actual vertex number.
      Standard_Integer AddVertex (const gp_Pnt& aVertice) ;
Standard_Integer AddVertex (const Graphic3d_Vec3& theVertex);
  
  //! Adds a vertice in the array.
  //! returns the actual vertex number.
      Standard_Integer AddVertex (const Standard_Real X, const Standard_Real Y, const Standard_Real Z) ;
  
  //! Adds a vertice in the array.
  //! returns the actual vertex number.
  Standard_EXPORT   Standard_Integer AddVertex (const Standard_ShortReal X, const Standard_ShortReal Y, const Standard_ShortReal Z) ;
  
  //! Adds a vertice and vertex color in the vertex array.
  //! returns the actual vertex number.
  //! Warning: <aColor> is ignored when the <hasVColors>
  //! constructor parameter is FALSE
  Standard_EXPORT   Standard_Integer AddVertex (const gp_Pnt& aVertice, const Quantity_Color& aColor) ;
  
  //! Adds a vertice and vertex color in the vertex array.
  //! returns the actual vertex number.
  //! Warning: <aColor> is ignored when the <hasVColors>
  //! constructor parameter is FALSE
  //! aColor = Alpha << 24 + Blue << 16 + Green << 8 + Red
  //! On all architecture proccers type (x86 or SPARC) you can
  //! use this byte order.
  Standard_EXPORT   Standard_Integer AddVertex (const gp_Pnt& aVertice, const Standard_Integer aColor) ;
  
  //! Adds a vertice and vertex normal in the vertex array.
  //! returns the actual vertex number.
  //! Warning: <aNormal> is ignored when the <hasVNormals>
  //! constructor parameter is FALSE.
      Standard_Integer AddVertex (const gp_Pnt& aVertice, const gp_Dir& aNormal) ;
  
  //! Adds a vertice and vertex normal in the vertex array.
  //! returns the actual vertex number.
  //! Warning: <aNormal> is ignored when the <hasVNormals>
  //! constructor parameter is FALSE.
      Standard_Integer AddVertex (const Standard_Real X, const Standard_Real Y, const Standard_Real Z, const Standard_Real NX, const Standard_Real NY, const Standard_Real NZ) ;
  
  //! Adds a vertice and vertex normal in the vertex array.
  //! returns the actual vertex number.
  //! Warning: <aNormal> is ignored when the <hasVNormals>
  //! constructor parameter is FALSE.
  Standard_EXPORT   Standard_Integer AddVertex (const Standard_ShortReal X, const Standard_ShortReal Y, const Standard_ShortReal Z, const Standard_ShortReal NX, const Standard_ShortReal NY, const Standard_ShortReal NZ) ;
  
  //! Adds a vertice,vertex normal and color in the vertex array.
  //! returns the actual vertex number.
  //! Warning: <aNormal> is ignored when the <hasVNormals>
  //! constructor parameter is FALSE.
  //! <aColor> is ignored when the <hasVColors>
  //! constructor parameter is FALSE
  Standard_EXPORT   Standard_Integer AddVertex (const gp_Pnt& aVertice, const gp_Dir& aNormal, const Quantity_Color& aColor) ;
  
  //! Adds a vertice,vertex normal and color in the vertex array.
  //! returns the actual vertex number.
  //! Warning: <aNormal> is ignored when the <hasVNormals>
  //! constructor parameter is FALSE.
  //! <aColor> is ignored when the <hasVColors>
  //! constructor parameter is FALSE
  //! aColor = Alpha << 24 + Blue << 16 + Green << 8 + Red
  //! On all architecture proccers type (x86 or SPARC) you can
  //! use this byte order.
  Standard_EXPORT   Standard_Integer AddVertex (const gp_Pnt& aVertice, const gp_Dir& aNormal, const Standard_Integer aColor) ;
  
  //! Adds a vertice and vertex texture in the vertex array.
  //! returns the actual vertex number.
  //! <aTexel> is ignored when the <hasVTexels>
  //! constructor parameter is FALSE.
      Standard_Integer AddVertex (const gp_Pnt& aVertice, const gp_Pnt2d& aTexel) ;
  
  //! Adds a vertice and vertex texture coordinates in the vertex array.
  //! returns the actual vertex number.
  //! <aTexel> is ignored when the <hasVTexels>
  //! constructor parameter is FALSE.
      Standard_Integer AddVertex (const Standard_Real X, const Standard_Real Y, const Standard_Real Z, const Standard_Real TX, const Standard_Real TY) ;
  
  //! Adds a vertice and vertex texture coordinates in the vertex array.
  //! returns the actual vertex number.
  //! <aTexel> is ignored when the <hasVTexels>
  //! constructor parameter is FALSE.
  Standard_EXPORT   Standard_Integer AddVertex (const Standard_ShortReal X, const Standard_ShortReal Y, const Standard_ShortReal Z, const Standard_ShortReal TX, const Standard_ShortReal TY) ;
  
  //! Adds a vertice,vertex normal and texture in the vertex array.
  //! returns the actual vertex number.
  //! Warning: <aNormal> is ignored when the <hasVNormals>
  //! constructor parameter is FALSE.
  //! <aTexel> is ignored when the <hasVTexels>
  //! constructor parameter is FALSE.
      Standard_Integer AddVertex (const gp_Pnt& aVertice, const gp_Dir& aNormal, const gp_Pnt2d& aTexel) ;
  
  //! Adds a vertice,vertex normal and texture in the vertex array.
  //! returns the actual vertex number.
  //! Warning: <aNormal> is ignored when the <hasVNormals>
  //! constructor parameter is FALSE.
  //! <aTexel> is ignored when the <hasVTexels>
  //! constructor parameter is FALSE.
      Standard_Integer AddVertex (const Standard_Real X, const Standard_Real Y, const Standard_Real Z, const Standard_Real NX, const Standard_Real NY, const Standard_Real NZ, const Standard_Real TX, const Standard_Real TY) ;
  
  //! Adds a vertice,vertex normal and texture in the vertex array.
  //! returns the actual vertex number.
  //! Warning: <aNormal> is ignored when the <hasVNormals>
  //! constructor parameter is FALSE.
  //! <aTexel> is ignored when the <hasVTexels>
  //! constructor parameter is FALSE.
  Standard_EXPORT   Standard_Integer AddVertex (const Standard_ShortReal X, const Standard_ShortReal Y, const Standard_ShortReal Z, const Standard_ShortReal NX, const Standard_ShortReal NY, const Standard_ShortReal NZ, const Standard_ShortReal TX, const Standard_ShortReal TY) ;
  
  //! Adds a bound of length <edgeNumber> in the bound array
  //! returns the actual bounds number.
  Standard_EXPORT   Standard_Integer AddBound (const Standard_Integer edgeNumber) ;
  
  //! Adds a bound of length <edgeNumber> and bound color
  //! <aBColor> in the bound array.
  //! returns the actual bounds number.
  //! Warning: <aBColor> is ignored when the <hasBColors>
  //! constructor parameter is FALSE
  Standard_EXPORT   Standard_Integer AddBound (const Standard_Integer edgeNumber, const Quantity_Color& aBColor) ;
  
  //! Adds a bound of length <edgeNumber> and bound color
  //! coordinates in the bound array.
  //! returns the actual bounds number.
  //! Warning: <R,G,B> are ignored when the <hasBColors>
  //! constructor parameter is FALSE
  Standard_EXPORT   Standard_Integer AddBound (const Standard_Integer edgeNumber, const Standard_Real R, const Standard_Real G, const Standard_Real B) ;
  
  //! Adds an edge in the range [1,VertexNumber()] in the array.
  //! Returns the actual edges number.
  Standard_EXPORT   Standard_Integer AddEdge (const Standard_Integer vertexIndex) ;
  
  //! Change the vertice of rank <anIndex> in the array.
  Standard_EXPORT   void SetVertice (const Standard_Integer anIndex, const gp_Pnt& aVertice) ;
  
  //! Change the vertice of rank <anIndex> in the array.
      void SetVertice (const Standard_Integer anIndex, const Standard_ShortReal X, const Standard_ShortReal Y, const Standard_ShortReal Z) ;
  
  //! Change the vertex color of rank <anIndex> in the array.
  Standard_EXPORT   void SetVertexColor (const Standard_Integer anIndex, const Quantity_Color& aColor) ;
  
  //! Change the vertex color of rank <anIndex> in the array.
      void SetVertexColor (const Standard_Integer anIndex, const Standard_Real R, const Standard_Real G, const Standard_Real B) ;
  
  //! Change the vertex color of rank <anIndex> in the array.
  //! aColor = Alpha << 24 + Blue << 16 + Green << 8 + Red
  //! On all architecture proccers type (x86 or SPARC) you can
  //! use this byte order.
  Standard_EXPORT   void SetVertexColor (const Standard_Integer anIndex, const Standard_Integer aColor) ;
  
  //! Change the vertex normal of rank <anIndex> in the array.
  Standard_EXPORT   void SetVertexNormal (const Standard_Integer anIndex, const gp_Dir& aNormal) ;
  
  //! Change the vertex normal of rank <anIndex> in the array.
      void SetVertexNormal (const Standard_Integer anIndex, const Standard_Real NX, const Standard_Real NY, const Standard_Real NZ) ;
  
  //! Change the vertex texel of rank <anIndex> in the array.
  Standard_EXPORT   void SetVertexTexel (const Standard_Integer anIndex, const gp_Pnt2d& aTexel) ;
  
  //! Change the vertex texel of rank <anIndex> in the array.
      void SetVertexTexel (const Standard_Integer anIndex, const Standard_Real TX, const Standard_Real TY) ;
  
  //! Change the bound color of rank <anIndex> in the array.
  Standard_EXPORT   void SetBoundColor (const Standard_Integer anIndex, const Quantity_Color& aColor) ;
  
  //! Change the bound color of rank <anIndex> in the array.
      void SetBoundColor (const Standard_Integer anIndex, const Standard_Real R, const Standard_Real G, const Standard_Real B) ;
  
  //! Returns optional index buffer.
     const  Handle(Graphic3d_IndexBuffer)& Indices()  const;
  
  //! Returns vertex attributes buffer (colors, normals, texture coordinates).
     const  Handle(Graphic3d_Buffer)& Attributes()  const;
  
  //! Returns optional bounds buffer.
     const  Handle(Graphic3d_BoundBuffer)& Bounds()  const;
  
  //! Returns the type of this primitive
      Graphic3d_TypeOfPrimitiveArray Type()  const;
  
  //! Returns the string type of this primitive
  Standard_EXPORT   Standard_CString StringType()  const;
  
  //! Returns TRUE when vertex normals array is defined.
      Standard_Boolean HasVertexNormals()  const;
  
  //! Returns TRUE when vertex colors array is defined.
      Standard_Boolean HasVertexColors()  const;
  
  //! Returns TRUE when vertex texels array is defined.
      Standard_Boolean HasVertexTexels()  const;
  
  //! Returns the number of defined vertex
      Standard_Integer VertexNumber()  const;
  
  //! Returns the vertice at rank <aRank>
  //! from the vertex table if defined.
  Standard_EXPORT   gp_Pnt Vertice (const Standard_Integer aRank)  const;
  
  //! Returns the vertice coordinates at rank <aRank>
  //! from the vertex table if defined.
      void Vertice (const Standard_Integer aRank, Standard_Real& X, Standard_Real& Y, Standard_Real& Z)  const;
  
  //! Returns the vertex color at rank <aRank>
  //! from the vertex table if defined.
  Standard_EXPORT   Quantity_Color VertexColor (const Standard_Integer aRank)  const;
  
  //! Returns the vertex color values at rank <aRank>
  //! from the vertex table if defined.
      void VertexColor (const Standard_Integer aRank, Standard_Real& R, Standard_Real& G, Standard_Real& B)  const;
  
  //! Returns the vertex color values at rank <aRank>
  //! from the vertex table if defined.
      void VertexColor (const Standard_Integer aRank, Standard_Integer& aColor)  const;
  
  //! Returns the vertex normal at rank <aRank>
  //! from the vertex table if defined.
  Standard_EXPORT   gp_Dir VertexNormal (const Standard_Integer aRank)  const;
  
  //! Returns the vertex normal coordinates at rank <aRank>
  //! from the vertex table if defined.
      void VertexNormal (const Standard_Integer aRank, Standard_Real& NX, Standard_Real& NY, Standard_Real& NZ)  const;
  
  //! Returns the vertex texture at rank <aRank>
  //! from the vertex table if defined.
  Standard_EXPORT   gp_Pnt2d VertexTexel (const Standard_Integer aRank)  const;
  
  //! Returns the vertex texture coordinates at rank <aRank>
  //! from the vertex table if defined.
      void VertexTexel (const Standard_Integer aRank, Standard_Real& TX, Standard_Real& TY)  const;
  
  //! Returns the number of defined edges
      Standard_Integer EdgeNumber()  const;
  
  //! Returns the vertex index at rank <aRank>
  //! in the range [1,VertexNumber()]
      Standard_Integer Edge (const Standard_Integer aRank)  const;
  
  //! Returns TRUE when bound colors array is defined.
      Standard_Boolean HasBoundColors()  const;
  
  //! Returns the number of defined bounds
      Standard_Integer BoundNumber()  const;
  
  //! Returns the edge number at rank <aRank>.
      Standard_Integer Bound (const Standard_Integer aRank)  const;
  
  //! Returns the bound color at rank <aRank>
  //! from the bound table if defined.
  Standard_EXPORT   Quantity_Color BoundColor (const Standard_Integer aRank)  const;
  
  //! Returns the bound color values at rank <aRank>
  //! from the bound table if defined.
  Standard_EXPORT   void BoundColor (const Standard_Integer aRank, Standard_Real& R, Standard_Real& G, Standard_Real& B)  const;
  
  //! Returns the number of total items according to
  //! the array type.
  Standard_EXPORT   Standard_Integer ItemNumber()  const;
  
  //! Returns TRUE only when the contains of this array is
  //! available.
  Standard_EXPORT   Standard_Boolean IsValid() ;

friend class Graphic3d_Group;


  DEFINE_STANDARD_RTTI(Graphic3d_ArrayOfPrimitives)

protected:

  
  //! Warning
  //! You must use a coherent set of AddVertex() methods according to the
  //! <hasVNormals>,<hasVColors>,<hasVTexels>,<hasBColors>
  //! User is responsible of confuse vertex and bad normal orientation.
  //! You must use AddBound() method only if the <maxBounds>
  //! constructor parameter is > 0.
  //! You must use AddEdge() method only if the <maxEdges>
  //! constructor parameter is > 0.
  Standard_EXPORT Graphic3d_ArrayOfPrimitives(const Graphic3d_TypeOfPrimitiveArray aType, const Standard_Integer maxVertexs, const Standard_Integer maxBounds, const Standard_Integer maxEdges, const Standard_Boolean hasVNormals, const Standard_Boolean hasVColors, const Standard_Boolean hasBColors, const Standard_Boolean hasTexels);



private: 

  
  Standard_EXPORT   void ComputeVNormals (const Standard_Integer fromIndex, const Standard_Integer toIndex) ;

  Handle(Graphic3d_IndexBuffer) myIndices;
  Handle(Graphic3d_Buffer) myAttribs;
  Handle(Graphic3d_BoundBuffer) myBounds;
  Graphic3d_TypeOfPrimitiveArray myType;
  Standard_Integer myMaxBounds;
  Standard_Integer myMaxVertexs;
  Standard_Integer myMaxEdges;
  Standard_Byte myVNor;
  Standard_Byte myVTex;
  Standard_Byte myVCol;


};


#include <Graphic3d_ArrayOfPrimitives.lxx>





#endif // _Graphic3d_ArrayOfPrimitives_HeaderFile