0022627: Change OCCT memory management defaults
[occt.git] / src / OpenGl / OpenGl_TriangleStrip.hxx
CommitLineData
2166f0fa
SK
1// File: OpenGl_TriangleStrip.hxx
2// Created: 13 July 2011
3// Author: Sergey ZERCHANINOV
4// Copyright: OPEN CASCADE 2011
5
6#ifndef OpenGl_TriangleStrip_Header
7#define OpenGl_TriangleStrip_Header
8
9#include <InterfaceGraphic_telem.hxx>
10#include <Graphic3d_Array1OfVertex.hxx>
11#include <Graphic3d_Array1OfVertexN.hxx>
12#include <Graphic3d_Array1OfVertexNT.hxx>
13#include <Aspect_InteriorStyle.hxx>
14
15#include <OpenGl_Element.hxx>
16
17struct TEL_TMESH_DATA
18{
19 Tint num_facets; /* Number of facets */
20 Tint facet_flag; /* TEL_FA_NONE or TEL_FA_NORMAL */
21 Tint vertex_flag;/* TEL_VT_NONE or TEL_VT_NORMAL */
22 tel_point fnormals; /* length = num_facets */
23 tel_colour fcolours; /* length = num_facets */
24 tel_point vertices; /* length = num_facets + 2 */
25 tel_colour vcolours; /* length = num_facets + 2 */
26 tel_point vnormals; /* length = num_facets + 2 */
27 tel_texture_coord vtexturecoord; /* Texture coordinates */
1c35b92f 28 DEFINE_STANDARD_ALLOC
2166f0fa
SK
29};
30
31class OpenGl_TriangleStrip : public OpenGl_Element
32{
33 public:
34
35 OpenGl_TriangleStrip (const Graphic3d_Array1OfVertex& AListVertex);
36 OpenGl_TriangleStrip (const Graphic3d_Array1OfVertexN& AListVertex);
37 OpenGl_TriangleStrip (const Graphic3d_Array1OfVertexNT& AListVertex);
38 virtual ~OpenGl_TriangleStrip ();
39
40 virtual void Render (const Handle(OpenGl_Workspace) &AWorkspace) const;
41
42 protected:
43
44 void Init (const Tint ANbFacets, tel_point AVertices,
45 tel_point AVNormals, tel_colour AVColors, tel_texture_coord ATCoords,
46 tel_point AFNormals, tel_colour AFColors);
47
48 void draw_tmesh (const Tint, /* front_lighting_model, */
49 const Aspect_InteriorStyle, /* interior_style */
50 const TEL_COLOUR *, /* edge_colour */
51 const Handle(OpenGl_Workspace) &) const;
52
53 void draw_edges (const TEL_COLOUR *, const Aspect_InteriorStyle, Tint, const Handle(OpenGl_Workspace) &) const;
54
55 void draw_line_loop () const;
56
57 TEL_TMESH_DATA myData;
58 DS_INTERNAL *myDS;
59
60 public:
1c35b92f 61 DEFINE_STANDARD_ALLOC
2166f0fa
SK
62};
63
64#endif //OpenGl_TriangleStrip_Header