1 // File: OpenGl_AspectFace.hxx
2 // Created: 13 July 2011
3 // Author: Sergey ZERCHANINOV
4 // Copyright: OPEN CASCADE 2011
6 #ifndef _OpenGl_AspectFace_Header
7 #define _OpenGl_AspectFace_Header
9 #include <InterfaceGraphic_telem.hxx>
10 #include <Aspect_InteriorStyle.hxx>
12 #include <OpenGl_AspectLine.hxx>
14 #define OPENGL_AMBIENT_MASK (1<<0)
15 #define OPENGL_DIFFUSE_MASK (1<<1)
16 #define OPENGL_SPECULAR_MASK (1<<2)
17 #define OPENGL_EMISSIVE_MASK (1<<3)
19 struct OPENGL_SURF_PROP
21 float amb, diff, spec, emsv;
25 unsigned int color_mask;
26 TEL_COLOUR speccol, difcol, ambcol, emscol, matcol;
27 IMPLEMENT_MEMORY_OPERATORS
30 struct TEL_CONTEXT_FACE
32 Aspect_InteriorStyle InteriorStyle;
35 int DistinguishingMode;
37 OPENGL_SURF_PROP IntFront;
38 OPENGL_SURF_PROP IntBack;
41 TEL_POFFSET_PARAM PolygonOffset;
42 IMPLEMENT_MEMORY_OPERATORS
45 #include <OpenGl_Element.hxx>
47 class OpenGl_AspectFace : public OpenGl_Element
52 virtual ~OpenGl_AspectFace () {}
54 void SetContext (const CALL_DEF_CONTEXTFILLAREA &AContext);
56 void SetContext (const TEL_CONTEXT_FACE &AContext) { myContext = AContext; }
57 void SetAspectEdge (const OpenGl_AspectLine * AnAspectEdge) { myAspectEdge = *AnAspectEdge; }
59 const TEL_CONTEXT_FACE & Context() const { return myContext; }
60 const OpenGl_AspectLine * AspectEdge() const { return &myAspectEdge; }
62 virtual void Render (const Handle(OpenGl_Workspace) &AWorkspace) const;
66 TEL_CONTEXT_FACE myContext;
67 OpenGl_AspectLine myAspectEdge;
70 IMPLEMENT_MEMORY_OPERATORS
73 #endif //_OpenGl_AspectFace_Header