1 // File: OpenGl_TriangleStrip.hxx
2 // Created: 13 July 2011
3 // Author: Sergey ZERCHANINOV
4 // Copyright: OPEN CASCADE 2011
6 #ifndef OpenGl_TriangleStrip_Header
7 #define OpenGl_TriangleStrip_Header
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>
15 #include <OpenGl_Element.hxx>
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 */
28 IMPLEMENT_MEMORY_OPERATORS
31 class OpenGl_TriangleStrip : public OpenGl_Element
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 ();
40 virtual void Render (const Handle(OpenGl_Workspace) &AWorkspace) const;
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);
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;
53 void draw_edges (const TEL_COLOUR *, const Aspect_InteriorStyle, Tint, const Handle(OpenGl_Workspace) &) const;
55 void draw_line_loop () const;
57 TEL_TMESH_DATA myData;
61 IMPLEMENT_MEMORY_OPERATORS
64 #endif //OpenGl_TriangleStrip_Header