Commit | Line | Data |
---|---|---|
2166f0fa SK |
1 | // File: OpenGl_QuadrangleStrip.hxx |
2 | // Created: 13 July 2011 | |
3 | // Author: Sergey ZERCHANINOV | |
4 | // Copyright: OPEN CASCADE 2011 | |
5 | ||
6 | #ifndef OpenGl_QuadrangleStrip_Header | |
7 | #define OpenGl_QuadrangleStrip_Header | |
8 | ||
9 | #include <InterfaceGraphic_telem.hxx> | |
10 | #include <Graphic3d_Array2OfVertex.hxx> | |
11 | #include <Graphic3d_Array2OfVertexN.hxx> | |
12 | #include <Graphic3d_Array2OfVertexNT.hxx> | |
13 | #include <Aspect_InteriorStyle.hxx> | |
14 | ||
15 | #include <OpenGl_Element.hxx> | |
16 | ||
17 | struct OPENGL_QSTRIP_DATA | |
18 | { | |
19 | Tint shape_flag; /* TEL_SHAPE_UNKNOWN or TEL_SHAPE_COMPLEX or | |
20 | TEL_SHAPE_CONVEX or TEL_SHAPE_CONCAVE */ | |
21 | Tint facet_flag; /* TEL_FA_NONE or TEL_FA_NORMAL */ | |
22 | Tint vertex_flag; /* TEL_VT_NONE or TEL_VT_NORMAL */ | |
23 | Tint num_rows, num_columns; /* Number of rows and columns */ | |
24 | tel_point fnormals; /* Facet normals */ | |
25 | tel_colour fcolours; /* Facet colours */ | |
26 | tel_point vertices; /* Vertices */ | |
27 | tel_colour vcolours; /* Vertex colour values */ | |
28 | tel_point vnormals; /* Vertex normals */ | |
29 | tel_texture_coord vtexturecoord; /* Texture coordinates */ | |
30 | IMPLEMENT_MEMORY_OPERATORS | |
31 | }; | |
32 | ||
33 | class OpenGl_QuadrangleStrip : public OpenGl_Element | |
34 | { | |
35 | public: | |
36 | ||
37 | OpenGl_QuadrangleStrip (const Graphic3d_Array2OfVertex& AListVertex); | |
38 | OpenGl_QuadrangleStrip (const Graphic3d_Array2OfVertexN& AListVertex); | |
39 | OpenGl_QuadrangleStrip (const Graphic3d_Array2OfVertexNT& AListVertex); | |
40 | virtual ~OpenGl_QuadrangleStrip (); | |
41 | ||
42 | virtual void Render (const Handle(OpenGl_Workspace) &AWorkspace) const; | |
43 | ||
44 | protected: | |
45 | ||
46 | void Init (const Tint ANbRows, const Tint ANbCols, tel_point AVertices, | |
47 | tel_point AVNormals, tel_colour AVColors, tel_texture_coord ATCoords, | |
48 | tel_point AFNormals, tel_colour AFColors, const Tint AShapeFlag); | |
49 | ||
50 | void draw_qstrip (const Tint, /* front_lighting_model, */ | |
51 | const Aspect_InteriorStyle, /* interior_style, */ | |
52 | const TEL_COLOUR *, /* edge_colour, */ | |
53 | const Handle(OpenGl_Workspace) &) const; | |
54 | ||
55 | void draw_edges (const TEL_COLOUR *, const Aspect_InteriorStyle, Tint, const Handle(OpenGl_Workspace) &) const; | |
56 | ||
57 | void draw_line_strip (const TEL_COLOUR *, Tint, Tint) const; | |
58 | ||
59 | OPENGL_QSTRIP_DATA myData; | |
60 | DS_INTERNAL *myDS; | |
61 | ||
62 | public: | |
63 | IMPLEMENT_MEMORY_OPERATORS | |
64 | }; | |
65 | ||
66 | #endif //OpenGl_QuadrangleStrip_Header |