OCC22354 Bug in Overlay Text rendering
[occt.git] / src / OpenGl / OpenGl_polygonoffset.cxx
CommitLineData
7fd59977 1/*
2Created : 22-03-04 : SAN : OCC4895 High-level interface for controlling polygon offsets
3*/
4
5#include <OpenGl_tgl_all.hxx>
6
7#include <stddef.h>
8#include <stdio.h>
9#include <GL/gl.h>
10#include <GL/glu.h>
11
12#include <OpenGl_cmn_varargs.hxx>
13#include <OpenGl_telem_attri.hxx>
14#include <OpenGl_tsm.hxx>
15#include <OpenGl_telem.hxx>
16#include <OpenGl_telem_inquire.hxx>
17
18static TStatus PolygonOffsetDisplay( TSM_ELEM_DATA, Tint, cmn_key* );
19static TStatus PolygonOffsetAdd( TSM_ELEM_DATA, Tint, cmn_key* );
20static TStatus PolygonOffsetDelete( TSM_ELEM_DATA, Tint, cmn_key* );
21static TStatus PolygonOffsetPrint( TSM_ELEM_DATA, Tint, cmn_key* );
22
23static TStatus (*MtdTbl[])( TSM_ELEM_DATA, Tint, cmn_key* ) =
24{
25 0, /* PickTraverse */
26 PolygonOffsetDisplay,
27 PolygonOffsetAdd,
28 PolygonOffsetDelete,
29 PolygonOffsetPrint,
30 0 /* Inquire */
31};
32
33
34MtblPtr
35TelPolygonOffsetInitClass( TelType *el )
36{
37 *el = TelPolygonOffset;
38 return MtdTbl;
39}
40
41static TStatus
42PolygonOffsetAdd( TSM_ELEM_DATA d, Tint n, cmn_key *k )
43{
44 tel_poffset_param data = new TEL_POFFSET_PARAM();
45
46 if( !data )
47 return TFailure;
48
49 *data = *(tel_poffset_param)(k[0]->data.pdata);
50
51 ((tsm_elem_data)(d.pdata))->pdata = data;
52
53 return TSuccess;
54}
55
56
57static TStatus
58PolygonOffsetDisplay( TSM_ELEM_DATA data, Tint n, cmn_key *k )
59{
60 tel_poffset_param d;
61 CMN_KEY key;
62
63 d = (tel_poffset_param)data.pdata;
64
65 key.id = TelPolygonOffset;
66 key.data.pdata = d;
67 TsmSetAttri( 1, &key );
68
69 return TSuccess;
70}
71
72
73static TStatus
74PolygonOffsetDelete( TSM_ELEM_DATA data, Tint n, cmn_key *k )
75{
76 if (data.pdata)
77 delete data.pdata;
78 return TSuccess;
79}
80
81
82static TStatus
83PolygonOffsetPrint( TSM_ELEM_DATA data, Tint n, cmn_key *k )
84{
85 tel_poffset_param p;
86 p = (tel_poffset_param)data.pdata;
87
88 fprintf( stdout, "TelPolygonOffset. Mode = %x, Factor = %f, Units = %f\n",
89 p->mode, p->factor, p->units);
90 fprintf( stdout, "\n" );
91
92 return TSuccess;
93}
94