0012121: Optimization of existing selection classes
[occt.git] / src / OpenGl / OpenGl_tgl_funcs.hxx
CommitLineData
7fd59977 1/***********************************************************************
2
3FONCTION :
4----------
5Fichier OpenGl_tgl_funcs.h
6
7
8REMARQUES:
9----------
10
11
12HISTORIQUE DES MODIFICATIONS :
13--------------------------------
14??-??-?? : PCT ; creation
1510-07-96 : FMN ; Suppression #define sur calcul matrice
1605-08-97 : PCT ; support texture mapping
1723-12-97 : FMN ; Suppression TelBackInteriorStyle, TelBackInteriorStyleIndex
1815-01-98 : FMN ; Ajout Hidden line
1908-04-98 : FGU ; Ajout emission
2027-11-98 : CAL ; S4062. Ajout des layers.
2130-11-98 : FMN ; S3819 : Textes toujours visibles
2222-03-04 : SAN ; OCC4895 High-level interface for controlling polygon offsets
2304-10-04 : ABD ; Added User Defined marker type
24
25************************************************************************/
26
27/*----------------------------------------------------------------------*/
28
29#ifndef OPENGL_TGL_FUNCS_H
30#define OPENGL_TGL_FUNCS_H
31
32#define BUC60570 /* GG 06-09-99
33// The model view SD_NORMAL must shown objects with FLAT shading
34*/
35
36#ifndef G003
37#define G003 /* EUG 06-10-99 Degeneration support
38*/
39#endif
40
41
42#define BUC61044 /* 25/10/01 SAV ; added functionality to control gl depth testing
43from higher API */
44#define BUC61045 /* 25/10/01 SAV ; added functionality to control gl lighting
45from higher API */
46
47
48/*----------------------------------------------------------------------*/
49/*
50* Includes
51*/
52#include <OpenGl_tgl_all.hxx>
53#include <OpenGl_telem.hxx>
54#include <OpenGl_telem_pick.hxx>
55#include <OpenGl_tsm.hxx>
56#include <InterfaceGraphic_Aspect.hxx>
57#include <InterfaceGraphic_Graphic3d.hxx>
58#include <InterfaceGraphic_Visual3d.hxx>
59
60#include <OSD_FontAspect.hxx>
13a22457 61#include <Graphic3d_CGraduatedTrihedron.hxx>
7fd59977 62
63/*----------------------------------------------------------------------*/
64/*
65* Types definis
66*/
67
68typedef float matrix3[4][4];
69
70typedef enum {
71 TYPE_PARAL,
72 TYPE_PERSPECT
73} projtype;
74
75typedef enum {
76 IND_NO_CLIP,
77 IND_CLIP
78} clip_ind;
79
80typedef struct {
81 float x; /* x coordinate */
82 float y; /* y coordinate */
83 float z; /* z coordinate */
84} point3;
85
86typedef struct {
87 float delta_x; /* x magnitude */
88 float delta_y; /* y magnitude */
89 float delta_z; /* z magnitude */
90} vec3;
91
92typedef struct {
93 float x_min; /* x min */
94 float x_max; /* x max */
95 float y_min; /* y min */
96 float y_max; /* y max */
97 float z_min; /* z min */
98 float z_max; /* z max */
99} limit3;
100
101typedef struct {
102 float x_min; /* x min */
103 float x_max; /* x max */
104 float y_min; /* y min */
105 float y_max; /* y max */
106} limit;
107
108typedef struct {
109 limit win; /* window limits */
110 limit3 proj_vp; /* viewport limits */
111 projtype proj_type; /* projection type */
112 point3 proj_ref_point; /* projection reference point */
113 float view_plane; /* view plane distance */
114 float back_plane; /* back plane distance */
115 float front_plane; /* front plane distance */
116} view_map3;
117
118/*----------------------------------------------------------------------*/
119/*
120* Prototypes
121*/
122
123extern void call_func_label(Tint); /* lid */
124extern void call_func_set_view_ind(Tint); /* vid */
125extern void call_func_appl_data(void*); /* data */
126extern void call_func_set_local_tran3(Tmatrix3, TComposeType); /* mat, mode */
127extern void call_func_set_linewidth(Tfloat); /* lw */
128extern void call_func_set_linetype(Tint); /* lt */
129extern void call_func_set_int_style(Tint); /* is */
130extern void call_func_set_edge_flag(Tint); /* state */
131extern void call_func_set_edge_type(Tint); /* type */
132extern void call_func_set_edgewidth(Tfloat); /* width */
133extern void call_func_set_int_style_ind(Tint); /* ind */
134extern void call_func_set_face_disting_mode(Tint); /* mode */
135extern void call_func_set_face_cull_mode(Tint); /* mode */
136extern void call_func_set_marker_type(Tint); /* type */
137extern void call_func_set_marker_size(Tfloat); /* size */
138extern void call_func_exec_struct(Tint); /* stid */
139extern void call_func_init_tgl(void);
140extern void call_func_post_struct(Tint, Tint, Tfloat); /* ws, stid, prio */
141extern void call_func_set_int_shad_meth(Tint); /* method */
142extern void call_func_set_refl_eqn(Tint); /* eqn */
143extern void call_func_set_back_refl_eqn(Tint); /* eqn */
144extern void call_func_set_text_font(Tchar*); /* font */
145extern void call_func_set_char_space(Tfloat); /* sp */
146extern void call_func_set_char_expan(Tfloat); /* exp */
147extern void call_func_set_pick_id(Tint); /* pickid */
148extern void call_func_redraw_all_structs (Tint, Tint); /* wsid, swap */
149extern void call_func_redraw_all_structs_begin (Tint); /* wsid */
150extern void call_func_redraw_all_structs_proc (Tint); /* wsid */
151extern void call_func_redraw_all_structs_end (Tint, Tint); /* wsid, swap */
152extern void call_func_set_anno_char_ht(Tfloat); /* height */
153extern void call_func_set_anno_char_up_vec(Tfloat[2]); /* up_vector */
154extern void call_func_set_anno_path(Tint); /* path */
155extern void call_func_set_anno_align(Tint, Tint); /* hor, ver */
13a22457 156extern void call_func_anno_text_rel3( tel_point, Techar* );
7fd59977 157extern void call_func_dcue_ind(Tint); /* dcid */
158extern void call_func_set_do_texturemap(Tint); /* bool */
159extern void call_func_set_texture_id(Tint); /* TextureID */
160extern void call_func_set_text_style(int); /* style */
161extern void call_func_set_text_display_type(int); /* display_type */
162#ifdef G003
163extern void call_func_set_degenerate_model ( Tint, Tfloat ); /* degenerate model */
164#endif /* G003 */
165
166extern void call_func_set_text_zoomable(Tint); /*Text Zoomable usage*/
167extern void call_func_set_text_angle(Tfloat); /*Text Angle usage*/
168extern void call_func_set_text_fontaspect(OSD_FontAspect); /*Text Zoomable usage*/
169
170/* OCC4895 SAN 22/03/04 High-level interface for controlling polygon offsets */
171extern void call_func_set_polygon_offset_params( Tint, /* mode */
172 Tfloat, /* factor */
173 Tfloat ); /* units */
174/* OCC4895 SAN 22/03/04 High-level interface for controlling polygon offsets */
175
176/* ABD 29/10/04 Transform Persistence of Presentation( pan, zoom, rotate ) */
177extern void call_func_set_transform_persistence( Tint, Tfloat, Tfloat, Tfloat );
178/* extern void call_func_set_transform_persistence( tel_transform_persistence tp );*/
179/* ABD 29/10/04 Transform Persistence of Presentation( pan, zoom, rotate ) */
180
181
182/* OCC18942: obsolete in OCCT6.3, might be removed in further versions! */
183extern void call_func_eval_ori_matrix3( point3 *vrp, vec3 *vpn, vec3 *vup,
184 int *err_ind, float mout[4][4] );
185/* OCC18942: obsolete in OCCT6.3, might be removed in further versions! */
186extern void call_func_eval_map_matrix3( view_map3 *Map, int *err_ind,
187 matrix3 mat );
188
189/*----------------------------------------------------------------------*/
190/*
191* Constantes
192*/
193
194/* Edge types */
195#define CALL_PHIGS_EDGE_OFF TOff
196#define CALL_PHIGS_EDGE_ON TOn
197
198/* Edge data flags */
199#define CALL_PHIGS_EDGE_NONE TOff
200#define CALL_PHIGS_EDGE_VISIBILITY TOn
201
202/* Line Types */
203#define CALL_PHIGS_LINE_SOLID TEL_LS_SOLID
204#define CALL_PHIGS_LINE_DASH TEL_LS_DASH
205#define CALL_PHIGS_LINE_DOT TEL_LS_DOT
206#define CALL_PHIGS_LINE_DASH_DOT TEL_LS_DASH_DOT
207
208/* Marker types */
209#define CALL_PHIGS_MARKER_DOT TEL_PM_DOT
210#define CALL_PHIGS_MARKER_PLUS TEL_PM_PLUS
211#define CALL_PHIGS_MARKER_ASTERISK TEL_PM_STAR
212#define CALL_PHIGS_MARKER_CIRCLE TEL_PM_CIRC
213#define CALL_PHIGS_MARKER_CROSS TEL_PM_CROSS
214#define CALL_PHIGS_MARKER_USER_DEFINED TEL_PM_USERDEFINED
215
216/* Text : Path */
217#define CALL_PHIGS_PATH_RIGHT 0
218#define CALL_PHIGS_PATH_LEFT 0
219#define CALL_PHIGS_PATH_UP 0
220#define CALL_PHIGS_PATH_DOWN 0
221
222/* Text : Horizontal alignment */
223#define CALL_PHIGS_HOR_LEFT 0
224#define CALL_PHIGS_HOR_CENTER 1
225#define CALL_PHIGS_HOR_RIGHT 2
226
227/* Text : Vertical alignment */
228#define CALL_PHIGS_VERT_BOTTOM 0
229#define CALL_PHIGS_VERT_CENTER 1
230#define CALL_PHIGS_VERT_TOP 2
231
232/* Interior styles */
233#define CALL_PHIGS_STYLE_HOLLOW TSM_HOLLOW
234#define CALL_PHIGS_STYLE_SOLID TSM_SOLID
235#define CALL_PHIGS_STYLE_HATCH TSM_HATCH
236#define CALL_PHIGS_STYLE_EMPTY TSM_EMPTY
237#define CALL_PHIGS_STYLE_HIDDENLINE TSM_HIDDENLINE
238
239/* Light Source Types */
240#define CALL_PHIGS_LIGHT_AMBIENT TLightAmbient
241#define CALL_PHIGS_LIGHT_DIRECTIONAL TLightDirectional
242#define CALL_PHIGS_LIGHT_POSITIONAL TLightPositional
243#define CALL_PHIGS_LIGHT_SPOT TLightSpot
244
245/* Hatch styles */
246#define CALL_PHIGS_HATCH_HORIZ TEL_HS_HORIZONTAL
247#define CALL_PHIGS_HATCH_HORIZ_DBL TEL_HS_HORIZONTAL_SPARSE
248#define CALL_PHIGS_HATCH_VERT TEL_HS_VERTICAL
249#define CALL_PHIGS_HATCH_VERT_DBL TEL_HS_VERTICAL_SPARSE
250#define CALL_PHIGS_HATCH_DIAG_45 TEL_HS_DIAG_45
251#define CALL_PHIGS_HATCH_DIAG_45_DBL TEL_HS_DIAG_45_SPARSE
252#define CALL_PHIGS_HATCH_DIAG_135 TEL_HS_DIAG_135
253#define CALL_PHIGS_HATCH_DIAG_135_DBL TEL_HS_DIAG_135_SPARSE
254#define CALL_PHIGS_HATCH_GRID_R TEL_HS_GRID
255#define CALL_PHIGS_HATCH_GRID_R_DBL TEL_HS_GRID_SPARSE
256#define CALL_PHIGS_HATCH_GRID_D TEL_HS_CROSS
257#define CALL_PHIGS_HATCH_GRID_D_DBL TEL_HS_CROSS_SPARSE
258
259/* Edit modes */
260#define CALL_PHIGS_EDIT_INSERT TEditInsert
261#define CALL_PHIGS_EDIT_REPLACE TEditReplace
262
263/* Transformation */
264#define CALL_PHIGS_TYPE_PRECONCAT TPreConcatenate
265#define CALL_PHIGS_TYPE_POSTCONCAT TPostConcatenate
266#define CALL_PHIGS_TYPE_REPLACE TReplace
267
268/* Clipping indicators */
269#define CALL_PHIGS_IND_NO_CLIP TOff
270#define CALL_PHIGS_IND_CLIP TOn
271
272/* Projection types */
273#define CALL_PHIGS_TYPE_PARAL TelParallel
274#define CALL_PHIGS_TYPE_PERSPECT TelPerspective
275
276/* shading methods */
277#define CALL_PHIGS_SD_NONE TEL_SM_FLAT
278#define CALL_PHIGS_SD_COLOUR TEL_SM_GOURAUD
279#define CALL_PHIGS_SD_DOT_PRODUCT TEL_SM_GOURAUD
280#ifndef BUC60570
281#define CALL_PHIGS_SD_NORMAL TEL_SM_GOURAUD
282#else
283#define CALL_PHIGS_SD_NORMAL TEL_SM_FLAT
284#endif
285
286/* lighting methods */
287#define CALL_PHIGS_REFL_NONE 0x0000
288#define AMBIENT_MASK 0x0001
289#define DIFFUSE_MASK 0x0002
290#define SPECULAR_MASK 0x0004
291#define EMISSIVE_MASK 0x0008
292
293/* cull mode */
294#define CALL_PHIGS_CULL_NONE TelCullNone
295#define CALL_PHIGS_CULL_BACKFACE TelCullBack
296#define CALL_PHIGS_CULL_FRONTFACE TelCullFront
297
298/* depth cue mode */
299#define CALL_PHIGS_SUPPRESSED TelDCSuppressed
300#define CALL_PHIGS_ALLOWED TelDCAllowed
301
302/* distinguish mode */
303#define CALL_PHIGS_DISTING_NO TOff
304#define CALL_PHIGS_DISTING_YES TOn
305
306#define CALL_DEF_ENABLE_ZBUFFER TOn
307#define CALL_DEF_DISABLE_ZBUFFER TOff
308
309/* style of text */
310#define ASPECT_TOST_NORMAL 0
311#define ASPECT_TOST_ANNOTATION 1
312
313/* display type of the text */
314#define ASPECT_TODT_NORMAL 0
315#define ASPECT_TODT_SUBTITLE 1
316#define ASPECT_TODT_DEKALE 2
317#define ASPECT_TODT_BLEND 3
318
319/* Pick Order */
320#define PTOP_FIRST TTopFirst
321#define PBOTTOM_FIRST TBottomFirst
322
323/* Facet types */
324#define CALL_PHIGS_SHAPE_COMPLEX TEL_SHAPE_COMPLEX
325#define CALL_PHIGS_SHAPE_NONCONVEX TEL_SHAPE_CONCAVE
326#define CALL_PHIGS_SHAPE_CONVEX TEL_SHAPE_CONVEX
327#define CALL_PHIGS_SHAPE_UNKNOWN TEL_SHAPE_UNKNOWN
328
329/* Vertex flags */
330#define CALL_PHIGS_VERT_COORD TEL_VTFLAG_NONE
331#define CALL_PHIGS_VERT_COORD_COLOUR TEL_VTFLAG_COLOUR
332#define CALL_PHIGS_VERT_COORD_NORMAL TEL_VTFLAG_NORMAL
333#define CALL_PHIGS_VERT_COORD_COLOUR_NORMAL TEL_VTFLAG_COLOURNORMAL
334
335/* Facet data flags */
336#define CALL_PHIGS_FACET_NONE TEL_FAFLAG_NONE
337#define CALL_PHIGS_FACET_COLOUR TEL_FAFLAG_COLOUR
338#define CALL_PHIGS_FACET_NORMAL TEL_FAFLAG_NORMAL
339#define CALL_PHIGS_FACET_COLOUR_NORMAL TEL_FAFLAG_COLOURNORMAL
340
341/* functions */
342#define call_func_open_struct TsmOpenStructure
343#define call_func_close_struct TsmCloseStructure
344#define call_func_set_edit_mode TsmSetEditMode
345#define call_func_set_elem_ptr TsmSetElementPointer
346#define call_func_offset_elem_ptr TsmOffsetElementPointer
347#define call_func_set_elem_ptr_label TsmSetElementPointerAtLabel
348#define call_func_del_elem TsmDeleteElement
349#define call_func_del_elem_range TsmDeleteElementRange
350#define call_func_del_elems_labels TsmDeleteElementsBetweenLabels
351#define call_func_del_struct TsmDeleteStructure
352
353#define call_func_inq_elem_ptr TsmGetCurElemPtr
98178592 354#define call_func_inq_elem TsmGetCurElem
7fd59977 355
356/* Declarations des subroutines triedron */
357
358void EXPORT call_togl_ztriedron_setup (
359 float* xcolor,
360 float* ycolor,
361 float* zcolor,
362 float sizeratio,
363 float axisdiameter,
364 int nbfacettes
365 );
366
367void EXPORT call_togl_triedron_display (
368 CALL_DEF_VIEW * aview,
369 int APosition,
370 float r,
371 float g,
372 float b,
373 float AScale,
374 int asWireframe
375 );
376
377void EXPORT call_togl_triedron_erase (
378 CALL_DEF_VIEW *aview
379 );
380
381void EXPORT call_togl_triedron_echo (
382 CALL_DEF_VIEW *aview,
383 int AType
384 );
385
386/* Graduated trihedron */
387
13a22457
S
388void EXPORT call_togl_graduatedtrihedron_display(CALL_DEF_VIEW* view,
389 const Graphic3d_CGraduatedTrihedron &cubic);
7fd59977 390
391void EXPORT call_togl_graduatedtrihedron_erase(CALL_DEF_VIEW* view);
392
393void EXPORT call_togl_graduatedtrihedron_minmaxvalues(float xmin, float ymin, float zmin,
394 float xmax, float ymax, float zmax);
395
396/* Declarations des subroutines mode immediat */
397
398int EXPORT call_togl_begin_ajout_mode (
399 CALL_DEF_VIEW *aview
400 );
401
402void EXPORT call_togl_end_ajout_mode (
403 );
404
405int EXPORT call_togl_begin_immediat_mode (
406 CALL_DEF_VIEW *aview,
407 CALL_DEF_LAYER *anunderlayer,
408 CALL_DEF_LAYER *anoverlayer,
409 int doublebuffer,
410 int retainmode
411 );
412
413void EXPORT call_togl_end_immediat_mode (
414 int synchronize
415 );
416
417void EXPORT call_togl_clear_immediat_mode (
418 CALL_DEF_VIEW *aview,
419 int aFlush
420 );
421
422void EXPORT call_togl_transform (
423 CALL_DEF_MATRIX4X4 amatrix,
424 int mode
425 );
426
427void EXPORT call_togl_begin_polyline (
428 );
429
430void EXPORT call_togl_end_polyline (
431 );
432
433void EXPORT call_togl_begin_polygon (
434 );
435
436void EXPORT call_togl_end_polygon (
437 );
438
439void EXPORT call_togl_begin_trianglemesh (
440 );
441
442void EXPORT call_togl_end_trianglemesh (
443 );
444
445void EXPORT call_togl_begin_marker (
446 );
447
448void EXPORT call_togl_end_marker (
449 );
450
451void EXPORT call_togl_begin_bezier (
452 );
453
454void EXPORT call_togl_end_bezier (
455 );
456
457void EXPORT call_togl_move (
458 float x,
459 float y,
460 float z
461 );
462
463void EXPORT call_togl_movenormal (
464 float x,
465 float y,
466 float z,
467 float nx,
468 float ny,
469 float nz
470 );
471
472void EXPORT call_togl_moveweight (
473 float x,
474 float y,
475 float z,
476 float w
477 );
478
479void EXPORT call_togl_draw (
480 float x,
481 float y,
482 float z
483 );
484
485void EXPORT call_togl_drawnormal (
486 float x,
487 float y,
488 float z,
489 float nx,
490 float ny,
491 float nz
492 );
493
494void EXPORT call_togl_drawweight (
495 float x,
496 float y,
497 float z,
498 float w
499 );
500
501void EXPORT call_togl_draw_text (
502 CALL_DEF_TEXT *atext
503 );
504
505void EXPORT call_togl_draw_structure (
506 int StructId
507 );
508
509void EXPORT call_togl_set_linecolor (
510 float r,
511 float g,
512 float b
513 );
514
515void EXPORT call_togl_set_interiorcolor (
516 float r,
517 float g,
518 float b
519 );
520
521void EXPORT call_togl_set_linetype (
522
523 long type
524
525 );
526
527void EXPORT call_togl_set_interiortype (
528
529 long type
530
531 );
532
533void EXPORT call_togl_set_linewidth (
534
535 float width
536
537 );
538
539void EXPORT call_togl_set_textcolor (
540
541 float r,
542 float g,
543 float b
544
545 );
546
547void EXPORT call_togl_set_textfont (
548
549 char *police,
550 float factor,
551 float space
552
553 );
554
555void EXPORT call_togl_set_markercolor (
556
557 float r,
558 float g,
559 float b
560
561 );
562
563void EXPORT call_togl_set_markertype (
564
565 long type,
566 float scale
567
568 );
569
570void EXPORT call_togl_set_minmax (
571
572 float x1,
573 float y1,
574 float z1,
575 float x2,
576 float y2,
577 float z2
578
579 );
580
581void EXPORT call_togl_set_rgb (
582
583 float r,
584 float g,
585 float b
586
587 );
588
589/* Declarations des subroutines appelees du C++ */
590/* dans les packages Graphic3d et Visual3d */
591
592void EXPORT call_togl_opengroup (
593
594 CALL_DEF_GROUP *agroup
595
596 );
597
598void EXPORT call_togl_closegroup (
599
600 CALL_DEF_GROUP *agroup
601
602 );
603
604void EXPORT call_togl_cleargroup (
605
606 CALL_DEF_GROUP *agroup
607
608 );
609
610void EXPORT call_togl_linecontextgroup (
611
612 CALL_DEF_GROUP *agroup,
613 int noinsert
614
615 );
616
617void EXPORT call_togl_facecontextgroup (
618
619 CALL_DEF_GROUP *agroup,
620 int noinsert
621
622 );
623
624void EXPORT call_togl_markercontextgroup (
625
626 CALL_DEF_GROUP *agroup,
627 int noinsert
628
629 );
630
631void EXPORT call_togl_textcontextgroup (
632
633 CALL_DEF_GROUP *agroup,
634 int noinsert
635
636 );
637
638void EXPORT call_togl_group (
639
640 CALL_DEF_GROUP *agroup
641
642 );
643
644void EXPORT call_togl_marker (
645
646 CALL_DEF_GROUP *agroup,
647 CALL_DEF_MARKER *amarker
648
649 );
650
651void EXPORT call_togl_marker_set (
652
653 CALL_DEF_GROUP *agroup,
654 CALL_DEF_LISTMARKERS *almarkers
655
656 );
657
658void EXPORT call_togl_polyline (
659
660 CALL_DEF_GROUP *agroup,
661 CALL_DEF_LISTPOINTS *alpoints
662
663 );
664
665void EXPORT call_togl_polygon (
666
667 CALL_DEF_GROUP *agroup,
668 CALL_DEF_FACET *afacet
669
670 );
671
672void EXPORT call_togl_polygon_holes (
673
674 CALL_DEF_GROUP *agroup,
675 CALL_DEF_LISTFACETS *alfacets
676
677 );
678
679void EXPORT call_togl_polygon_indices (
680
681 CALL_DEF_GROUP *agroup,
682 CALL_DEF_LISTPOINTS *alpoints,
683 CALL_DEF_LISTEDGES *aledges,
684 CALL_DEF_LISTINTEGERS *albounds
685
686 );
687
688void EXPORT call_togl_pickid (
689
690 CALL_DEF_GROUP *agroup
691
692 );
693
694void EXPORT call_togl_quadrangle (
695
696 CALL_DEF_GROUP *agroup,
697 CALL_DEF_QUAD *aquad
698
699 );
700
701void EXPORT call_togl_removegroup (
702
703 CALL_DEF_GROUP *agroup
704
705 );
706
707void EXPORT call_togl_text (
708
709 CALL_DEF_GROUP *agroup,
710 CALL_DEF_TEXT *atext
711
712 );
713
714void EXPORT call_togl_triangle (
715
716 CALL_DEF_GROUP *agroup,
717 CALL_DEF_TRIKE *atrike
718
719 );
720
721void EXPORT call_togl_bezier (
722
723 CALL_DEF_GROUP *agroup,
724 CALL_DEF_LISTPOINTS *alpoints
725
726 );
727
728void EXPORT call_togl_bezier_weight (
729
730 CALL_DEF_GROUP *agroup,
731 CALL_DEF_LISTPOINTS *alpoints,
732 CALL_DEF_LISTREALS *alweights
733
734 );
735
736void EXPORT call_togl_blink (
737
738 CALL_DEF_STRUCTURE *astructure,
739 int create
740
741 );
742
743void EXPORT call_togl_boundarybox (
744
745 CALL_DEF_STRUCTURE *astructure,
746 int create
747
748 );
749
750void EXPORT call_togl_clearstructure (
751
752 CALL_DEF_STRUCTURE *astructure
753
754 );
755
756void EXPORT call_togl_contextstructure (
757
758 CALL_DEF_STRUCTURE *astructure
759
760 );
761
762void EXPORT call_togl_highlightcolor (
763
764 CALL_DEF_STRUCTURE *astructure,
765 CALL_DEF_COLOR *acolor,
766 int create
767
768 );
769
770void EXPORT call_togl_namesetstructure (
771
772 CALL_DEF_STRUCTURE *astructure
773
774 );
775
776void EXPORT call_togl_removestructure (
777
778 CALL_DEF_STRUCTURE *astructure
779
780 );
781
782void EXPORT call_togl_structure (
783
784 CALL_DEF_STRUCTURE *astructure
785
786 );
787
788void EXPORT call_togl_transformstructure (
789
790 CALL_DEF_STRUCTURE *astructure
791
792 );
793
794void EXPORT call_togl_degeneratestructure (
795
796 CALL_DEF_STRUCTURE *astructure
797
798 );
799
800void EXPORT call_togl_connect (
801
802 CALL_DEF_STRUCTURE *afather,
803 CALL_DEF_STRUCTURE *ason
804
805 );
806
807void EXPORT call_togl_disconnect (
808
809 CALL_DEF_STRUCTURE *afather,
810 CALL_DEF_STRUCTURE *ason
811
812 );
813
814int EXPORT call_togl_begin_animation (
815
816 CALL_DEF_VIEW *aview
817
818 );
819
820void EXPORT call_togl_end_animation (
821
822 CALL_DEF_VIEW *aview
823
824 );
825
826int EXPORT call_togl_begin (
827
828 char *adisplay
829
830 );
831
832/*RIC120302*/
833int EXPORT call_togl_begin_display (
834
835 void *pdisplay
836
837 );
838/*RIC120302*/
839
840void EXPORT call_togl_end (
841
842
843 );
844
845void EXPORT call_togl_structure_exploration (
846
847 long Id,
848 long LabelBegin,
849 long LabelEnd
850
851 );
852
853void EXPORT call_togl_element_exploration (
854
855 long Id,
856 long elem_num,
857 long *type,
858 CALL_DEF_POINT *pt,
859 CALL_DEF_NORMAL *npt,
860 CALL_DEF_COLOR *cpt,
861 CALL_DEF_NORMAL *nfa
862
863 );
864
865void EXPORT call_togl_element_type (
866
867 long Id,
868 long elem_num,
869 long *type
870
871 );
872
873void EXPORT call_togl_activateview (
874
875 CALL_DEF_VIEW *aview
876
877 );
878
879void EXPORT call_togl_antialiasing (
880
881 CALL_DEF_VIEW *aview,
882 int tag
883
884 );
885
886void EXPORT call_togl_background (
887
888 CALL_DEF_VIEW *aview
889
890 );
891
892void EXPORT call_togl_gradient_background (
893
894 int ws, int type,
895 tel_colour tcolor1, tel_colour tcolor2
896
897 );
898
899void EXPORT call_togl_set_gradient_type (
900
901 int ws, int type
902
903 );
904
905int EXPORT call_togl_project_raster (
906
907 int wsid,
908 float x,
909 float y,
910 float z,
911 int *ixr,
912 int *iyr
913
914 );
915
916int EXPORT call_togl_adopt_to_rect(
917 int,
918 int,
919 int
920 );
921
922int EXPORT call_togl_unproject_raster (
923
924 int wsid,
925 int xm,
926 int ym,
927 int xM,
928 int yM,
929 int ixr,
930 int iyr,
931 float *x,
932 float *y,
933 float *z
934
935 );
936
937int EXPORT call_togl_unproject_raster_with_ray (
938
939 int wsid,
940 int xm,
941 int ym,
942 int xM,
943 int yM,
944 int ixr,
945 int iyr,
946 float *x,
947 float *y,
948 float *z,
949 float *dx,
950 float *dy,
951 float *dz
952
953 );
954
955void EXPORT call_togl_cliplimit (
956
957 CALL_DEF_VIEW *aview,
958 int wait
959
960 );
961
962void EXPORT call_togl_deactivateview (
963
964 CALL_DEF_VIEW *aview
965
966 );
967
968void EXPORT call_togl_depthcueing (
969
970 CALL_DEF_VIEW *aview,
971 int tag
972
973 );
974
975void EXPORT call_togl_displaystructure (
976
977 CALL_DEF_VIEW *aview,
978 int StructId,
979 int Priority
980
981 );
982
983void EXPORT call_togl_erasestructure (
984
985 int ViewId,
986 int StructId
987
988 );
989
990void EXPORT call_togl_init_pick (
991
992
993 );
994
995void EXPORT call_togl_pick (
996
997 CALL_DEF_PICK *apick
998
999 );
1000
1001void EXPORT call_togl_ratio_window (
1002
1003 CALL_DEF_VIEW *aview
1004
1005 );
1006
1007void EXPORT call_togl_redraw (
1008
1009 CALL_DEF_VIEW *aview,
1010 CALL_DEF_LAYER *anunderlayer,
1011 CALL_DEF_LAYER *anoverlayer
1012
1013 );
1014
1015void EXPORT call_togl_redraw_area (
1016
1017 CALL_DEF_VIEW *aview,
1018 CALL_DEF_LAYER *anunderlayer,
1019 CALL_DEF_LAYER *anoverlayer,
1020 int x, int y, int width, int height
1021
1022 );
1023
1024void EXPORT call_togl_removeview (
1025
1026 CALL_DEF_VIEW *aview
1027
1028 );
1029
1030void EXPORT call_togl_setlight (
1031
1032 CALL_DEF_VIEW *aview
1033
1034 );
1035
1036void EXPORT call_togl_setplane (
1037
1038 CALL_DEF_VIEW *aview
1039
1040 );
1041
1042void EXPORT call_togl_setvisualisation (
1043
1044 CALL_DEF_VIEW *aview
1045
1046 );
1047
1048void EXPORT call_togl_transparency (
1049
1050 int WsId,
1051 int ViewId,
1052 int Activity
1053
1054 );
1055
1056void EXPORT call_togl_update (
1057
1058 CALL_DEF_VIEW *aview,
1059 CALL_DEF_LAYER *anunderlayer,
1060 CALL_DEF_LAYER *anoverlayer
1061
1062 );
1063
1064int EXPORT call_togl_view (
1065
1066 CALL_DEF_VIEW *aview
1067
1068 );
1069
1070int EXPORT call_togl_viewmapping (
1071
1072 CALL_DEF_VIEW *aview,
1073 int wait
1074
1075 );
1076
1077int EXPORT call_togl_vieworientation (
1078
1079 CALL_DEF_VIEW *aview,
1080 int wait
1081
1082 );
1083
1084int EXPORT call_togl_inquiretexture (
1085
1086
1087 );
1088
1089int EXPORT call_togl_inquirelight (
1090
1091
1092 );
1093
1094int EXPORT call_togl_inquireplane (
1095
1096
1097 );
1098
1099int EXPORT call_togl_inquireview (
1100
1101
1102 );
1103
1104int EXPORT call_togl_inquiremat (
1105
1106 CALL_DEF_VIEW *aview,
1107 CALL_DEF_MATRIX4X4 ori_matrix,
1108 CALL_DEF_MATRIX4X4 map_matrix
1109
1110 );
1111
1112void EXPORT call_togl_view_exploration (
1113
1114 long Id
1115
1116 );
1117
1118#ifdef OCC1188
1119int EXPORT call_togl_create_texture (
1120
1121 int Type,
1122 unsigned int Width,
1123 unsigned int Height,
1124 unsigned char *Data,
1125 char *FileName
1126
1127 );
1128
1129void EXPORT call_togl_create_bg_texture (
1130
1131 CALL_DEF_VIEW *aview,
1132 int width,
1133 int height,
1134 unsigned char *data,
1135 int style
1136
1137 );
1138#endif /* OCC1188 */
1139
1140void EXPORT call_togl_set_bg_texture_style(
1141
1142 CALL_DEF_VIEW* aview,
1143 int style
1144
1145 );
1146
1147void EXPORT call_togl_destroy_texture (
1148
1149 int TexId
1150
1151 );
1152
1153void EXPORT call_togl_modify_texture (
1154
1155 int TexId,
1156 CALL_DEF_INIT_TEXTURE *init_tex
1157
1158 );
1159
1160void EXPORT call_togl_environment (
1161
1162 CALL_DEF_VIEW *aview
1163
1164 );
1165
1166/* Declarations des subroutines layer mode */
1167
1168void EXPORT call_togl_layer2d (
1169
1170 CALL_DEF_LAYER *alayer
1171
1172 );
1173
1174void EXPORT call_togl_removelayer2d (
1175
1176 CALL_DEF_LAYER *alayer
1177
1178 );
1179
1180void EXPORT call_togl_begin_layer2d (
1181
1182 CALL_DEF_LAYER *alayer
1183
1184 );
1185
1186void EXPORT call_togl_end_layer2d (
1187 );
1188
1189void EXPORT call_togl_clear_layer2d (
1190
1191 CALL_DEF_LAYER *alayer
1192
1193 );
1194
1195void EXPORT call_togl_begin_polyline2d (
1196 );
1197
1198void EXPORT call_togl_end_polyline2d (
1199 );
1200
1201void EXPORT call_togl_begin_polygon2d (
1202 );
1203
1204void EXPORT call_togl_end_polygon2d (
1205 );
1206
1207void EXPORT call_togl_move2d (
1208
1209 float x,
1210 float y
1211
1212 );
1213
1214void EXPORT call_togl_draw2d (
1215
1216 float x,
1217 float y
1218
1219 );
1220
1221void EXPORT call_togl_edge2d (
1222
1223 float x,
1224 float y
1225
1226 );
1227
1228void EXPORT call_togl_rectangle2d (
1229
1230 float x,
1231 float y,
1232 float w,
1233 float h
1234
1235 );
1236
1237void EXPORT call_togl_set_color (
1238
1239 float r,
1240 float g,
1241 float b
1242
1243 );
1244
1245void EXPORT call_togl_set_transparency (
1246
1247 float a
1248
1249 );
1250
1251void EXPORT call_togl_unset_transparency ( );
1252
1253void EXPORT call_togl_set_line_attributes (
1254
1255 long type,
1256 float width
1257
1258 );
1259
1260void EXPORT call_togl_set_text_attributes (
1261
1262 Tchar* font,
1263 long type,
1264 float r,
1265 float g,
1266 float b
1267
1268 );
1269
1270void EXPORT call_togl_set_text_attributes (
1271
1272 Tchar* font,
1273 Tint height,
1274 OSD_FontAspect type,
1275 float r,
1276 float g,
1277 float b
1278
1279 );
1280
1281void EXPORT call_togl_set_text_scale_factors (
1282
1283 Tfloat x,
1284 Tfloat y
1285
1286 );
1287
1288void EXPORT call_togl_text2d (
1289
13a22457 1290 Techar *s,
7fd59977 1291 float x,
1292 float y,
1293 float height
1294
1295 );
1296
1297void EXPORT call_togl_textsize2d (
1298
13a22457 1299 Techar *s,
7fd59977 1300 float height,
1301 float *width,
1302 float *ascent,
1303 float *descent
1304
1305 );
1306
1307void EXPORT call_togl_backfacing (
1308
1309 CALL_DEF_VIEW*
1310
1311 );
1312
1313/* *** group of parray functions *** */
1314
1315void EXPORT call_togl_parray (
1316
1317 CALL_DEF_GROUP *agroup,
1318 CALL_DEF_PARRAY* parray
1319
1320 );
1321
98178592
A
1322void EXPORT call_togl_parray_remove (
1323
1324 CALL_DEF_GROUP *agroup,
1325 CALL_DEF_PARRAY* parray
1326
1327 );
1328
7fd59977 1329void EXPORT call_togl_userdraw (
1330
1331 CALL_DEF_GROUP *agroup,
1332 CALL_DEF_USERDRAW *anobject
1333
1334 );
1335
1336/* ------------------------- */
7edf74fd
A
1337Standard_Boolean EXPORT call_togl_print (
1338
1339 CALL_DEF_VIEW *aview,
1340 CALL_DEF_LAYER *anunderlayer,
1341 CALL_DEF_LAYER *anoverlayer,
1342 const Aspect_Drawable hPrintDC,
1343 const int background,
1344 const char* filename,
1345 const int printalgo = 0,
1346 const float theScaleFactor = 1.0
1347
1348 );
7fd59977 1349
1350
1351#ifdef BUC61044
1352void EXPORT call_togl_depthtest (
1353
1354 CALL_DEF_VIEW *aview,
1355 int dFlag
1356
1357 );
1358
1359int EXPORT call_togl_isdepthtest (
1360
1361 CALL_DEF_VIEW *aview
1362
1363 );
1364#endif
1365
1366#ifdef BUC61045
1367void EXPORT call_togl_gllight (
1368
1369 CALL_DEF_VIEW *aview,
1370 int dFlag
1371
1372 );
1373
1374int EXPORT call_togl_isgllight (
1375
1376 CALL_DEF_VIEW *aview
1377
1378 );
1379#endif
1380
1381/*----------------------------------------------------------------------*/
1382
1383#endif