0022819: Redesign of OpenGl driver
authorSAN, KGV <>
Fri, 3 Feb 2012 12:59:15 +0000 (12:59 +0000)
committerbugmaster <bugmaster@opencascade.com>
Mon, 5 Mar 2012 15:32:22 +0000 (19:32 +0400)
362 files changed:
src/Graphic3d/FILES
src/Graphic3d/Graphic3d_GraphicDriver.cdl
src/Graphic3d/Graphic3d_GraphicDriver_1.cxx [deleted file]
src/Graphic3d/Graphic3d_GraphicDriver_2.cxx [deleted file]
src/Graphic3d/Graphic3d_GraphicDriver_3.cxx [deleted file]
src/Graphic3d/Graphic3d_GraphicDriver_4.cxx [deleted file]
src/Graphic3d/Graphic3d_GraphicDriver_5.cxx [deleted file]
src/Graphic3d/Graphic3d_GraphicDriver_6.cxx [deleted file]
src/Graphic3d/Graphic3d_GraphicDriver_7.cxx [deleted file]
src/Graphic3d/Graphic3d_GraphicDriver_703.cxx [deleted file]
src/Graphic3d/Graphic3d_GraphicDriver_705.cxx [deleted file]
src/Graphic3d/Graphic3d_GraphicDriver_707.cxx [deleted file]
src/Graphic3d/Graphic3d_GraphicDriver_709.cxx [deleted file]
src/Graphic3d/Graphic3d_GraphicDriver_710.cxx [deleted file]
src/Graphic3d/Graphic3d_GraphicDriver_711.cxx [deleted file]
src/Graphic3d/Graphic3d_GraphicDriver_712.cxx [deleted file]
src/Graphic3d/Graphic3d_GraphicDriver_713.cxx [deleted file]
src/Graphic3d/Graphic3d_GraphicDriver_8.cxx [deleted file]
src/Graphic3d/Graphic3d_GraphicDriver_9.cxx [deleted file]
src/Graphic3d/Graphic3d_GraphicDriver_Export.cxx [deleted file]
src/Graphic3d/Graphic3d_GraphicDriver_Layer.cxx [deleted file]
src/Graphic3d/Graphic3d_GraphicDriver_Print.cxx [deleted file]
src/Graphic3d/Graphic3d_Group.cdl
src/Graphic3d/Graphic3d_Group_12.cxx [deleted file]
src/Graphic3d/Graphic3d_Group_9.cxx
src/OpenGl/FILES
src/OpenGl/Handle_OpenGl_Context.hxx [new file with mode: 0644]
src/OpenGl/Handle_OpenGl_Display.hxx [new file with mode: 0644]
src/OpenGl/Handle_OpenGl_GraduatedTrihedron.hxx [new file with mode: 0644]
src/OpenGl/Handle_OpenGl_GraphicDriver.hxx [new file with mode: 0644]
src/OpenGl/Handle_OpenGl_Trihedron.hxx [new file with mode: 0644]
src/OpenGl/Handle_OpenGl_View.hxx [new file with mode: 0644]
src/OpenGl/Handle_OpenGl_Window.hxx [new file with mode: 0644]
src/OpenGl/Handle_OpenGl_Workspace.hxx [new file with mode: 0644]
src/OpenGl/OpenGl.cdl [deleted file]
src/OpenGl/OpenGl_ArbVBO.hxx [new file with mode: 0644]
src/OpenGl/OpenGl_AspectFace.cxx [new file with mode: 0644]
src/OpenGl/OpenGl_AspectFace.hxx [new file with mode: 0644]
src/OpenGl/OpenGl_AspectLine.cxx [new file with mode: 0644]
src/OpenGl/OpenGl_AspectLine.hxx [new file with mode: 0644]
src/OpenGl/OpenGl_AspectMarker.cxx [new file with mode: 0644]
src/OpenGl/OpenGl_AspectMarker.hxx [new file with mode: 0644]
src/OpenGl/OpenGl_AspectText.cxx [new file with mode: 0644]
src/OpenGl/OpenGl_AspectText.hxx [new file with mode: 0644]
src/OpenGl/OpenGl_CMPLRS.edl
src/OpenGl/OpenGl_CView.hxx [new file with mode: 0644]
src/OpenGl/OpenGl_Callback.hxx [new file with mode: 0644]
src/OpenGl/OpenGl_Context.cxx [new file with mode: 0644]
src/OpenGl/OpenGl_Context.hxx [new file with mode: 0644]
src/OpenGl/OpenGl_Display.cxx [new file with mode: 0644]
src/OpenGl/OpenGl_Display.hxx [new file with mode: 0644]
src/OpenGl/OpenGl_Display_1.cxx [new file with mode: 0644]
src/OpenGl/OpenGl_Display_2.cxx [new file with mode: 0644]
src/OpenGl/OpenGl_Element.hxx [new file with mode: 0644]
src/OpenGl/OpenGl_ExtFBO.hxx [new file with mode: 0644]
src/OpenGl/OpenGl_Extension.cxx [deleted file]
src/OpenGl/OpenGl_Extension.hxx [deleted file]
src/OpenGl/OpenGl_FrameBuffer.cxx
src/OpenGl/OpenGl_FrameBuffer.hxx
src/OpenGl/OpenGl_GraduatedTrihedron.cxx [moved from src/OpenGl/OpenGl_graduatedtrihedron.cxx with 62% similarity]
src/OpenGl/OpenGl_GraduatedTrihedron.hxx [new file with mode: 0644]
src/OpenGl/OpenGl_GraphicDriver.cdl [deleted file]
src/OpenGl/OpenGl_GraphicDriver.cxx
src/OpenGl/OpenGl_GraphicDriver.hxx [new file with mode: 0644]
src/OpenGl/OpenGl_GraphicDriver_1.cxx
src/OpenGl/OpenGl_GraphicDriver_2.cxx
src/OpenGl/OpenGl_GraphicDriver_3.cxx
src/OpenGl/OpenGl_GraphicDriver_4.cxx
src/OpenGl/OpenGl_GraphicDriver_5.cxx
src/OpenGl/OpenGl_GraphicDriver_6.cxx
src/OpenGl/OpenGl_GraphicDriver_7.cxx
src/OpenGl/OpenGl_GraphicDriver_703.cxx
src/OpenGl/OpenGl_GraphicDriver_705.cxx
src/OpenGl/OpenGl_GraphicDriver_707.cxx
src/OpenGl/OpenGl_GraphicDriver_709.cxx
src/OpenGl/OpenGl_GraphicDriver_710.cxx
src/OpenGl/OpenGl_GraphicDriver_711.cxx
src/OpenGl/OpenGl_GraphicDriver_712.cxx [deleted file]
src/OpenGl/OpenGl_GraphicDriver_713.cxx
src/OpenGl/OpenGl_GraphicDriver_8.cxx
src/OpenGl/OpenGl_GraphicDriver_9.cxx
src/OpenGl/OpenGl_GraphicDriver_Export.cxx
src/OpenGl/OpenGl_GraphicDriver_Layer.cxx
src/OpenGl/OpenGl_GraphicDriver_print.cxx
src/OpenGl/OpenGl_Group.cxx [new file with mode: 0644]
src/OpenGl/OpenGl_Group.hxx [new file with mode: 0644]
src/OpenGl/OpenGl_Light.hxx [new file with mode: 0644]
src/OpenGl/OpenGl_LightBox.cxx [deleted file]
src/OpenGl/OpenGl_LightBox.hxx [deleted file]
src/OpenGl/OpenGl_Marker.cxx [new file with mode: 0644]
src/OpenGl/OpenGl_Marker.hxx [new file with mode: 0644]
src/OpenGl/OpenGl_MarkerSet.cxx [new file with mode: 0644]
src/OpenGl/OpenGl_MarkerSet.hxx [new file with mode: 0644]
src/OpenGl/OpenGl_Matrix.cxx [new file with mode: 0644]
src/OpenGl/OpenGl_Matrix.hxx [new file with mode: 0644]
src/OpenGl/OpenGl_Memory.cxx [deleted file]
src/OpenGl/OpenGl_Memory.hxx
src/OpenGl/OpenGl_Mesh.cxx [new file with mode: 0644]
src/OpenGl/OpenGl_Mesh.hxx [new file with mode: 0644]
src/OpenGl/OpenGl_NamedStatus.hxx [new file with mode: 0644]
src/OpenGl/OpenGl_Polygon.cxx [new file with mode: 0644]
src/OpenGl/OpenGl_Polygon.hxx [new file with mode: 0644]
src/OpenGl/OpenGl_Polyline.cxx [new file with mode: 0644]
src/OpenGl/OpenGl_Polyline.hxx [new file with mode: 0644]
src/OpenGl/OpenGl_PrimitiveArray.cxx
src/OpenGl/OpenGl_PrimitiveArray.hxx [new file with mode: 0644]
src/OpenGl/OpenGl_PrinterContext.cxx
src/OpenGl/OpenGl_PrinterContext.hxx
src/OpenGl/OpenGl_PriorityList.cxx [new file with mode: 0644]
src/OpenGl/OpenGl_PriorityList.hxx [new file with mode: 0644]
src/OpenGl/OpenGl_QuadrangleStrip.cxx [new file with mode: 0644]
src/OpenGl/OpenGl_QuadrangleStrip.hxx [new file with mode: 0644]
src/OpenGl/OpenGl_Resource.hxx
src/OpenGl/OpenGl_ResourceCleaner.cxx
src/OpenGl/OpenGl_ResourceCleaner.hxx
src/OpenGl/OpenGl_ResourceTexture.cxx
src/OpenGl/OpenGl_ResourceTexture.hxx
src/OpenGl/OpenGl_ResourceVBO.cxx
src/OpenGl/OpenGl_ResourceVBO.hxx
src/OpenGl/OpenGl_Structure.cxx [new file with mode: 0644]
src/OpenGl/OpenGl_Structure.hxx [new file with mode: 0644]
src/OpenGl/OpenGl_Text.cxx [new file with mode: 0644]
src/OpenGl/OpenGl_Text.hxx [new file with mode: 0644]
src/OpenGl/OpenGl_TextParam.hxx [new file with mode: 0644]
src/OpenGl/OpenGl_TextRender.cxx [deleted file]
src/OpenGl/OpenGl_TextRender.hxx [deleted file]
src/OpenGl/OpenGl_TextureBox.cxx
src/OpenGl/OpenGl_TriangleStrip.cxx [new file with mode: 0644]
src/OpenGl/OpenGl_TriangleStrip.hxx [new file with mode: 0644]
src/OpenGl/OpenGl_Trihedron.cxx [new file with mode: 0644]
src/OpenGl/OpenGl_Trihedron.hxx [new file with mode: 0644]
src/OpenGl/OpenGl_View.cxx [new file with mode: 0644]
src/OpenGl/OpenGl_View.hxx [new file with mode: 0644]
src/OpenGl/OpenGl_View_1.cxx [new file with mode: 0644]
src/OpenGl/OpenGl_View_2.cxx [new file with mode: 0644]
src/OpenGl/OpenGl_Window.cxx [new file with mode: 0644]
src/OpenGl/OpenGl_Window.hxx [new file with mode: 0644]
src/OpenGl/OpenGl_Workspace.cxx [new file with mode: 0644]
src/OpenGl/OpenGl_Workspace.hxx [new file with mode: 0644]
src/OpenGl/OpenGl_Workspace_1.cxx [new file with mode: 0644]
src/OpenGl/OpenGl_Workspace_2.cxx [moved from src/OpenGl/OpenGl_togl_print.cxx with 74% similarity, mode: 0644]
src/OpenGl/OpenGl_Workspace_3.cxx [new file with mode: 0644]
src/OpenGl/OpenGl_Workspace_4.cxx [new file with mode: 0644]
src/OpenGl/OpenGl_Workspace_5.cxx [new file with mode: 0644]
src/OpenGl/OpenGl_addnames.cxx [deleted file]
src/OpenGl/OpenGl_animation.hxx [deleted file]
src/OpenGl/OpenGl_antialias.cxx [deleted file]
src/OpenGl/OpenGl_applid.cxx [deleted file]
src/OpenGl/OpenGl_attri.cxx [deleted file]
src/OpenGl/OpenGl_bintcol.cxx [deleted file]
src/OpenGl/OpenGl_bintrefl.cxx [deleted file]
src/OpenGl/OpenGl_bsurfprop.cxx [deleted file]
src/OpenGl/OpenGl_callback.hxx [deleted file]
src/OpenGl/OpenGl_charexpan.cxx [deleted file]
src/OpenGl/OpenGl_charspace.cxx [deleted file]
src/OpenGl/OpenGl_cmn_varargs.hxx [deleted file]
src/OpenGl/OpenGl_context.hxx [deleted file]
src/OpenGl/OpenGl_curve.cxx [deleted file]
src/OpenGl/OpenGl_degeneration.hxx [deleted file]
src/OpenGl/OpenGl_degmodel.cxx [deleted file]
src/OpenGl/OpenGl_depthcue.cxx [deleted file]
src/OpenGl/OpenGl_dind.cxx [deleted file]
src/OpenGl/OpenGl_dotexturemap.cxx [deleted file]
src/OpenGl/OpenGl_edgecol.cxx [deleted file]
src/OpenGl/OpenGl_edgeflag.cxx [deleted file]
src/OpenGl/OpenGl_edgetyp.cxx [deleted file]
src/OpenGl/OpenGl_edgewid.cxx [deleted file]
src/OpenGl/OpenGl_execstruct.cxx [deleted file]
src/OpenGl/OpenGl_facecull.cxx [deleted file]
src/OpenGl/OpenGl_facedmode.cxx [deleted file]
src/OpenGl/OpenGl_filters.cxx [deleted file]
src/OpenGl/OpenGl_funcs.cxx [deleted file]
src/OpenGl/OpenGl_graduatedtrihedron.hxx [deleted file]
src/OpenGl/OpenGl_highlight.cxx [deleted file]
src/OpenGl/OpenGl_hlind.cxx [deleted file]
src/OpenGl/OpenGl_indexpolygons.cxx [deleted file]
src/OpenGl/OpenGl_initelem.cxx [deleted file]
src/OpenGl/OpenGl_inquire.cxx [deleted file]
src/OpenGl/OpenGl_inquire.hxx [deleted file]
src/OpenGl/OpenGl_intcol.cxx [deleted file]
src/OpenGl/OpenGl_intrefl.cxx [deleted file]
src/OpenGl/OpenGl_intshademtd.cxx [deleted file]
src/OpenGl/OpenGl_intstyle.cxx [deleted file]
src/OpenGl/OpenGl_intstyleind.cxx [deleted file]
src/OpenGl/OpenGl_label.cxx [deleted file]
src/OpenGl/OpenGl_lightstate.cxx [deleted file]
src/OpenGl/OpenGl_localtran3.cxx [deleted file]
src/OpenGl/OpenGl_mrkr.cxx [deleted file]
src/OpenGl/OpenGl_mrkrcol.cxx [deleted file]
src/OpenGl/OpenGl_mrkrset.cxx [deleted file]
src/OpenGl/OpenGl_mrkrsize.cxx [deleted file]
src/OpenGl/OpenGl_mrkrtype.cxx [deleted file]
src/OpenGl/OpenGl_pick.cxx [deleted file]
src/OpenGl/OpenGl_pickid.cxx [deleted file]
src/OpenGl/OpenGl_polygon.cxx [deleted file]
src/OpenGl/OpenGl_polygonholes.cxx [deleted file]
src/OpenGl/OpenGl_polygonoffset.cxx [deleted file]
src/OpenGl/OpenGl_polyl.cxx [deleted file]
src/OpenGl/OpenGl_polylcol.cxx [deleted file]
src/OpenGl/OpenGl_polyltyp.cxx [deleted file]
src/OpenGl/OpenGl_polylwid.cxx [deleted file]
src/OpenGl/OpenGl_qstrip.cxx [deleted file]
src/OpenGl/OpenGl_remnames.cxx [deleted file]
src/OpenGl/OpenGl_subrs.cxx [deleted file]
src/OpenGl/OpenGl_subrvis.cxx [deleted file]
src/OpenGl/OpenGl_surfprop.cxx [deleted file]
src/OpenGl/OpenGl_telem.hxx [deleted file]
src/OpenGl/OpenGl_telem_attri.hxx [deleted file]
src/OpenGl/OpenGl_telem_depthcue.hxx [deleted file]
src/OpenGl/OpenGl_telem_filters.hxx [deleted file]
src/OpenGl/OpenGl_telem_highlight.hxx [deleted file]
src/OpenGl/OpenGl_telem_inquire.hxx [deleted file]
src/OpenGl/OpenGl_telem_pick.hxx [deleted file]
src/OpenGl/OpenGl_telem_util.cxx
src/OpenGl/OpenGl_telem_util.hxx
src/OpenGl/OpenGl_telem_view.cxx [new file with mode: 0644]
src/OpenGl/OpenGl_telem_view.hxx
src/OpenGl/OpenGl_text.cxx [deleted file]
src/OpenGl/OpenGl_textalignment.cxx [deleted file]
src/OpenGl/OpenGl_textangle.cxx [deleted file]
src/OpenGl/OpenGl_textcol.cxx [deleted file]
src/OpenGl/OpenGl_textcolsubtitle.cxx [deleted file]
src/OpenGl/OpenGl_textdisplaytype.cxx [deleted file]
src/OpenGl/OpenGl_textfont.cxx [deleted file]
src/OpenGl/OpenGl_textfontaspect.cxx [deleted file]
src/OpenGl/OpenGl_textheight.cxx [deleted file]
src/OpenGl/OpenGl_textstyle.cxx [deleted file]
src/OpenGl/OpenGl_texture.cxx [deleted file]
src/OpenGl/OpenGl_textzoomable.cxx [deleted file]
src/OpenGl/OpenGl_tgl.hxx [deleted file]
src/OpenGl/OpenGl_tgl_elems.hxx [deleted file]
src/OpenGl/OpenGl_tgl_funcs.hxx
src/OpenGl/OpenGl_tgl_pick.hxx [deleted file]
src/OpenGl/OpenGl_tgl_subrs.hxx [deleted file]
src/OpenGl/OpenGl_tgl_subrvis.hxx [deleted file]
src/OpenGl/OpenGl_tgl_tox.hxx [deleted file]
src/OpenGl/OpenGl_tgl_util.cxx [deleted file]
src/OpenGl/OpenGl_tgl_util.hxx [deleted file]
src/OpenGl/OpenGl_tgl_utilgr.cxx [deleted file]
src/OpenGl/OpenGl_tgl_utilgr.hxx [deleted file]
src/OpenGl/OpenGl_tgl_vis.hxx [deleted file]
src/OpenGl/OpenGl_tmesh.cxx [deleted file]
src/OpenGl/OpenGl_togl_activateview.cxx [deleted file]
src/OpenGl/OpenGl_togl_antialiasing.cxx [deleted file]
src/OpenGl/OpenGl_togl_backfacing.cxx [deleted file]
src/OpenGl/OpenGl_togl_background.cxx [deleted file]
src/OpenGl/OpenGl_togl_begin.cxx [deleted file]
src/OpenGl/OpenGl_togl_begin_animation.cxx [deleted file]
src/OpenGl/OpenGl_togl_begin_immediat_mode.cxx [deleted file]
src/OpenGl/OpenGl_togl_begin_layer_mode.cxx [deleted file]
src/OpenGl/OpenGl_togl_bezier.cxx [deleted file]
src/OpenGl/OpenGl_togl_bezier_weight.cxx [deleted file]
src/OpenGl/OpenGl_togl_blink.cxx [deleted file]
src/OpenGl/OpenGl_togl_boundarybox.cxx [deleted file]
src/OpenGl/OpenGl_togl_cleargroup.cxx [deleted file]
src/OpenGl/OpenGl_togl_clearstructure.cxx [deleted file]
src/OpenGl/OpenGl_togl_cliplimit.cxx [deleted file]
src/OpenGl/OpenGl_togl_closegroup.cxx [deleted file]
src/OpenGl/OpenGl_togl_connect.cxx [deleted file]
src/OpenGl/OpenGl_togl_contextstructure.cxx [deleted file]
src/OpenGl/OpenGl_togl_curve.cxx [deleted file]
src/OpenGl/OpenGl_togl_deactivateview.cxx [deleted file]
src/OpenGl/OpenGl_togl_degeneratestructure.cxx [deleted file]
src/OpenGl/OpenGl_togl_depthcueing.cxx [deleted file]
src/OpenGl/OpenGl_togl_depthtest.cxx [deleted file]
src/OpenGl/OpenGl_togl_disconnect.cxx [deleted file]
src/OpenGl/OpenGl_togl_displaystructure.cxx [deleted file]
src/OpenGl/OpenGl_togl_element_exploration.cxx [deleted file]
src/OpenGl/OpenGl_togl_end.cxx [deleted file]
src/OpenGl/OpenGl_togl_erasestructure.cxx [deleted file]
src/OpenGl/OpenGl_togl_facecontextgroup.cxx [deleted file]
src/OpenGl/OpenGl_togl_gradient_background.cxx [deleted file]
src/OpenGl/OpenGl_togl_graduatedtrihedron.cxx [deleted file]
src/OpenGl/OpenGl_togl_group.cxx [deleted file]
src/OpenGl/OpenGl_togl_highlightcolor.cxx [deleted file]
src/OpenGl/OpenGl_togl_init_pick.cxx [deleted file]
src/OpenGl/OpenGl_togl_inquirefacilities.cxx [deleted file]
src/OpenGl/OpenGl_togl_inquirelight.cxx [deleted file]
src/OpenGl/OpenGl_togl_inquireplane.cxx
src/OpenGl/OpenGl_togl_inquireview.cxx [deleted file]
src/OpenGl/OpenGl_togl_light.cxx [deleted file]
src/OpenGl/OpenGl_togl_light_exploration.cxx [deleted file]
src/OpenGl/OpenGl_togl_linecontextgroup.cxx [deleted file]
src/OpenGl/OpenGl_togl_marker.cxx [deleted file]
src/OpenGl/OpenGl_togl_marker_set.cxx [deleted file]
src/OpenGl/OpenGl_togl_markercontextgroup.cxx [deleted file]
src/OpenGl/OpenGl_togl_namesetstructure.cxx [deleted file]
src/OpenGl/OpenGl_togl_opengroup.cxx [deleted file]
src/OpenGl/OpenGl_togl_parray.cxx [deleted file]
src/OpenGl/OpenGl_togl_pick.cxx [deleted file]
src/OpenGl/OpenGl_togl_pickid.cxx [deleted file]
src/OpenGl/OpenGl_togl_plane.cxx [deleted file]
src/OpenGl/OpenGl_togl_polygon.cxx [deleted file]
src/OpenGl/OpenGl_togl_polygon_holes.cxx [deleted file]
src/OpenGl/OpenGl_togl_polygon_indices.cxx [deleted file]
src/OpenGl/OpenGl_togl_polygon_set.cxx [deleted file]
src/OpenGl/OpenGl_togl_polyline.cxx [deleted file]
src/OpenGl/OpenGl_togl_project_raster.cxx [deleted file]
src/OpenGl/OpenGl_togl_quadrangle.cxx [deleted file]
src/OpenGl/OpenGl_togl_ratio_window.cxx [deleted file]
src/OpenGl/OpenGl_togl_redraw.cxx [deleted file]
src/OpenGl/OpenGl_togl_removegroup.cxx [deleted file]
src/OpenGl/OpenGl_togl_removestructure.cxx [deleted file]
src/OpenGl/OpenGl_togl_removeview.cxx [deleted file]
src/OpenGl/OpenGl_togl_set_environment.cxx [deleted file]
src/OpenGl/OpenGl_togl_setlight.cxx [deleted file]
src/OpenGl/OpenGl_togl_setplane.cxx [deleted file]
src/OpenGl/OpenGl_togl_setvisualisation.cxx [deleted file]
src/OpenGl/OpenGl_togl_structure.cxx [deleted file]
src/OpenGl/OpenGl_togl_structure_exploration.cxx [deleted file]
src/OpenGl/OpenGl_togl_text.cxx [deleted file]
src/OpenGl/OpenGl_togl_textcontextgroup.cxx [deleted file]
src/OpenGl/OpenGl_togl_texture.cxx
src/OpenGl/OpenGl_togl_transformstructure.cxx [deleted file]
src/OpenGl/OpenGl_togl_transparency.cxx [deleted file]
src/OpenGl/OpenGl_togl_triangle.cxx [deleted file]
src/OpenGl/OpenGl_togl_triedron.cxx [deleted file]
src/OpenGl/OpenGl_togl_unproject_raster.cxx [deleted file]
src/OpenGl/OpenGl_togl_update.cxx [deleted file]
src/OpenGl/OpenGl_togl_userdraw.cxx [deleted file]
src/OpenGl/OpenGl_togl_view.cxx [deleted file]
src/OpenGl/OpenGl_togl_view_exploration.cxx [deleted file]
src/OpenGl/OpenGl_togl_viewmapping.cxx [deleted file]
src/OpenGl/OpenGl_togl_vieworientation.cxx [deleted file]
src/OpenGl/OpenGl_tox.cxx [deleted file]
src/OpenGl/OpenGl_traces.hxx [deleted file]
src/OpenGl/OpenGl_transform_persistence.cxx [deleted file]
src/OpenGl/OpenGl_transform_persistence.hxx
src/OpenGl/OpenGl_triedron.cxx [deleted file]
src/OpenGl/OpenGl_triedron.hxx [deleted file]
src/OpenGl/OpenGl_trsf_stack.hxx [deleted file]
src/OpenGl/OpenGl_tsm.cxx [deleted file]
src/OpenGl/OpenGl_tsm.hxx
src/OpenGl/OpenGl_tsm_ws.hxx [deleted file]
src/OpenGl/OpenGl_txgl.cxx [deleted file]
src/OpenGl/OpenGl_txgl.hxx [deleted file]
src/OpenGl/OpenGl_undefined.cxx [deleted file]
src/OpenGl/OpenGl_userdraw.cxx [deleted file]
src/OpenGl/OpenGl_view.cxx [deleted file]
src/OpenGl/OpenGl_vind.cxx [deleted file]
src/OpenGl/OpenGl_ws.cxx [deleted file]
src/QADBMReflex/QADBMReflex.cdl [deleted file]
src/QADBMReflex/QADBMReflex.cxx [deleted file]
src/QADBMReflex/QADBMReflex_OCC749Prs.cdl [deleted file]
src/QADBMReflex/QADBMReflex_OCC749Prs.cxx [deleted file]
src/QADBMReflex/QADBMReflex_OCC749PrsUseVertex.cdl [deleted file]
src/QADBMReflex/QADBMReflex_OCC749PrsUseVertex.cxx [deleted file]
src/QADBMReflex/QADBMReflex_OCC749PrsUseVertexABV.cdl [deleted file]
src/QADBMReflex/QADBMReflex_OCC749PrsUseVertexABV.cxx [deleted file]
src/QADBMReflex/QADBMReflex_OCC749PrsUseVertexC.cdl [deleted file]
src/QADBMReflex/QADBMReflex_OCC749PrsUseVertexC.cxx [deleted file]
src/QADBMReflex/QADBMReflex_OCC749PrsUseVertexCABV.cdl [deleted file]
src/QADBMReflex/QADBMReflex_OCC749PrsUseVertexCABV.cxx [deleted file]
src/QADraw/QADraw_Additional.cxx
src/QAOCC/FILES
src/QAOCC/QAOCC.cdl
src/QAOCC/QAOCC.cxx
src/QAOCC/QAOCC_OCC749Prs.cdl [deleted file]
src/QAOCC/QAOCC_OCC749Prs.cxx [deleted file]
src/TKQADraw/PACKAGES
src/VoxelClient/VoxelClient_VisDrawer.cxx
src/VoxelClient/VoxelClient_VisDrawer.h

index 6e7f7bb..184377d 100755 (executable)
@@ -28,24 +28,6 @@ Graphic3d_CView.cxx
 Graphic3d_CView.hxx
 Graphic3d_CGraduatedTrihedron.cxx
 Graphic3d_CGraduatedTrihedron.hxx
-Graphic3d_GraphicDriver_1.cxx
-Graphic3d_GraphicDriver_2.cxx
-Graphic3d_GraphicDriver_3.cxx
-Graphic3d_GraphicDriver_4.cxx
-Graphic3d_GraphicDriver_5.cxx
-Graphic3d_GraphicDriver_6.cxx
-Graphic3d_GraphicDriver_7.cxx
-Graphic3d_GraphicDriver_703.cxx
-Graphic3d_GraphicDriver_705.cxx
-Graphic3d_GraphicDriver_707.cxx
-Graphic3d_GraphicDriver_709.cxx
-Graphic3d_GraphicDriver_710.cxx
-Graphic3d_GraphicDriver_711.cxx
-Graphic3d_GraphicDriver_712.cxx
-Graphic3d_GraphicDriver_8.cxx
-Graphic3d_GraphicDriver_9.cxx
-Graphic3d_GraphicDriver_Layer.cxx
-Graphic3d_GraphicDriver_Print.cxx
 Graphic3d_Structure.pxx
 Graphic3d_Group.pxx
 Graphic3d_Group_1.cxx
@@ -58,7 +40,6 @@ Graphic3d_Group_8.cxx
 Graphic3d_Group_9.cxx
 Graphic3d_Group_10.cxx
 Graphic3d_Group_11.cxx
-Graphic3d_Group_12.cxx
 Graphic3d_Structure.pxx
 Graphic3d_DataStructure.pxx
 Graphic3d_StructureManager.pxx
@@ -67,11 +48,9 @@ Graphic3d_CMPLRS.edl
 Graphic3d_WOKSteps.edl
 Graphic3d_PrimitiveArray.hxx
 Graphic3d_Group_13.cxx
-Graphic3d_GraphicDriver_713.cxx
 Graphic3d_TransModeFlags.hxx
 Graphic3d_CTransPersStruct.hxx
 Graphic3d_CTransPersStruct.cxx
-Graphic3d_GraphicDriver_Export.cxx
 Graphic3d_NListOfHAsciiString.hxx
 Graphic3d_AspectText3d.cxx
 Graphic3d_WNTGraphicDevice.cxx
index b4cc4c0..63d3eed 100755 (executable)
@@ -33,11 +33,10 @@ deferred class GraphicDriver from Graphic3d inherits GraphicDriver from Aspect
 
     ---Version:
 
-    ---Purpose: This class allows the definition of a graphic
-    --      driver and encapsulates the Pex driver, the
-    --      OpenGl driver, the Optimizer driver and the Phigs driver.
+    ---Purpose: This class allows the definition of a graphic driver
+    --      (currently only OpenGl driver is used).
 
-    ---Keywords: Pex, OpenGl, Optimizer, Phigs
+    ---Keywords: OpenGl
 
     ---Warning:
     ---References:
@@ -400,7 +399,7 @@ is
                         AColor2: Color from Quantity;
                          FillStyle : GradientFillMethod from Aspect
                        )
-    is virtual;
+    is deferred;
     ---Purpose: call_togl_gradient_background
 
 
@@ -418,7 +417,7 @@ is
     SetBgGradientStyle( me        : mutable;
                         ACView    : CView from Graphic3d;
                         FillStyle : GradientFillMethod from Aspect )
-    is virtual;
+    is deferred;
 
     ClipLimit ( me      : mutable;
                 ACView  : CView from Graphic3d;
@@ -714,46 +713,6 @@ is
         is deferred;
     ---Purpose: call_togl_quadrangle
 
-    QuadrangleSet ( me          : mutable;
-                    ACGroup     : CGroup from Graphic3d;
-                    ListVertex  : Array1OfVertex from Graphic3d;
-                    ListEdge    : Array1OfEdge from Aspect;
-                    EvalMinMax  : Boolean from Standard = Standard_True )
-        is deferred;
-    ---Purpose: call_togl_polygon_indices
-
-    QuadrangleSet ( me          : mutable;
-                    ACGroup     : CGroup from Graphic3d;
-                    ListVertex  : Array1OfVertexN from Graphic3d;
-                    ListEdge    : Array1OfEdge from Aspect;
-                    EvalMinMax  : Boolean from Standard = Standard_True )
-        is deferred;
-    ---Purpose: call_togl_polygon_indices
-
-    QuadrangleSet ( me          : mutable;
-                    ACGroup     : CGroup from Graphic3d;
-                    ListVertex  : Array1OfVertexNT from Graphic3d;
-                    ListEdge    : Array1OfEdge from Aspect;
-                    EvalMinMax  : Boolean from Standard = Standard_True )
-        is deferred;
-    ---Purpose: call_togl_polygon_indices
-
-    QuadrangleSet ( me          : mutable;
-                    ACGroup     : CGroup from Graphic3d;
-                    ListVertex  : Array1OfVertexC from Graphic3d;
-                    ListEdge    : Array1OfEdge from Aspect;
-                    EvalMinMax  : Boolean from Standard = Standard_True )
-        is deferred;
-    ---Purpose: call_togl_polygon_indices
-
-    QuadrangleSet ( me          : mutable;
-                    ACGroup     : CGroup from Graphic3d;
-                    ListVertex  : Array1OfVertexNC from Graphic3d;
-                    ListEdge    : Array1OfEdge from Aspect;
-                    EvalMinMax  : Boolean from Standard = Standard_True )
-        is deferred;
-    ---Purpose: call_togl_polygon_indices
-
     ----------------------------------------
     -- Category: Methods to create Text
     -- for Purpose : see Graphic3d_Group.cdl
@@ -884,7 +843,7 @@ is
 
     EnableVBO( me       : mutable;
                status   : Boolean from Standard )
-               is virtual;
+               is deferred;
     ---Purpose: enables/disables usage of OpenGL vertex buffer arrays while drawing primitiev arrays
 
     ----------------------------------------
@@ -949,26 +908,6 @@ is
     ---Purpose: call_togl_graduatedtrihedron_minmaxvalues
     is deferred;
 
-    ----------------------------------------
-    -- Category: Internal methods
-    -- for Purpose : see Graphic3d_Group.cdl
-    ----------------------------------------
-
-    Bezier ( me         : mutable;
-             ACGroup    : CGroup from Graphic3d;
-             ListVertex : Array1OfVertex from Graphic3d;
-             EvalMinMax : Boolean from Standard = Standard_True )
-        is deferred;
-    ---Purpose: call_togl_bezier
-
-    Bezier ( me         : mutable;
-             ACGroup    : CGroup from Graphic3d;
-             ListVertex : Array1OfVertex from Graphic3d;
-             ListWeight : Array1OfReal from TColStd;
-             EvalMinMax : Boolean from Standard = Standard_True )
-        is deferred;
-    ---Purpose: call_togl_bezier_weight
-
     ---------------------------
     -- Category: Animation mode
     ---------------------------
@@ -1202,7 +1141,7 @@ is
                         R       : ShortReal from Standard;
                         G       : ShortReal from Standard;
                         B       : ShortReal from Standard )
-        is virtual;
+        is deferred;
     ---Purpose: call_togl_set_text_attributes
 
     Text ( me       : mutable;
diff --git a/src/Graphic3d/Graphic3d_GraphicDriver_1.cxx b/src/Graphic3d/Graphic3d_GraphicDriver_1.cxx
deleted file mode 100755 (executable)
index 34ef747..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-// File   Graphic3d_GraphicDriver_1.cxx
-// Created  Mardi 28 janvier 1997
-// Author CAL
-// Modified     02.15.100 : JR : Clutter
-//    GG 27/12/02 IMP120302 Add new method Begin(Aspect_Display)
-
-//-Copyright  MatraDatavision 1997
-
-//-Version  
-
-//-Design Declaration des variables specifiques aux Drivers
-
-//-Warning  Un driver encapsule les Pex et OpenGl drivers
-
-//-References 
-
-//-Language C++ 2.0
-
-//-Declarations
-
-// for the class
-#include <Graphic3d_GraphicDriver.jxx>
-
-#include <Aspect_DriverDefinitionError.hxx>
-
-//-Aliases
-
-//-Global data definitions
-
-//-Methods, in order
-
-
-Standard_Boolean Graphic3d_GraphicDriver::Begin (const Standard_CString ) {
-  return Standard_True;
-}
-
-//RIC120302
-Standard_Boolean Graphic3d_GraphicDriver::Begin (const Aspect_Display)
-{
-  return Standard_True;
-}
-//RIC120302
-
-void Graphic3d_GraphicDriver::End () {
-}
-
-void Graphic3d_GraphicDriver::BeginAnimation (const Graphic3d_CView&
-                                              ) 
-{
-}
-
-void Graphic3d_GraphicDriver::EndAnimation (const Graphic3d_CView&
-                                            ) 
-{
-}
diff --git a/src/Graphic3d/Graphic3d_GraphicDriver_2.cxx b/src/Graphic3d/Graphic3d_GraphicDriver_2.cxx
deleted file mode 100755 (executable)
index 90178b7..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-// File   Graphic3d_GraphicDriver_2.cxx
-// Created  Mardi 28 janvier 1997
-// Author CAL
-//              15/09/97 ; PCT : ajout InquireTextureAvailable() pour les textures
-//              11/97 ; CAL : retrait de la dependance avec math
-//      02.15.100 : JR : Clutter
-
-//-Copyright  MatraDatavision 1997
-
-//-Version  
-
-//-Design Declaration des variables specifiques aux Drivers
-
-//-Warning  Un driver encapsule les Pex et OpenGl drivers
-
-//-References 
-
-//-Language C++ 2.0
-
-//-Declarations
-
-// for the class
-#include <Graphic3d_GraphicDriver.jxx>
-
-#include <TColStd_Array2OfReal.hxx>
-
-#include <Aspect_DriverDefinitionError.hxx>
-
-//-Aliases
-
-//-Global data definitions
-
-//-Methods, in order
-
-Standard_Integer Graphic3d_GraphicDriver::InquireLightLimit () {
-  return Standard_False;
-}
-
-void Graphic3d_GraphicDriver::InquireMat (const Graphic3d_CView&
-                                          , TColStd_Array2OfReal&
-                                          , TColStd_Array2OfReal&
-                                          )
-{
-}
-
-Standard_Integer Graphic3d_GraphicDriver::InquirePlaneLimit ()
-{
-  return Standard_False;
-}
-
-Standard_Integer Graphic3d_GraphicDriver::InquireViewLimit () 
-{
-  return Standard_False;
-}
-
-
-
-Standard_Boolean Graphic3d_GraphicDriver::InquireTextureAvailable () 
-{
-  return Standard_False;
-}
-
diff --git a/src/Graphic3d/Graphic3d_GraphicDriver_3.cxx b/src/Graphic3d/Graphic3d_GraphicDriver_3.cxx
deleted file mode 100755 (executable)
index 12c7eeb..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-// File   Graphic3d_GraphicDriver_3.cxx
-// Created  Mardi 28 janvier 1997
-// Author CAL
-//      02.15.100 : JR : Clutter
-
-//-Copyright  MatraDatavision 1997
-
-//-Version  
-
-//-Design Declaration des variables specifiques aux Drivers
-
-//-Warning  Un driver encapsule les Pex et OpenGl drivers
-
-//-References 
-
-//-Language C++ 2.0
-
-//-Declarations
-
-// for the class
-#include <Graphic3d_GraphicDriver.jxx>
-
-#include <Aspect_DriverDefinitionError.hxx>
-
-//-Aliases
-
-//-Global data definitions
-
-//-Methods, in order
-
-void Graphic3d_GraphicDriver::ClearGroup (const Graphic3d_CGroup& ) {
-}
-
-void Graphic3d_GraphicDriver::CloseGroup (const Graphic3d_CGroup& ) {
-}
-
-
-void Graphic3d_GraphicDriver::FaceContextGroup (const Graphic3d_CGroup& , const Standard_Integer NoInsert) {
-}
-
-
-void Graphic3d_GraphicDriver::Group (Graphic3d_CGroup& ) {
-}
-
-
-void Graphic3d_GraphicDriver::LineContextGroup (const Graphic3d_CGroup& , const Standard_Integer ) {
-}
-
-void Graphic3d_GraphicDriver::MarkerContextGroup (const Graphic3d_CGroup& , const Standard_Integer ) {
-}
-
-void Graphic3d_GraphicDriver::MarkerContextGroup (const Graphic3d_CGroup& , const Standard_Integer, const Standard_Integer, const Standard_Integer, const Handle(TColStd_HArray1OfByte)& ) {
-}
-
-
-
-void Graphic3d_GraphicDriver::OpenGroup (const Graphic3d_CGroup& ) {
-}
-
-
-void Graphic3d_GraphicDriver::RemoveGroup (const Graphic3d_CGroup& ) {
-}
-
-void Graphic3d_GraphicDriver::TextContextGroup (const Graphic3d_CGroup& , const Standard_Integer ) {
-
-}
diff --git a/src/Graphic3d/Graphic3d_GraphicDriver_4.cxx b/src/Graphic3d/Graphic3d_GraphicDriver_4.cxx
deleted file mode 100755 (executable)
index af88279..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-// File   Graphic3d_GraphicDriver_4.cxx
-// Created  Mardi 28 janvier 1997
-// Author CAL
-//      02.15.100 : JR : Clutter
-
-//-Copyright  MatraDatavision 1997
-
-//-Version  
-
-//-Design Declaration des variables specifiques aux Drivers
-
-//-Warning  Un driver encapsule les Pex et OpenGl drivers
-
-//-References 
-
-//-Language C++ 2.0
-
-//-Declarations
-
-// for the class
-#include <Graphic3d_GraphicDriver.jxx>
-
-#include <Aspect_DriverDefinitionError.hxx>
-
-//-Aliases
-
-//-Global data definitions
-
-//-Methods, in order
-
-
-void Graphic3d_GraphicDriver::ClearStructure (const Graphic3d_CStructure& ) {
-}
-
-void Graphic3d_GraphicDriver::Connect (const Graphic3d_CStructure& , const Graphic3d_CStructure& ) {
-}
-
-void Graphic3d_GraphicDriver::ContextStructure (const Graphic3d_CStructure& ) {
-}
-
-void Graphic3d_GraphicDriver::Disconnect (const Graphic3d_CStructure& , const Graphic3d_CStructure& ) {
-}
-
-void Graphic3d_GraphicDriver::DisplayStructure (const Graphic3d_CView& , const Graphic3d_CStructure& , const Standard_Integer ) {
-}
-
-void Graphic3d_GraphicDriver::EraseStructure (const Graphic3d_CView& , const Graphic3d_CStructure& ) {
-}
-
-void Graphic3d_GraphicDriver::RemoveStructure (const Graphic3d_CStructure& ) {
-}
-
-void Graphic3d_GraphicDriver::Structure (Graphic3d_CStructure& ) {
-}
diff --git a/src/Graphic3d/Graphic3d_GraphicDriver_5.cxx b/src/Graphic3d/Graphic3d_GraphicDriver_5.cxx
deleted file mode 100755 (executable)
index e697a58..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-// File   Graphic3d_GraphicDriver_5.cxx
-// Created  Mardi 28 janvier 1997
-// Author CAL
-//      02.15.100 : JR : Clutter
-
-//-Copyright  MatraDatavision 1997
-
-//-Version  
-
-//-Design Declaration des variables specifiques aux Drivers
-
-//-Warning  Un driver encapsule les Pex et OpenGl drivers
-
-//-References 
-
-//-Language C++ 2.0
-
-//-Declarations
-
-// for the class
-#include <Graphic3d_GraphicDriver.jxx>
-
-#include <Aspect_DriverDefinitionError.hxx>
-
-//-Aliases
-
-//-Global data definitions
-
-//-Methods, in order
-
-
-void Graphic3d_GraphicDriver::DumpGroup (const Graphic3d_CGroup& ) {
-}
-
-
-void Graphic3d_GraphicDriver::DumpStructure (const Graphic3d_CStructure& ) {
-}
-
-
-void Graphic3d_GraphicDriver::DumpView (const Graphic3d_CView& ) {
-}
-
-
-Standard_Boolean Graphic3d_GraphicDriver::ElementExploration (const Graphic3d_CStructure & , const Standard_Integer , Graphic3d_VertexNC& , Graphic3d_Vector& ) {
-  return Standard_False;
-}
-
-
-Graphic3d_TypeOfPrimitive Graphic3d_GraphicDriver::ElementType (const Graphic3d_CStructure & , const Standard_Integer ) {
-  return Graphic3d_TOP_UNDEFINED;
-}
diff --git a/src/Graphic3d/Graphic3d_GraphicDriver_6.cxx b/src/Graphic3d/Graphic3d_GraphicDriver_6.cxx
deleted file mode 100755 (executable)
index af0fba1..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-// File   Graphic3d_GraphicDriver_6.cxx
-// Created  Mardi 28 janvier 1997
-// Author CAL
-//      02.15.100 : JR : Clutter
-
-//-Copyright  MatraDatavision 1997
-
-//-Version  
-
-//-Design Declaration des variables specifiques aux Drivers
-
-//-Warning  Un driver encapsule les Pex et OpenGl drivers
-
-//-References 
-
-//-Language C++ 2.0
-
-//-Declarations
-
-// for the class
-#include <Graphic3d_GraphicDriver.jxx>
-
-#include <Aspect_DriverDefinitionError.hxx>
-
-//-Aliases
-
-//-Global data definitions
-
-//-Methods, in order
-
-void Graphic3d_GraphicDriver::InitPick () {
-}
-
-
-void Graphic3d_GraphicDriver::Pick (Graphic3d_CPick& ) {
-}
-
-void Graphic3d_GraphicDriver::PickId (const Graphic3d_CGroup& ) {
-}
diff --git a/src/Graphic3d/Graphic3d_GraphicDriver_7.cxx b/src/Graphic3d/Graphic3d_GraphicDriver_7.cxx
deleted file mode 100755 (executable)
index 9d8d1f1..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-// File   Graphic3d_GraphicDriver_7.cxx
-// Created  Mardi 28 janvier 1997
-// Author CAL
-// Modified     GG 10/11/99 PRO19603 Change the Redraw method (add redraw area capabillity)
-//    EUG 07/10/99 G003 Add DegenerateStructure() and 
-//              SetBackFacingModel() methods.
-//      02.15.100 : JR : Clutter
-
-//-Copyright  MatraDatavision 1997
-
-//-Version  
-
-//-Design Declaration des variables specifiques aux Drivers
-
-//-Warning  Un driver encapsule les Pex et OpenGl drivers
-
-//-References 
-
-//-Language C++ 2.0
-
-//-Declarations
-
-// for the class
-#include <Graphic3d_GraphicDriver.jxx>
-
-#include <Aspect_DriverDefinitionError.hxx>
-
-//-Aliases
-
-//-Global data definitions
-
-//-Methods, in order
-
-void Graphic3d_GraphicDriver::ActivateView (const Graphic3d_CView& ) {
-}
-
-void Graphic3d_GraphicDriver::AntiAliasing (const Graphic3d_CView& , const Standard_Boolean ) {
-}
-
-void Graphic3d_GraphicDriver::Background (const Graphic3d_CView& ) {
-}
-
-void Graphic3d_GraphicDriver::GradientBackground( const Graphic3d_CView& ACView,
-                                                  const Quantity_Color& AColor1, const Quantity_Color& AColor2,
-                                                  const Aspect_GradientFillMethod AType ){  
-}
-
-void Graphic3d_GraphicDriver::Blink (const Graphic3d_CStructure& , const Standard_Boolean ) {
-}
-
-void Graphic3d_GraphicDriver::BoundaryBox (const Graphic3d_CStructure& , const Standard_Boolean ) {
-}
-
-void Graphic3d_GraphicDriver::HighlightColor (const Graphic3d_CStructure& , const Standard_ShortReal , const Standard_ShortReal , const Standard_ShortReal , const Standard_Boolean ) {
-}
-
-void Graphic3d_GraphicDriver::NameSetStructure (const Graphic3d_CStructure& ) {
-}
-
-void Graphic3d_GraphicDriver::ClipLimit (const Graphic3d_CView& , const Standard_Boolean ) {
-}
-
-void Graphic3d_GraphicDriver::DeactivateView (const Graphic3d_CView& ) {
-}
-
-void Graphic3d_GraphicDriver::DepthCueing (const Graphic3d_CView& , const Standard_Boolean ) {
-}
-
-Standard_Boolean Graphic3d_GraphicDriver::ProjectRaster (const Graphic3d_CView& , const Standard_ShortReal , const Standard_ShortReal , const Standard_ShortReal , Standard_Integer& , Standard_Integer& ) {
-  return Standard_False;
-}
-
-Standard_Boolean Graphic3d_GraphicDriver::UnProjectRaster (const Graphic3d_CView& , const Standard_Integer , const Standard_Integer , const Standard_Integer , const Standard_Integer , const Standard_Integer , const Standard_Integer , Standard_ShortReal& , Standard_ShortReal& , Standard_ShortReal& ) {
-  return Standard_False;
-}
-
-Standard_Boolean Graphic3d_GraphicDriver::UnProjectRasterWithRay (const Graphic3d_CView& , const Standard_Integer , const Standard_Integer , const Standard_Integer , const Standard_Integer , const Standard_Integer , const Standard_Integer , Standard_ShortReal& , Standard_ShortReal& , Standard_ShortReal& , Standard_ShortReal& , Standard_ShortReal& , Standard_ShortReal& ) {
-  return Standard_False;
-}
-
-void Graphic3d_GraphicDriver::RatioWindow (const Graphic3d_CView& ) {
-}
-
-void Graphic3d_GraphicDriver::Redraw (const Graphic3d_CView& , const Aspect_CLayer2d& , const Aspect_CLayer2d& , const Standard_Integer , const Standard_Integer , const Standard_Integer , const Standard_Integer ) {
-}
-
-void Graphic3d_GraphicDriver::RemoveView (const Graphic3d_CView& ) {
-}
-
-void Graphic3d_GraphicDriver::SetLight (const Graphic3d_CView& ) {
-}
-
-void Graphic3d_GraphicDriver::SetPlane (const Graphic3d_CView& ) {
-}
-
-void Graphic3d_GraphicDriver::SetVisualisation (const Graphic3d_CView& ) {
-}
-
-void Graphic3d_GraphicDriver::TransformStructure (const Graphic3d_CStructure& ) {
-}
-
-void Graphic3d_GraphicDriver :: DegenerateStructure ( const Graphic3d_CStructure& ) {
-} 
-
-
-void Graphic3d_GraphicDriver::Transparency (const Graphic3d_CView& , const Standard_Boolean ) {
-}
-
-
-void Graphic3d_GraphicDriver::Update (const Graphic3d_CView& , const Aspect_CLayer2d& , const Aspect_CLayer2d& ) {
-}
-
-
-Standard_Boolean Graphic3d_GraphicDriver::View (Graphic3d_CView& ) {
-  return Standard_True;
-}
-
-void Graphic3d_GraphicDriver::ViewMapping (const Graphic3d_CView& , const Standard_Boolean ) {
-}
-
-void Graphic3d_GraphicDriver::ViewOrientation (const Graphic3d_CView& , const Standard_Boolean ) {
-}
-
-void Graphic3d_GraphicDriver :: SetBackFacingModel ( const Graphic3d_CView&  ) {
-}  // end Graphic3d_GraphicDriver :: SetBackFacingModel
diff --git a/src/Graphic3d/Graphic3d_GraphicDriver_703.cxx b/src/Graphic3d/Graphic3d_GraphicDriver_703.cxx
deleted file mode 100755 (executable)
index 79cc104..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-// File   Graphic3d_GraphicDriver_703.cxx
-// Created  Mardi 28 janvier 1997
-// Author CAL
-//      02.15.100 : JR : Clutter
-
-//-Copyright  MatraDatavision 1997
-
-//-Version  
-
-//-Design Declaration des variables specifiques aux Drivers
-
-//-Warning  Un driver encapsule les Pex et OpenGl drivers
-
-//-References 
-
-//-Language C++ 2.0
-
-//-Declarations
-
-// for the class
-#include <Graphic3d_GraphicDriver.jxx>
-#include <Aspect_TypeOfMarker.hxx>
-
-#include <Aspect_DriverDefinitionError.hxx>
-
-//-Aliases
-
-//-Global data definitions
-
-//-Methods, in order
-
-void Graphic3d_GraphicDriver::Marker (const Graphic3d_CGroup& , const Graphic3d_Vertex& , const Standard_Boolean ) {
-}
-
-void Graphic3d_GraphicDriver::MarkerSet (const Graphic3d_CGroup& , const Graphic3d_Array1OfVertex& , const Standard_Boolean ) {
-}
diff --git a/src/Graphic3d/Graphic3d_GraphicDriver_705.cxx b/src/Graphic3d/Graphic3d_GraphicDriver_705.cxx
deleted file mode 100755 (executable)
index 4d1eb40..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-// File                Graphic3d_GraphicDriver_705.cxx
-// Created     Mardi 28 janvier 1997
-// Author      CAL
-// Modified
-//              27/07/97 ; PCT : ajout coordonnee texture
-//      02.15.100 : JR : Clutter
-
-//-Copyright   MatraDatavision 1997
-
-//-Version     
-
-//-Design      Declaration des variables specifiques aux Drivers
-
-//-Warning     Un driver encapsule les Pex et OpenGl drivers
-
-//-References  
-
-//-Language    C++ 2.0
-
-//-Declarations
-
-// for the class
-#include <Graphic3d_GraphicDriver.jxx>
-
-#include <Aspect_DriverDefinitionError.hxx>
-
-//-Aliases
-
-//-Global data definitions
-
-//-Methods, in order
-
-void Graphic3d_GraphicDriver::Polygon (const Graphic3d_CGroup& , const Graphic3d_Array1OfVertex& , const Graphic3d_TypeOfPolygon , const Standard_Boolean ) {
-}
-
-void Graphic3d_GraphicDriver::Polygon (const Graphic3d_CGroup& , const Graphic3d_Array1OfVertex& , const Graphic3d_Vector& , const Graphic3d_TypeOfPolygon , const Standard_Boolean ) {
-}
-
-void Graphic3d_GraphicDriver::Polygon (const Graphic3d_CGroup& , const Graphic3d_Array1OfVertexN& , const Graphic3d_TypeOfPolygon , const Standard_Boolean ) {
-}
-
-void Graphic3d_GraphicDriver::Polygon (const Graphic3d_CGroup& , const Graphic3d_Array1OfVertexN& , const Graphic3d_Vector& , const Graphic3d_TypeOfPolygon , const Standard_Boolean ) {
-}
-
-
-void Graphic3d_GraphicDriver::Polygon(const Graphic3d_CGroup& ,const Graphic3d_Array1OfVertexNT& ,const Graphic3d_TypeOfPolygon ,const Standard_Boolean ) 
-{
-}
-
-
-void Graphic3d_GraphicDriver::PolygonHoles (const Graphic3d_CGroup& , const TColStd_Array1OfInteger& , const Graphic3d_Array1OfVertex& , const Standard_Boolean ) {
-}
-
-void Graphic3d_GraphicDriver::PolygonHoles (const Graphic3d_CGroup& , const TColStd_Array1OfInteger& , const Graphic3d_Array1OfVertex& , const Graphic3d_Vector& , const Standard_Boolean ) {
-}
-
-void Graphic3d_GraphicDriver::PolygonHoles (const Graphic3d_CGroup& , const TColStd_Array1OfInteger& , const Graphic3d_Array1OfVertexN& , const Standard_Boolean ) {
-}
-
-void Graphic3d_GraphicDriver::PolygonHoles (const Graphic3d_CGroup& , const TColStd_Array1OfInteger& , const Graphic3d_Array1OfVertexN& , const Graphic3d_Vector& , const Standard_Boolean ) {
-}
diff --git a/src/Graphic3d/Graphic3d_GraphicDriver_707.cxx b/src/Graphic3d/Graphic3d_GraphicDriver_707.cxx
deleted file mode 100755 (executable)
index a760b73..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-// File   Graphic3d_GraphicDriver_707.cxx
-// Created  Mardi 28 janvier 1997
-// Author CAL
-//              11/97 ; CAL : ajout polyline par 2 points
-//      02.15.100 : JR : Clutter
-
-//-Copyright  MatraDatavision 1997
-
-//-Version  
-
-//-Design Declaration des variables specifiques aux Drivers
-
-//-Warning  Un driver encapsule les Pex et OpenGl drivers
-
-//-References 
-
-//-Language C++ 2.0
-
-//-Declarations
-
-// for the class
-#include <Graphic3d_GraphicDriver.jxx>
-
-#include <Aspect_DriverDefinitionError.hxx>
-
-//-Aliases
-
-//-Global data definitions
-
-//-Methods, in order
-
-void Graphic3d_GraphicDriver::Polyline (const Graphic3d_CGroup& , const Graphic3d_Array1OfVertex& , const Standard_Boolean ) {
-}
-
-void Graphic3d_GraphicDriver::Polyline (const Graphic3d_CGroup& , const Graphic3d_Array1OfVertexC& , const Standard_Boolean ) {
-}
-
-void Graphic3d_GraphicDriver::Polyline (const Graphic3d_CGroup& , const Standard_Real , const Standard_Real , const Standard_Real , const Standard_Real , const Standard_Real , const Standard_Real , const Standard_Boolean ) {
-}
diff --git a/src/Graphic3d/Graphic3d_GraphicDriver_709.cxx b/src/Graphic3d/Graphic3d_GraphicDriver_709.cxx
deleted file mode 100755 (executable)
index 352508c..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-// File   Graphic3d_GraphicDriver_709.cxx
-// Created  Mardi 28 janvier 1997
-// Author CAL
-// Modified
-//              27/08/97 ; PCT : ajout coordonnee texture
-//      02.15.100 : JR : Clutter
-
-//-Copyright  MatraDatavision 1997
-
-//-Version  
-
-//-Design Declaration des variables specifiques aux Drivers
-
-//-Warning  Un driver encapsule les Pex et OpenGl drivers
-
-//-References 
-
-//-Language C++ 2.0
-
-//-Declarations
-
-// for the class
-#include <Graphic3d_GraphicDriver.jxx>
-
-#include <Aspect_DriverDefinitionError.hxx>
-
-//-Aliases
-
-//-Global data definitions
-
-//-Methods, in order
-
-void Graphic3d_GraphicDriver::QuadrangleMesh (const Graphic3d_CGroup& , const Graphic3d_Array2OfVertex& , const Standard_Boolean ) {
-}
-
-void Graphic3d_GraphicDriver::QuadrangleMesh (const Graphic3d_CGroup& , const Graphic3d_Array2OfVertexN& , const Standard_Boolean ) {
-}
-
-
-void Graphic3d_GraphicDriver::QuadrangleMesh(const Graphic3d_CGroup& ,const Graphic3d_Array2OfVertexNT& ,const Standard_Boolean ) 
-{
-}
-
-
-void Graphic3d_GraphicDriver::QuadrangleSet (const Graphic3d_CGroup& , const Graphic3d_Array1OfVertex& , const Aspect_Array1OfEdge& , const Standard_Boolean ) {
-}
-
-void Graphic3d_GraphicDriver::QuadrangleSet (const Graphic3d_CGroup& , const Graphic3d_Array1OfVertexN& , const Aspect_Array1OfEdge& , const Standard_Boolean ) {
-}
-
-void Graphic3d_GraphicDriver::QuadrangleSet (const Graphic3d_CGroup& , const Graphic3d_Array1OfVertexC& , const Aspect_Array1OfEdge& , const Standard_Boolean ) {
-}
-
-void Graphic3d_GraphicDriver::QuadrangleSet (const Graphic3d_CGroup& , const Graphic3d_Array1OfVertexNC& , const Aspect_Array1OfEdge& , const Standard_Boolean ) {
-}
-
-
-void Graphic3d_GraphicDriver::QuadrangleSet(const Graphic3d_CGroup& ,const Graphic3d_Array1OfVertexNT& ,const Aspect_Array1OfEdge& ,const Standard_Boolean ) 
-{
-}
diff --git a/src/Graphic3d/Graphic3d_GraphicDriver_710.cxx b/src/Graphic3d/Graphic3d_GraphicDriver_710.cxx
deleted file mode 100755 (executable)
index 61b7807..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-// File   Graphic3d_GraphicDriver_710.cxx
-// Created  Mardi 28 janvier 1997
-// Author CAL
-//      02.15.100 : JR : Clutter
-
-//-Copyright  MatraDatavision 1997
-
-//-Version  
-
-//-Design Declaration des variables specifiques aux Drivers
-
-//-Warning  Un driver encapsule les Pex et OpenGl drivers
-
-//-References 
-
-//-Language C++ 2.0
-
-//-Declarations
-
-// for the class
-#include <Graphic3d_GraphicDriver.jxx>
-#include <TCollection_AsciiString.hxx>
-
-#include <Aspect_DriverDefinitionError.hxx>
-
-//-Aliases
-
-//-Global data definitions
-
-//-Methods, in order
-
-void Graphic3d_GraphicDriver::Text (
-                                    const Graphic3d_CGroup& ,
-                                    const Standard_CString ,
-                                    const Graphic3d_Vertex& ,
-                                    const Standard_Real ,
-                                    const Quantity_PlaneAngle ,
-                                    const Graphic3d_TextPath ,
-                                    const Graphic3d_HorizontalTextAlignment ,
-                                    const Graphic3d_VerticalTextAlignment ,
-                                    const Standard_Boolean 
-                                    ) 
-{
-}
-
-void Graphic3d_GraphicDriver::Text (
-                                    const Graphic3d_CGroup& ,
-                                    const Standard_CString , 
-                                    const Graphic3d_Vertex& , 
-                                    const Standard_Real , 
-                                    const Standard_Boolean 
-                                    ) 
-{
-}
-
-void Graphic3d_GraphicDriver::Text (
-                                    const Graphic3d_CGroup& ,
-                                    const TCollection_ExtendedString& , 
-                                    const Graphic3d_Vertex& , 
-                                    const Standard_Real , 
-                                    const Quantity_PlaneAngle , 
-                                    const Graphic3d_TextPath , 
-                                    const Graphic3d_HorizontalTextAlignment , 
-                                    const Graphic3d_VerticalTextAlignment , 
-                                    const Standard_Boolean 
-                                    ) 
-{
-}
-
-void Graphic3d_GraphicDriver::Text (
-                                    const Graphic3d_CGroup& ,
-                                    const TCollection_ExtendedString& , 
-                                    const Graphic3d_Vertex& , 
-                                    const Standard_Real , 
-                                    const Standard_Boolean 
-                                    )
-{
-}
diff --git a/src/Graphic3d/Graphic3d_GraphicDriver_711.cxx b/src/Graphic3d/Graphic3d_GraphicDriver_711.cxx
deleted file mode 100755 (executable)
index a035d16..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-// File   Graphic3d_GraphicDriver_711.cxx
-// Created  Mardi 28 janvier 1997
-// Author CAL
-//
-// Modified
-//              27/08/97 ; PCT : ajout coordonne texture
-//      02.15.100 : JR : Clutter
-
-//-Copyright  MatraDatavision 1997
-
-//-Version  
-
-//-Design Declaration des variables specifiques aux Drivers
-
-//-Warning  Un driver encapsule les Pex et OpenGl drivers
-
-//-References 
-
-//-Language C++ 2.0
-
-//-Declarations
-
-// for the class
-#include <Graphic3d_GraphicDriver.jxx>
-
-#include <Aspect_DriverDefinitionError.hxx>
-
-//-Aliases
-
-//-Global data definitions
-
-//-Methods, in order
-
-void Graphic3d_GraphicDriver::TriangleMesh (const Graphic3d_CGroup& , const Graphic3d_Array1OfVertex& , const Standard_Boolean ) {
-}
-
-void Graphic3d_GraphicDriver::TriangleMesh (const Graphic3d_CGroup& , const Graphic3d_Array1OfVertexN& , const Standard_Boolean ) {
-}
-
-
-void Graphic3d_GraphicDriver::TriangleMesh(const Graphic3d_CGroup& ,const Graphic3d_Array1OfVertexNT& ,const Standard_Boolean ) 
-{
-}
-
-
-void Graphic3d_GraphicDriver::TriangleSet (const Graphic3d_CGroup& , const Graphic3d_Array1OfVertex& , const Aspect_Array1OfEdge& , const Standard_Boolean ) {
-}
-
-void Graphic3d_GraphicDriver::TriangleSet (const Graphic3d_CGroup& , const Graphic3d_Array1OfVertexN& , const Aspect_Array1OfEdge& , const Standard_Boolean ) {
-}
-
-void Graphic3d_GraphicDriver::TriangleSet (const Graphic3d_CGroup& , const Graphic3d_Array1OfVertexC& , const Aspect_Array1OfEdge& , const Standard_Boolean ) {
-}
-
-void Graphic3d_GraphicDriver::TriangleSet (const Graphic3d_CGroup& , const Graphic3d_Array1OfVertexNC& , const Aspect_Array1OfEdge& , const Standard_Boolean ) {
-}
-
-
-
-void Graphic3d_GraphicDriver::TriangleSet(const Graphic3d_CGroup& ,const Graphic3d_Array1OfVertexNT& ,const Aspect_Array1OfEdge& ,const Standard_Boolean ) 
-{
-}
diff --git a/src/Graphic3d/Graphic3d_GraphicDriver_712.cxx b/src/Graphic3d/Graphic3d_GraphicDriver_712.cxx
deleted file mode 100755 (executable)
index 31933e4..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-// File         Graphic3d_GraphicDriver_712.cxx
-// Created      Mardi 28 janvier 1997
-// Author       CAL
-//      02.15.100 : JR : Clutter
-
-//-Copyright    MatraDatavision 1997
-
-//-Version
-
-//-Design       Declaration des variables specifiques aux Drivers
-
-//-Warning      Un driver encapsule les Pex et OpenGl drivers
-
-//-References
-
-//-Language     C++ 2.0
-
-//-Declarations
-
-// for the class
-#include <Graphic3d_GraphicDriver.jxx>
-
-#include <Aspect_DriverDefinitionError.hxx>
-
-//-Aliases
-
-//-Global data definitions
-
-//-Methods, in order
-
-
-void Graphic3d_GraphicDriver::Bezier (const Graphic3d_CGroup& , const Graphic3d_Array1OfVertex& , const Standard_Boolean ) {
-}
-
-void Graphic3d_GraphicDriver::Bezier (const Graphic3d_CGroup& , const Graphic3d_Array1OfVertex& , const TColStd_Array1OfReal& , const Standard_Boolean ) {
-}
diff --git a/src/Graphic3d/Graphic3d_GraphicDriver_713.cxx b/src/Graphic3d/Graphic3d_GraphicDriver_713.cxx
deleted file mode 100755 (executable)
index c75166a..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-// File         OpenGl_GraphicDriver_713.cxx
-// Created      22-10-01
-// Author       SAV
-
-
-// 09/07/02     SAV  - merged with file Graphic3d_GraphicDriver_713.cxx created 16/06/2000 by ATS  for G005 study.
-//Following routines are entry points for creation of PARRAY primitives for (used for presentation).
-
-#include <Graphic3d_GraphicDriver.jxx>
-#include <Aspect_DriverDefinitionError.hxx>
-
-#define  BUC61044    /* 25/10/01 SAV ; added functionality to control gl depth testing
-from higher API */
-#define  BUC61045    /* 25/10/01 SAV ; added functionality to control gl lighting 
-from higher API */
-
-
-void Graphic3d_GraphicDriver::SetDepthTestEnabled( const Graphic3d_CView&, const Standard_Boolean ) const {
-}
-
-Standard_Boolean Graphic3d_GraphicDriver::IsDepthTestEnabled( const Graphic3d_CView& ) const {
-  return Standard_True;
-}
-
-void Graphic3d_GraphicDriver::ReadDepths( const Graphic3d_CView&,
-                                          const Standard_Integer,
-                                          const Standard_Integer,
-                                          const Standard_Integer,
-                                          const Standard_Integer,
-                                          const Standard_Address ) const
-{
-}
-
-void Graphic3d_GraphicDriver::SetGLLightEnabled( const Graphic3d_CView&, const Standard_Boolean ) const { 
-}
-
-Standard_Boolean Graphic3d_GraphicDriver::IsGLLightEnabled( const Graphic3d_CView& ) const {
-  return Standard_True;
-}
-
-
-void Graphic3d_GraphicDriver :: PrimitiveArray ( const Graphic3d_CGroup&,const Graphic3d_PrimitiveArray&,const Standard_Boolean) {
-}
-
-
-void Graphic3d_GraphicDriver :: UserDraw ( const Graphic3d_CGroup&,
-                                           const Graphic3d_CUserDraw& )
-{
-}
-
-void Graphic3d_GraphicDriver::EnableVBO( const Standard_Boolean )
-{
-}
\ No newline at end of file
diff --git a/src/Graphic3d/Graphic3d_GraphicDriver_8.cxx b/src/Graphic3d/Graphic3d_GraphicDriver_8.cxx
deleted file mode 100755 (executable)
index fe82a5e..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-// File   Graphic3d_GraphicDriver_8.cxx
-// Created  Mardi 28 janvier 1997
-// Author CAL
-//      02.15.100 : JR : Clutter
-
-//-Copyright  MatraDatavision 1997
-
-//-Version  
-
-//-Design Declaration des variables specifiques aux Drivers
-
-//-Warning  Un driver encapsule les Pex et OpenGl drivers
-
-//-References 
-
-//-Language C++ 2.0
-
-//-Declarations
-
-// for the class
-#include <Graphic3d_GraphicDriver.jxx>
-
-#include <Aspect_DriverDefinitionError.hxx>
-
-//-Aliases
-
-//-Global data definitions
-
-//-Methods, in order
-
-
-Standard_Boolean Graphic3d_GraphicDriver::BeginAddMode (const Graphic3d_CView& ) {
-  return Standard_True;
-}
-
-void Graphic3d_GraphicDriver::EndAddMode (void) {
-}
-
-Standard_Boolean Graphic3d_GraphicDriver::BeginImmediatMode (const Graphic3d_CView& , const Aspect_CLayer2d& , const Aspect_CLayer2d& , const Standard_Boolean , const Standard_Boolean ) {
-  return Standard_True;
-}
-
-void Graphic3d_GraphicDriver::BeginPolyline () {
-}
-
-void Graphic3d_GraphicDriver::ClearImmediatMode (const Graphic3d_CView&, const Standard_Boolean ) {
-}
-
-void Graphic3d_GraphicDriver::Draw (const Standard_ShortReal , const Standard_ShortReal , const Standard_ShortReal ) {
-}
-
-void Graphic3d_GraphicDriver::DrawStructure (const Graphic3d_CStructure& ) {
-}
-
-void Graphic3d_GraphicDriver::EndImmediatMode (const Standard_Integer ) {
-}
-
-void Graphic3d_GraphicDriver::EndPolyline () {
-}
-
-void Graphic3d_GraphicDriver::Move (const Standard_ShortReal , const Standard_ShortReal , const Standard_ShortReal ) {
-}
-
-void Graphic3d_GraphicDriver::SetLineColor (const Standard_ShortReal , const Standard_ShortReal , const Standard_ShortReal ) {
-}
-
-void Graphic3d_GraphicDriver::SetLineType (const Standard_Integer ) {
-}
-
-void Graphic3d_GraphicDriver::SetLineWidth (const Standard_ShortReal ) {
-}
-
-
-void Graphic3d_GraphicDriver::SetMinMax (const Standard_ShortReal , const Standard_ShortReal , const Standard_ShortReal , const Standard_ShortReal , const Standard_ShortReal , const Standard_ShortReal ) {
-}
-
-void Graphic3d_GraphicDriver::Transform (const TColStd_Array2OfReal& , const Graphic3d_TypeOfComposition ) {
-
-}
diff --git a/src/Graphic3d/Graphic3d_GraphicDriver_9.cxx b/src/Graphic3d/Graphic3d_GraphicDriver_9.cxx
deleted file mode 100755 (executable)
index 8d3ab63..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-// File   Graphic3d_GraphicDriver_8.cxx
-// Created  Mardi 28 janvier 1997
-// Author CAL
-// modified:    1/07/97 ; PCT : ajout texture mapping
-//    16-09-98 ; BGN : Points d'entree du Triedre (S3819, Phase 1)
-//    22-09-98 ; BGN : S3989 (anciennement S3819)
-//                               TypeOfTriedron* from Aspect (pas Graphic3d)
-//      02.15.100 : JR : Clutter
-
-//-Copyright  MatraDatavision 1997
-
-//-Version  
-
-//-Design Declaration des variables specifiques aux Drivers
-
-//-Warning  Un driver encapsule les Pex et OpenGl drivers
-
-//-References 
-
-//-Language C++ 2.0
-
-//-Declarations
-
-
-//SAV 23/12/02 : Added methods to set background image.
-
-// for the class
-#include <Graphic3d_GraphicDriver.jxx>
-
-#include <Aspect_DriverDefinitionError.hxx>
-
-#include <stdlib.h>
-
-//-Aliases
-
-//-Global data definitions
-
-//-Methods, in order
-
-Standard_Integer Graphic3d_GraphicDriver::CreateTexture(const Graphic3d_TypeOfTexture ,const Handle_AlienImage_AlienImage &,const Standard_CString,const Handle(TColStd_HArray1OfReal)& TexUpperBounds ) const
-{
-  return -1;
-
-}
-
-void Graphic3d_GraphicDriver::DestroyTexture(const Standard_Integer ) const
-{
-}
-
-
-void Graphic3d_GraphicDriver::ModifyTexture(const Standard_Integer ,const Graphic3d_CInitTexture& ) const
-{
-}
-    
-void Graphic3d_GraphicDriver::Environment(const Graphic3d_CView& )
-{
-}
-
-
-//
-// Triedron methods : the Triedron is a non-zoomable object.
-//
-
-
-void Graphic3d_GraphicDriver::ZBufferTriedronSetup (
-  const Quantity_NameOfColor,
-  const Quantity_NameOfColor,
-  const Quantity_NameOfColor,
-  const Standard_Real,
-  const Standard_Real,
-  const Standard_Integer)
-{
-}
-     
-void Graphic3d_GraphicDriver::TriedronDisplay (
-  const Graphic3d_CView& ,
-  const Aspect_TypeOfTriedronPosition ,
-  const Quantity_NameOfColor , 
-  const Standard_Real,
-  const Standard_Boolean   )
-{
-}
-   
-void Graphic3d_GraphicDriver::TriedronErase (const Graphic3d_CView& ) 
-{
-}
-
-
-void Graphic3d_GraphicDriver::TriedronEcho (const Graphic3d_CView& ,const Aspect_TypeOfTriedronEcho  )
-{
-}
-
-
-void Graphic3d_GraphicDriver::BackgroundImage( const Standard_CString /*FileName*/, 
-                                              const Graphic3d_CView& /*ACView*/,
-                                              const Aspect_FillMethod /*FillStyle*/)
-{
-}
-
-void Graphic3d_GraphicDriver::SetBgImageStyle( const Graphic3d_CView& /*ACView*/,
-                                              const Aspect_FillMethod /*FillStyle*/)
-{
-}
-
-void Graphic3d_GraphicDriver::SetBgGradientStyle( const Graphic3d_CView& /*ACView*/,
-                                                  const Aspect_GradientFillMethod /*FillStyle*/)
-{
-}
-
-void Graphic3d_GraphicDriver::GraduatedTrihedronDisplay(const Graphic3d_CView&,
-                                                        const Graphic3d_CGraduatedTrihedron&)
-{
-}
-
-void Graphic3d_GraphicDriver::GraduatedTrihedronErase(const Graphic3d_CView&)
-{
-}
-
-void Graphic3d_GraphicDriver::GraduatedTrihedronMinMaxValues(const Standard_ShortReal,
-                                                             const Standard_ShortReal,
-                                                             const Standard_ShortReal,
-                                                             const Standard_ShortReal,
-                                                             const Standard_ShortReal,
-                                                             const Standard_ShortReal)
-{
-}
diff --git a/src/Graphic3d/Graphic3d_GraphicDriver_Export.cxx b/src/Graphic3d/Graphic3d_GraphicDriver_Export.cxx
deleted file mode 100755 (executable)
index b2eabf2..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-/************************************************************************/
-/* Includes                                                             */
-/************************************************************************/
-
-#include <Graphic3d_GraphicDriver.jxx>
-
-/************************************************************************/
-/* Print Methods                                                        */
-/************************************************************************/
-
-
-Standard_Boolean Graphic3d_GraphicDriver::Export (const Standard_CString theFileName,
-                                                  const Graphic3d_ExportFormat theFormat,
-                                                  const Graphic3d_SortType theSortType,
-                                                  const Standard_Integer theW,
-                                                  const Standard_Integer theH,
-                                                  const Graphic3d_CView& theView,
-                                                  const Aspect_CLayer2d& theLayerUnder,
-                                                  const Aspect_CLayer2d& theLayerOver,
-                                                  const Standard_Real    thePrecision,
-                                                  const Standard_Address theProgressBarFunc,
-                                                  const Standard_Address theProgressObject)
-{
-  return Standard_False;
-}
diff --git a/src/Graphic3d/Graphic3d_GraphicDriver_Layer.cxx b/src/Graphic3d/Graphic3d_GraphicDriver_Layer.cxx
deleted file mode 100755 (executable)
index f9cd062..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-// File   Graphic3d_GraphicDriver_Layer.cxx
-// Created  Mardi 3 novembre 1998
-// Author CAL
-//      02.15.100 : JR : Clutter
-
-//-Copyright  MatraDatavision 1998
-
-//-Version  
-
-//-Design Declaration des variables specifiques aux Drivers
-
-//-Warning  Un driver encapsule les Pex et OpenGl drivers
-
-//-References 
-
-//-Language C++ 2.0
-
-//-Declarations
-
-// for the class
-#include <Graphic3d_GraphicDriver.jxx>
-
-#include <Aspect_DriverDefinitionError.hxx>
-
-//-Aliases
-
-//-Global data definitions
-
-//-Methods, in order
-
-void Graphic3d_GraphicDriver::Layer (Aspect_CLayer2d& ) {
-}
-
-void Graphic3d_GraphicDriver::RemoveLayer (const Aspect_CLayer2d& ) {
-}
-
-void Graphic3d_GraphicDriver::BeginLayer (const Aspect_CLayer2d& ) {
-}
-
-void Graphic3d_GraphicDriver::BeginPolygon2d () {
-}
-
-void Graphic3d_GraphicDriver::BeginPolyline2d () {
-}
-
-void Graphic3d_GraphicDriver::ClearLayer (const Aspect_CLayer2d& ) {
-}
-
-void Graphic3d_GraphicDriver::Draw (const Standard_ShortReal , const Standard_ShortReal ) {
-}
-
-void Graphic3d_GraphicDriver::Edge (const Standard_ShortReal , const Standard_ShortReal ) {
-}
-
-void Graphic3d_GraphicDriver::EndLayer () {
-}
-
-void Graphic3d_GraphicDriver::EndPolygon2d () {
-}
-
-void Graphic3d_GraphicDriver::EndPolyline2d () {
-}
-
-void Graphic3d_GraphicDriver::Move (const Standard_ShortReal , const Standard_ShortReal ) {
-}
-
-void Graphic3d_GraphicDriver::Rectangle (const Standard_ShortReal , const Standard_ShortReal , const Standard_ShortReal , const Standard_ShortReal ) {
-}
-
-void Graphic3d_GraphicDriver::SetColor (const Standard_ShortReal , const Standard_ShortReal , const Standard_ShortReal ) {
-}
-
-void Graphic3d_GraphicDriver::SetTransparency (const Standard_ShortReal ) {
-}
-
-void Graphic3d_GraphicDriver::UnsetTransparency () {
-}
-
-void Graphic3d_GraphicDriver::SetLineAttributes (const Standard_Integer , const Standard_ShortReal ) {
-}
-
-void Graphic3d_GraphicDriver::SetTextAttributes (const Standard_CString Font, const Standard_Integer AType, const Standard_ShortReal R, const Standard_ShortReal G, const Standard_ShortReal B) {
-}
-
-void Graphic3d_GraphicDriver::Text (const Standard_CString , const Standard_ShortReal , const Standard_ShortReal , const Standard_ShortReal ) {
-}
-
-void Graphic3d_GraphicDriver::TextSize (const Standard_CString , const Standard_ShortReal , Standard_ShortReal& , Standard_ShortReal& , Standard_ShortReal& ) const {
-}
diff --git a/src/Graphic3d/Graphic3d_GraphicDriver_Print.cxx b/src/Graphic3d/Graphic3d_GraphicDriver_Print.cxx
deleted file mode 100755 (executable)
index ddc2075..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-// File         Graphic3d_GraphicDriver_Print.c
-// Created      March 2000
-// Author       THA
-// e-mail t-hartl@muenchen.matra-dtv.fr
-
-/************************************************************************/
-/* Includes                                                             */
-/************************************************************************/
-
-#include <Graphic3d_GraphicDriver.jxx>
-#include <Aspect_DriverDefinitionError.hxx>
-
-/************************************************************************/
-/* Print Methods                                                        */
-/************************************************************************/
-
-Standard_Boolean Graphic3d_GraphicDriver::Print (const Graphic3d_CView& , 
-                                                 const Aspect_CLayer2d& , 
-                                                 const Aspect_CLayer2d& , 
-                                                 const Aspect_Handle ,
-                                                 const Standard_Boolean ,
-                                                 const Standard_CString ,
-                                                 const Aspect_PrintAlgo ,
-                                                const Standard_Real ) const
-{
-  return Standard_False;
-}
index 60dbafa..c3e577a 100755 (executable)
         --  Warning: Raises GroupDefinitionError if <ListVertex> contains
         --      less than four points.
         raises GroupDefinitionError from Graphic3d is static;
-    
-        QuadrangleSet ( me          : mutable;
-                        ListVertex  : Array1OfVertex from Graphic3d;
-                        ListEdge    : Array1OfEdge from Aspect;
-                        EvalMinMax  : Boolean from Standard = Standard_True )
-        ---Level: Public
-        ---Purpose: Creates a group of quadrangles defined by a table of
-        --      vertices and a table of edges, visible or not.
-        --  Category: Methods to create Quadrangle
-        --  Warning: Raises GroupDefinitionError if <ListVertex> contains
-        --      less than four points or if <ListEdge> contains
-        --      less than four edges.
-        raises GroupDefinitionError from Graphic3d is static;
-    
-        QuadrangleSet ( me          : mutable;
-                        ListVertex  : Array1OfVertexN from Graphic3d;
-                        ListEdge    : Array1OfEdge from Aspect;
-                        EvalMinMax  : Boolean from Standard = Standard_True )
-        ---Level: Public
-        ---Purpose: Creates a group of quadrangles defined by a table of
-        --      vertices and a table of edges, visible or not.
-        --      For each vertex the normal is given.
-        --  Category: Methods to create Quadrangle
-        --  Warning: Raises GroupDefinitionError if <ListVertex> contains
-        --      less than four points or if <ListEdge> contains
-        --      less than four edges.
-        raises GroupDefinitionError from Graphic3d is static;
-    
-        QuadrangleSet ( me          : mutable;
-                        ListVertex  : Array1OfVertexNT from Graphic3d;
-                        ListEdge    : Array1OfEdge from Aspect;
-                        EvalMinMax  : Boolean from Standard = Standard_True )
-        ---Level: Public
-        ---Purpose: Creates a group of quadrangles defined by a table of
-        --      vertices and a table of edges, visible or not.
-        --      For each vertex the normal is given.
-        --      For each vertex a texture coordinate is given.
-        --  Category: Methods to create Quadrangle
-        --  Warning: Raises GroupDefinitionError if <ListVertex> contains
-        --      less than four points or if <ListEdge> contains
-        --      less than four edges.
-        raises GroupDefinitionError from Graphic3d is static;
-    
-        QuadrangleSet ( me          : mutable;
-                        ListVertex  : Array1OfVertexC from Graphic3d;
-                        ListEdge    : Array1OfEdge from Aspect;
-                        EvalMinMax  : Boolean from Standard = Standard_True )
-        ---Level: Public
-        ---Purpose: Creates a group of quadrangles defined by a table of
-        --      vertices and a table of edges, visible or not.
-        --      For each vertex the color is given.
-        --  Category: Methods to create Quadrangle
-        --  Warning: Raises GroupDefinitionError if <ListVertex> contains
-        --      less than four points or if <ListEdge> contains
-        --      less than four edges.
-        raises GroupDefinitionError from Graphic3d is static;
-    
-        QuadrangleSet ( me          : mutable;
-                        ListVertex  : Array1OfVertexNC from Graphic3d;
-                        ListEdge    : Array1OfEdge from Aspect;
-                        EvalMinMax  : Boolean from Standard = Standard_True )
-        ---Level: Public
-        ---Purpose: Creates a group of quadrangles defined by a table of
-        --      vertices and a table of edges, visible or not.
-        --      For each vertex the normal and the color are given.
-        --  Category: Methods to create Quadrangle
-        --  Warning: Raises GroupDefinitionError if <ListVertex> contains
-        --      less than four points or if <ListEdge> contains
-        --      less than four edges.
-        raises GroupDefinitionError from Graphic3d is static;
-    
+
         -----------------------------------
         -- Category: Methods to create Text
         -----------------------------------
diff --git a/src/Graphic3d/Graphic3d_Group_12.cxx b/src/Graphic3d/Graphic3d_Group_12.cxx
deleted file mode 100755 (executable)
index 976dc78..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-
-// File                Graphic3d_Group_12.cxx (Curve)
-// Created     Aout 1994
-// Author      NW,JPB,CAL
-
-//-Copyright   MatraDatavision 1994
-
-//-Version     
-
-//-Design      Declaration des variables specifiques aux groupes
-//             de primitives
-
-//-Warning     Un groupe est defini dans une structure
-//             Il s'agit de la plus petite entite editable
-
-//-References  
-
-//-Language    C++ 2.0
-
-//-Declarations
-
-// for the class
-#include <Graphic3d_Group.jxx>
-#include <Graphic3d_Group.pxx>
-
-//-Methods, in order
-
-void Graphic3d_Group::Bezier (const Graphic3d_Array1OfVertex& ListVertex, const Standard_Boolean EvalMinMax) {
-
-       if (IsDeleted ()) return;
-
-       MyIsEmpty       = Standard_False;
-
-Standard_Integer i, j;
-
-       i       = ListVertex.Length ();
-
-       if (i <= 2)
-       Graphic3d_GroupDefinitionError::Raise ("Bad number of vertices");
-
-       // Min-Max Update
-       if (EvalMinMax) {
-Standard_Real X, Y, Z;
-Standard_Integer Lower = ListVertex.Lower ();
-Standard_Integer Upper = ListVertex.Upper ();
-               // Parcours des sommets
-               for (j=0, i=Lower; i<=Upper; i++, j++) {
-                       ListVertex (i).Coord (X, Y, Z);
-                       if (X < MyBounds.XMin) MyBounds.XMin    = Standard_ShortReal (X);
-                       if (Y < MyBounds.YMin) MyBounds.YMin    = Standard_ShortReal (Y);
-                       if (Z < MyBounds.ZMin) MyBounds.ZMin    = Standard_ShortReal (Z);
-                       if (X > MyBounds.XMax) MyBounds.XMax    = Standard_ShortReal (X);
-                       if (Y > MyBounds.YMax) MyBounds.YMax    = Standard_ShortReal (Y);
-                       if (Z > MyBounds.ZMax) MyBounds.ZMax    = Standard_ShortReal (Z);
-               }
-       }
-
-       MyGraphicDriver->Bezier (MyCGroup, ListVertex, EvalMinMax);
-
-       Update ();
-
-}
-
-void Graphic3d_Group::Bezier (const Graphic3d_Array1OfVertex& ListVertex, const TColStd_Array1OfReal& ListWeight, const Standard_Boolean EvalMinMax) {
-
-       if (IsDeleted ()) return;
-
-       MyIsEmpty       = Standard_False;
-
-Standard_Integer i, j;
-
-       i       = ListVertex.Length ();
-       j       = ListWeight.Length ();
-
-       if ((i <= 2) || (i != j))
-       Graphic3d_GroupDefinitionError::Raise ("Bad number of vertices");
-
-       // Min-Max Update
-       if (EvalMinMax) {
-Standard_Real X, Y, Z;
-Standard_Integer Lower = ListVertex.Lower ();
-Standard_Integer Upper = ListVertex.Upper ();
-               // Parcours des sommets
-               for (j=0, i=Lower; i<=Upper; i++, j++) {
-                       ListVertex (i).Coord (X, Y, Z);
-                       if (X < MyBounds.XMin) MyBounds.XMin    = Standard_ShortReal (X);
-                       if (Y < MyBounds.YMin) MyBounds.YMin    = Standard_ShortReal (Y);
-                       if (Z < MyBounds.ZMin) MyBounds.ZMin    = Standard_ShortReal (Z);
-                       if (X > MyBounds.XMax) MyBounds.XMax    = Standard_ShortReal (X);
-                       if (Y > MyBounds.YMax) MyBounds.YMax    = Standard_ShortReal (Y);
-                       if (Z > MyBounds.ZMax) MyBounds.ZMax    = Standard_ShortReal (Z);
-               }
-       }
-
-       MyGraphicDriver->Bezier
-               (MyCGroup, ListVertex, ListWeight, EvalMinMax);
-
-       Update ();
-
-}
index d1ea2a5..40c5ce7 100755 (executable)
 
 //-Declarations
 
-// for the class
 #include <Graphic3d_Group.jxx>
 #include <Graphic3d_Group.pxx>
 
-#include <Graphic3d_VertexN.hxx>
-#include <Graphic3d_VertexC.hxx>
-#include <Graphic3d_VertexNT.hxx>
-
-//-Methods, in order
-
 void Graphic3d_Group::QuadrangleMesh (const Graphic3d_Array2OfVertex& ListVertex, const Standard_Boolean EvalMinMax) {
 
        if (IsDeleted ()) return;
@@ -141,207 +134,3 @@ Standard_Integer UpperCol = ListVertex.UpperCol ();
        Update ();
 
 }
-
-
-void Graphic3d_Group::QuadrangleSet (const Graphic3d_Array1OfVertex& ListVertex, const Aspect_Array1OfEdge& ListEdge, const Standard_Boolean EvalMinMax) {
-
-       if (IsDeleted ()) return;
-
-       if (! MyContainsFacet) MyStructure->GroupsWithFacet (+1);
-       MyContainsFacet = Standard_True;
-       MyIsEmpty       = Standard_False;
-
-Standard_Integer i, j;
-
-       i       = ListVertex.Length ();
-       j       = ListEdge.Length ();
-
-       if ((i <= 3) || (j <= 3))
-       Graphic3d_GroupDefinitionError::Raise ("Bad number of vertices");
-
-       // Min-Max Update
-       if (EvalMinMax) {
-Standard_Real X, Y, Z;
-Standard_Integer Lower = ListVertex.Lower ();
-Standard_Integer Upper = ListVertex.Upper ();
-               // Parcours des sommets
-               for (j=0, i=Lower; i<=Upper; i++, j++) {
-                       ListVertex (i).Coord (X, Y, Z);
-                       if (X < MyBounds.XMin) MyBounds.XMin    = Standard_ShortReal (X);
-                       if (Y < MyBounds.YMin) MyBounds.YMin    = Standard_ShortReal (Y);
-                       if (Z < MyBounds.ZMin) MyBounds.ZMin    = Standard_ShortReal (Z);
-                       if (X > MyBounds.XMax) MyBounds.XMax    = Standard_ShortReal (X);
-                       if (Y > MyBounds.YMax) MyBounds.YMax    = Standard_ShortReal (Y);
-                       if (Z > MyBounds.ZMax) MyBounds.ZMax    = Standard_ShortReal (Z);
-               }
-       }
-
-       MyGraphicDriver->QuadrangleSet
-               (MyCGroup, ListVertex, ListEdge, EvalMinMax);
-
-       Update ();
-
-}
-
-void Graphic3d_Group::QuadrangleSet (const Graphic3d_Array1OfVertexN& ListVertex, const Aspect_Array1OfEdge& ListEdge, const Standard_Boolean EvalMinMax) {
-
-       if (IsDeleted ()) return;
-
-       if (! MyContainsFacet) MyStructure->GroupsWithFacet (+1);
-       MyContainsFacet = Standard_True;
-       MyIsEmpty       = Standard_False;
-
-Standard_Integer i, j;
-
-       i       = ListVertex.Length ();
-       j       = ListEdge.Length ();
-
-       if ((i <= 3) || (j <= 3))
-       Graphic3d_GroupDefinitionError::Raise ("Bad number of vertices");
-
-       // Min-Max Update
-       if (EvalMinMax) {
-Standard_Real X, Y, Z;
-Standard_Integer Lower = ListVertex.Lower ();
-Standard_Integer Upper = ListVertex.Upper ();
-               // Parcours des sommets
-               for (j=0, i=Lower; i<=Upper; i++, j++) {
-                       ListVertex (i).Coord (X, Y, Z);
-                       if (X < MyBounds.XMin) MyBounds.XMin    = Standard_ShortReal (X);
-                       if (Y < MyBounds.YMin) MyBounds.YMin    = Standard_ShortReal (Y);
-                       if (Z < MyBounds.ZMin) MyBounds.ZMin    = Standard_ShortReal (Z);
-                       if (X > MyBounds.XMax) MyBounds.XMax    = Standard_ShortReal (X);
-                       if (Y > MyBounds.YMax) MyBounds.YMax    = Standard_ShortReal (Y);
-                       if (Z > MyBounds.ZMax) MyBounds.ZMax    = Standard_ShortReal (Z);
-               }
-       }
-
-       MyGraphicDriver->QuadrangleSet
-               (MyCGroup, ListVertex, ListEdge, EvalMinMax);
-
-       Update ();
-
-}
-
-void Graphic3d_Group::QuadrangleSet (const Graphic3d_Array1OfVertexC& ListVertex, const Aspect_Array1OfEdge& ListEdge, const Standard_Boolean EvalMinMax) {
-
-       if (IsDeleted ()) return;
-
-       if (! MyContainsFacet) MyStructure->GroupsWithFacet (+1);
-       MyContainsFacet = Standard_True;
-       MyIsEmpty       = Standard_False;
-
-Standard_Integer i, j;
-
-       i       = ListVertex.Length ();
-       j       = ListEdge.Length ();
-
-       if ((i <= 3) || (j <= 3))
-       Graphic3d_GroupDefinitionError::Raise ("Bad number of vertices");
-
-       // Min-Max Update
-       if (EvalMinMax) {
-Standard_Real X, Y, Z;
-Standard_Integer Lower = ListVertex.Lower ();
-Standard_Integer Upper = ListVertex.Upper ();
-               // Parcours des sommets
-               for (j=0, i=Lower; i<=Upper; i++, j++) {
-                       ListVertex (i).Coord (X, Y, Z);
-                       if (X < MyBounds.XMin) MyBounds.XMin    = Standard_ShortReal (X);
-                       if (Y < MyBounds.YMin) MyBounds.YMin    = Standard_ShortReal (Y);
-                       if (Z < MyBounds.ZMin) MyBounds.ZMin    = Standard_ShortReal (Z);
-                       if (X > MyBounds.XMax) MyBounds.XMax    = Standard_ShortReal (X);
-                       if (Y > MyBounds.YMax) MyBounds.YMax    = Standard_ShortReal (Y);
-                       if (Z > MyBounds.ZMax) MyBounds.ZMax    = Standard_ShortReal (Z);
-               }
-       }
-
-       MyGraphicDriver->QuadrangleSet
-               (MyCGroup, ListVertex, ListEdge, EvalMinMax);
-
-       Update ();
-
-}
-
-void Graphic3d_Group::QuadrangleSet (const Graphic3d_Array1OfVertexNC& ListVertex, const Aspect_Array1OfEdge& ListEdge, const Standard_Boolean EvalMinMax) {
-
-       if (IsDeleted ()) return;
-
-       if (! MyContainsFacet) MyStructure->GroupsWithFacet (+1);
-       MyContainsFacet = Standard_True;
-       MyIsEmpty       = Standard_False;
-
-Standard_Integer i, j;
-
-       i       = ListVertex.Length ();
-       j       = ListEdge.Length ();
-
-       if ((i <= 3) || (j <= 3))
-       Graphic3d_GroupDefinitionError::Raise ("Bad number of vertices");
-
-       // Min-Max Update
-       if (EvalMinMax) {
-Standard_Real X, Y, Z;
-Standard_Integer Lower = ListVertex.Lower ();
-Standard_Integer Upper = ListVertex.Upper ();
-               // Parcours des sommets
-               for (j=0, i=Lower; i<=Upper; i++, j++) {
-                       ListVertex (i).Coord (X, Y, Z);
-                       if (X < MyBounds.XMin) MyBounds.XMin    = Standard_ShortReal (X);
-                       if (Y < MyBounds.YMin) MyBounds.YMin    = Standard_ShortReal (Y);
-                       if (Z < MyBounds.ZMin) MyBounds.ZMin    = Standard_ShortReal (Z);
-                       if (X > MyBounds.XMax) MyBounds.XMax    = Standard_ShortReal (X);
-                       if (Y > MyBounds.YMax) MyBounds.YMax    = Standard_ShortReal (Y);
-                       if (Z > MyBounds.ZMax) MyBounds.ZMax    = Standard_ShortReal (Z);
-               }
-       }
-
-       MyGraphicDriver->QuadrangleSet
-               (MyCGroup, ListVertex, ListEdge, EvalMinMax);
-
-       Update ();
-
-}
-
-
-
-void Graphic3d_Group::QuadrangleSet(const Graphic3d_Array1OfVertexNT& ListVertex,const Aspect_Array1OfEdge& ListEdge,const Standard_Boolean EvalMinMax) 
-{
-
-       if (IsDeleted ()) return;
-
-       if (! MyContainsFacet) MyStructure->GroupsWithFacet (+1);
-       MyContainsFacet = Standard_True;
-       MyIsEmpty       = Standard_False;
-
-Standard_Integer i, j;
-
-       i       = ListVertex.Length ();
-       j       = ListEdge.Length ();
-
-       if ((i <= 3) || (j <= 3))
-       Graphic3d_GroupDefinitionError::Raise ("Bad number of vertices");
-
-       // Min-Max Update
-       if (EvalMinMax) {
-Standard_Real X, Y, Z;
-Standard_Integer Lower = ListVertex.Lower ();
-Standard_Integer Upper = ListVertex.Upper ();
-               // Parcours des sommets
-               for (j=0, i=Lower; i<=Upper; i++, j++) {
-                       ListVertex (i).Coord (X, Y, Z);
-                       if (X < MyBounds.XMin) MyBounds.XMin    = Standard_ShortReal (X);
-                       if (Y < MyBounds.YMin) MyBounds.YMin    = Standard_ShortReal (Y);
-                       if (Z < MyBounds.ZMin) MyBounds.ZMin    = Standard_ShortReal (Z);
-                       if (X > MyBounds.XMax) MyBounds.XMax    = Standard_ShortReal (X);
-                       if (Y > MyBounds.YMax) MyBounds.YMax    = Standard_ShortReal (Y);
-                       if (Z > MyBounds.ZMax) MyBounds.ZMax    = Standard_ShortReal (Z);
-               }
-       }
-
-       MyGraphicDriver->QuadrangleSet
-               (MyCGroup, ListVertex, ListEdge, EvalMinMax);
-
-       Update ();
-
-}
index fbbb96b..3421364 100755 (executable)
@@ -1,10 +1,8 @@
 EXTERNLIB
-OpenGl_triedron.cxx
 OpenGl_CMPLRS.edl
-OpenGl_FontMgr.hxx
-OpenGl_FontMgr.cxx
-OpenGl_AVIWriter.hxx
-OpenGl_AVIWriter.cxx
+Handle_OpenGl_GraphicDriver.hxx
+OpenGl_GraphicDriver.hxx
+OpenGl_GraphicDriver.cxx
 OpenGl_GraphicDriver_1.cxx
 OpenGl_GraphicDriver_2.cxx
 OpenGl_GraphicDriver_3.cxx
@@ -12,240 +10,117 @@ OpenGl_GraphicDriver_4.cxx
 OpenGl_GraphicDriver_5.cxx
 OpenGl_GraphicDriver_6.cxx
 OpenGl_GraphicDriver_7.cxx
+OpenGl_GraphicDriver_8.cxx
+OpenGl_GraphicDriver_9.cxx
 OpenGl_GraphicDriver_703.cxx
 OpenGl_GraphicDriver_705.cxx
 OpenGl_GraphicDriver_707.cxx
 OpenGl_GraphicDriver_709.cxx
 OpenGl_GraphicDriver_710.cxx
 OpenGl_GraphicDriver_711.cxx
-OpenGl_GraphicDriver_712.cxx
-OpenGl_GraphicDriver_8.cxx
-OpenGl_GraphicDriver_9.cxx
-OpenGl_GraphicDriver_print.cxx
+OpenGl_GraphicDriver_713.cxx
 OpenGl_GraphicDriver_Layer.cxx
-OpenGl.cdl
-OpenGl_addnames.cxx
-OpenGl_animation.hxx
-OpenGl_antialias.cxx
-OpenGl_applid.cxx
-OpenGl_attri.cxx
-OpenGl_bintcol.cxx
-OpenGl_bintrefl.cxx
-OpenGl_bsurfprop.cxx
-OpenGl_charexpan.cxx
-OpenGl_charspace.cxx
-OpenGl_cmn_varargs.hxx
-OpenGl_context.hxx
-OpenGl_curve.cxx
-OpenGl_degeneration.hxx
-OpenGl_degmodel.cxx
-OpenGl_depthcue.cxx
-OpenGl_dind.cxx
-OpenGl_edgecol.cxx
-OpenGl_edgeflag.cxx
-OpenGl_edgetyp.cxx
-OpenGl_edgewid.cxx
-OpenGl_execstruct.cxx
-OpenGl_Extension.hxx
-OpenGl_Extension.cxx
-OpenGl_facecull.cxx
-OpenGl_facedmode.cxx
-OpenGl_filters.cxx
-OpenGl_funcs.cxx
-OpenGl_highlight.cxx
-OpenGl_hlind.cxx
-OpenGl_ImageBox.hxx
-OpenGl_ImageBox.cxx
-OpenGl_indexpolygons.cxx
-OpenGl_initelem.cxx
-OpenGl_inquire.cxx
-OpenGl_inquire.hxx
-OpenGl_intcol.cxx
-OpenGl_intrefl.cxx
-OpenGl_intshademtd.cxx
-OpenGl_intstyle.cxx
-OpenGl_intstyleind.cxx
-OpenGl_label.cxx
-OpenGl_lightstate.cxx
-OpenGl_localtran3.cxx
-OpenGl_LightBox.cxx
-OpenGl_LightBox.hxx
-OpenGl_mrkr.cxx
-OpenGl_mrkrcol.cxx
-OpenGl_mrkrset.cxx
-OpenGl_mrkrsize.cxx
-OpenGl_mrkrtype.cxx
-OpenGl_pick.cxx
-OpenGl_pickid.cxx
-OpenGl_polygon.cxx
-OpenGl_polygonholes.cxx
-OpenGl_polygonoffset.cxx
-OpenGl_polyl.cxx
-OpenGl_polylcol.cxx
-OpenGl_polyltyp.cxx
-OpenGl_polylwid.cxx
-OpenGl_qstrip.cxx
-OpenGl_remnames.cxx
-OpenGl_subrs.cxx
-OpenGl_subrvis.cxx
-OpenGl_surfprop.cxx
-OpenGl_telem.hxx
-OpenGl_telem_attri.hxx
-OpenGl_telem_depthcue.hxx
-OpenGl_telem_filters.hxx
-OpenGl_telem_highlight.hxx
-OpenGl_telem_inquire.hxx
-OpenGl_telem_pick.hxx
-OpenGl_telem_util.cxx
-OpenGl_telem_util.hxx
+OpenGl_GraphicDriver_print.cxx
+OpenGl_GraphicDriver_Export.cxx
+OpenGl_AspectLine.hxx
+OpenGl_AspectLine.cxx
+OpenGl_AspectFace.hxx
+OpenGl_AspectFace.cxx
+OpenGl_AspectMarker.hxx
+OpenGl_AspectMarker.cxx
+OpenGl_AspectText.hxx
+OpenGl_AspectText.cxx
+OpenGl_Group.hxx
+OpenGl_Group.cxx
+OpenGl_Structure.hxx
+OpenGl_Structure.cxx
+OpenGl_Element.hxx
+OpenGl_Text.hxx
+OpenGl_Text.cxx
+OpenGl_Polyline.hxx
+OpenGl_Polyline.cxx
+OpenGl_Marker.hxx
+OpenGl_Marker.cxx
+OpenGl_MarkerSet.hxx
+OpenGl_MarkerSet.cxx
+OpenGl_Polygon.hxx
+OpenGl_Polygon.cxx
+OpenGl_QuadrangleStrip.hxx
+OpenGl_QuadrangleStrip.cxx
+OpenGl_TriangleStrip.hxx
+OpenGl_TriangleStrip.cxx
+OpenGl_Mesh.hxx
+OpenGl_Mesh.cxx
+OpenGl_PrimitiveArray.hxx
+OpenGl_PrimitiveArray.cxx
+Handle_OpenGl_Workspace.hxx
+OpenGl_Workspace.hxx
+OpenGl_Workspace.cxx
+OpenGl_Workspace_1.cxx
+OpenGl_Workspace_2.cxx
+OpenGl_Workspace_3.cxx
+OpenGl_Workspace_4.cxx
+OpenGl_Workspace_5.cxx
+Handle_OpenGl_View.hxx
+OpenGl_View.hxx
+OpenGl_View.cxx
+OpenGl_View_1.cxx
+OpenGl_View_2.cxx
+OpenGl_Light.hxx
+Handle_OpenGl_Trihedron.hxx
+OpenGl_Trihedron.hxx
+OpenGl_Trihedron.cxx
+Handle_OpenGl_GraduatedTrihedron.hxx
+OpenGl_GraduatedTrihedron.hxx
+OpenGl_GraduatedTrihedron.cxx
+OpenGl_Matrix.hxx
+OpenGl_Matrix.cxx
+OpenGl_CView.hxx
+OpenGl_NamedStatus.hxx
+OpenGl_TextParam.hxx
+OpenGl_Callback.hxx
+OpenGl_PrinterContext.hxx
+OpenGl_PrinterContext.cxx
+Handle_OpenGl_Display.hxx
+OpenGl_Display.hxx
+OpenGl_Display.cxx
+OpenGl_Display_1.cxx
+OpenGl_Display_2.cxx
+Handle_OpenGl_Window.hxx
+OpenGl_Window.hxx
+OpenGl_Window.cxx
+OpenGl_PriorityList.hxx
+OpenGl_PriorityList.cxx
+OpenGl_AVIWriter.hxx
+OpenGl_AVIWriter.cxx
+OpenGl_tsm.hxx
+OpenGl_telem_view.cxx
 OpenGl_telem_view.hxx
-OpenGl_text.cxx
-OpenGl_textcol.cxx
-OpenGl_textcolsubtitle.cxx
-OpenGl_textdisplaytype.cxx
-OpenGl_textfont.cxx
-OpenGl_textheight.cxx
-OpenGl_textstyle.cxx
-OpenGl_TextureBox.hxx
-OpenGl_TextureBox.cxx
-OpenGl_tgl.hxx
 OpenGl_tgl_all.hxx
-OpenGl_tgl_elems.hxx
-OpenGl_tgl_funcs.hxx
-OpenGl_tgl_pick.hxx
-OpenGl_tgl_subrs.hxx
-OpenGl_tgl_subrvis.hxx
-OpenGl_tgl_tox.hxx
-OpenGl_tgl_util.cxx
-OpenGl_tgl_util.hxx
-OpenGl_tgl_utilgr.cxx
-OpenGl_tgl_utilgr.hxx
-OpenGl_tgl_vis.hxx
-OpenGl_tmesh.cxx
-OpenGl_tox.cxx
-OpenGl_trsf_stack.hxx
-OpenGl_tsm.cxx
-OpenGl_tsm.hxx
-OpenGl_tsm_ws.hxx
-OpenGl_txgl.cxx
-OpenGl_txgl.hxx
-OpenGl_undefined.cxx
-OpenGl_view.cxx
-OpenGl_vind.cxx
-OpenGl_ws.cxx
-OpenGl_togl_activateview.cxx
-OpenGl_togl_antialiasing.cxx
-OpenGl_togl_backfacing.cxx
-OpenGl_togl_background.cxx
-OpenGl_togl_begin.cxx
-OpenGl_togl_begin_animation.cxx
-OpenGl_togl_begin_immediat_mode.cxx
-OpenGl_togl_begin_layer_mode.cxx
-OpenGl_togl_bezier.cxx
-OpenGl_togl_bezier_weight.cxx
-OpenGl_togl_blink.cxx
-OpenGl_togl_boundarybox.cxx
-OpenGl_togl_cleargroup.cxx
-OpenGl_togl_clearstructure.cxx
-OpenGl_togl_cliplimit.cxx
-OpenGl_togl_closegroup.cxx
-OpenGl_togl_connect.cxx
-OpenGl_togl_contextstructure.cxx
-OpenGl_togl_curve.cxx
-OpenGl_togl_deactivateview.cxx
-OpenGl_togl_degeneratestructure.cxx
-OpenGl_togl_depthcueing.cxx
-OpenGl_togl_disconnect.cxx
-OpenGl_togl_displaystructure.cxx
-OpenGl_togl_element_exploration.cxx
-OpenGl_togl_end.cxx
-OpenGl_togl_erasestructure.cxx
-OpenGl_togl_facecontextgroup.cxx
-OpenGl_togl_group.cxx
-OpenGl_togl_highlightcolor.cxx
-OpenGl_togl_init_pick.cxx
-OpenGl_togl_inquirefacilities.cxx
-OpenGl_togl_inquirelight.cxx
-OpenGl_togl_inquireplane.cxx
-OpenGl_togl_inquireview.cxx
-OpenGl_togl_light.cxx
-OpenGl_togl_light_exploration.cxx
-OpenGl_togl_linecontextgroup.cxx
-OpenGl_togl_marker.cxx
-OpenGl_togl_marker_set.cxx
-OpenGl_togl_markercontextgroup.cxx
-OpenGl_togl_namesetstructure.cxx
-OpenGl_togl_opengroup.cxx
-OpenGl_togl_pick.cxx
-OpenGl_togl_pickid.cxx
-OpenGl_togl_plane.cxx
-OpenGl_togl_polygon.cxx
-OpenGl_togl_polygon_holes.cxx
-OpenGl_togl_polygon_indices.cxx
-OpenGl_togl_polygon_set.cxx
-OpenGl_togl_polyline.cxx
-OpenGl_togl_print.cxx
-OpenGl_togl_project_raster.cxx
-OpenGl_togl_quadrangle.cxx
-OpenGl_togl_ratio_window.cxx
-OpenGl_togl_redraw.cxx
-OpenGl_togl_removegroup.cxx
-OpenGl_togl_removestructure.cxx
-OpenGl_togl_removeview.cxx
-OpenGl_togl_set_environment.cxx
-OpenGl_togl_setlight.cxx
-OpenGl_togl_setplane.cxx
-OpenGl_togl_setvisualisation.cxx
-OpenGl_togl_structure.cxx
-OpenGl_togl_structure_exploration.cxx
-OpenGl_togl_text.cxx
-OpenGl_togl_textcontextgroup.cxx
-OpenGl_togl_texture.cxx
-OpenGl_togl_transformstructure.cxx
-OpenGl_togl_transparency.cxx
-OpenGl_togl_triangle.cxx
-OpenGl_togl_triedron.cxx
-OpenGl_togl_unproject_raster.cxx
-OpenGl_togl_update.cxx
-OpenGl_togl_view.cxx
-OpenGl_togl_view_exploration.cxx
-OpenGl_togl_viewmapping.cxx
-OpenGl_togl_vieworientation.cxx
-OpenGl_dotexturemap.cxx
-OpenGl_texture.cxx
-OpenGl_triedron.cxx
-OpenGl_triedron.hxx
-OpenGl_traces.hxx
-OpenGl_togl_parray.cxx
-OpenGl_PrimitiveArray.cxx
-OpenGl_togl_depthtest.cxx
-OpenGl_GraphicDriver_713.cxx
-OpenGl_transform_persistence.cxx
-OpenGl_transform_persistence.hxx
-OpenGl_GraphicDriver_Export.cxx
-OpenGl_textalignment.cxx
-OpenGl_togl_userdraw.cxx
-OpenGl_userdraw.cxx
-OpenGl_callback.hxx
-OpenGl_Memory.hxx
-OpenGl_Memory.cxx
-OpenGl_TextRender.hxx
-OpenGl_TextRender.cxx
-OpenGl_textzoomable.cxx
-OpenGl_textangle.cxx
-OpenGl_textfontaspect.cxx
-OpenGl_togl_gradient_background.cxx
-OpenGl_graduatedtrihedron.cxx
-OpenGl_graduatedtrihedron.hxx
-OpenGl_togl_graduatedtrihedron.cxx
 OpenGl_FrameBuffer.hxx
 OpenGl_FrameBuffer.cxx
+OpenGl_TextureBox.cxx
+OpenGl_TextureBox.hxx
+OpenGl_ImageBox.cxx
+OpenGl_ImageBox.hxx
+OpenGl_Memory.hxx
 OpenGl_Resource.hxx
-OpenGl_ResourceCleaner.cxx
-OpenGl_ResourceCleaner.hxx
-OpenGl_ResourceVBO.cxx
 OpenGl_ResourceVBO.hxx
-OpenGl_ResourceTexture.cxx
+OpenGl_ResourceVBO.cxx
 OpenGl_ResourceTexture.hxx
-OpenGl_PrinterContext.cxx
-OpenGl_PrinterContext.hxx
+OpenGl_ResourceTexture.cxx
+OpenGl_ResourceCleaner.hxx
+OpenGl_ResourceCleaner.cxx
+OpenGl_telem_util.hxx
+OpenGl_telem_util.cxx
+OpenGl_transform_persistence.hxx
+OpenGl_FontMgr.hxx
+OpenGl_FontMgr.cxx
+OpenGl_tgl_funcs.hxx
+OpenGl_togl_texture.cxx
+OpenGl_togl_inquireplane.cxx
+Handle_OpenGl_Context.hxx
+OpenGl_Context.hxx
+OpenGl_Context.cxx
+OpenGl_ArbVBO.hxx
+OpenGl_ExtFBO.hxx
\ No newline at end of file
diff --git a/src/OpenGl/Handle_OpenGl_Context.hxx b/src/OpenGl/Handle_OpenGl_Context.hxx
new file mode 100644 (file)
index 0000000..50e1b1c
--- /dev/null
@@ -0,0 +1,15 @@
+// File:      Handle_OpenGl_Context.hxx
+// Created:   26 January 2012
+// Author:    Kirill GAVRILOV
+// Copyright: OPEN CASCADE 2012
+
+#ifndef _Handle_OpenGl_Context_Header
+#define _Handle_OpenGl_Context_Header
+
+#include <Standard_DefineHandle.hxx>
+#include <Handle_Standard_Transient.hxx>
+
+class OpenGl_Context;
+DEFINE_STANDARD_HANDLE(OpenGl_Context, Standard_Transient)
+
+#endif // _Handle_OpenGl_Context_Header
diff --git a/src/OpenGl/Handle_OpenGl_Display.hxx b/src/OpenGl/Handle_OpenGl_Display.hxx
new file mode 100644 (file)
index 0000000..58d8fe1
--- /dev/null
@@ -0,0 +1,19 @@
+// File:      Handle_OpenGl_Display.hxx
+// Created:   20 September 2011
+// Author:    Sergey ZERCHANINOV
+// Copyright: OPEN CASCADE 2011
+
+#ifndef _Handle_OpenGl_Display_Header
+#define _Handle_OpenGl_Display_Header
+
+#include <Standard_DefineHandle.hxx>
+#include <Handle_MMgt_TShared.hxx>
+
+class OpenGl_Display;
+
+// Handle definition
+//
+DEFINE_STANDARD_HANDLE(OpenGl_Display,MMgt_TShared)
+
+
+#endif //_Handle_OpenGl_Display_Header
diff --git a/src/OpenGl/Handle_OpenGl_GraduatedTrihedron.hxx b/src/OpenGl/Handle_OpenGl_GraduatedTrihedron.hxx
new file mode 100644 (file)
index 0000000..ab8f834
--- /dev/null
@@ -0,0 +1,19 @@
+// File:      Handle_OpenGl_GraduatedTrihedron.hxx
+// Created:   20 September 2011
+// Author:    Sergey ZERCHANINOV
+// Copyright: OPEN CASCADE 2011
+
+#ifndef _Handle_OpenGl_GraduatedTrihedron_Header
+#define _Handle_OpenGl_GraduatedTrihedron_Header
+
+#include <Standard_DefineHandle.hxx>
+#include <Handle_MMgt_TShared.hxx>
+
+class OpenGl_GraduatedTrihedron;
+
+// Handle definition
+//
+DEFINE_STANDARD_HANDLE(OpenGl_GraduatedTrihedron,MMgt_TShared)
+
+
+#endif //_Handle_OpenGl_GraduatedTrihedron_Header
diff --git a/src/OpenGl/Handle_OpenGl_GraphicDriver.hxx b/src/OpenGl/Handle_OpenGl_GraphicDriver.hxx
new file mode 100644 (file)
index 0000000..17818b3
--- /dev/null
@@ -0,0 +1,18 @@
+// File:      Handle_OpenGl_GraphicDriver.hxx
+// Created:   20 October 2011
+// Author:    Sergey ZERCHANINOV
+// Copyright: OPEN CASCADE 2011
+
+#ifndef _Handle_OpenGl_GraphicDriver_Header
+#define _Handle_OpenGl_GraphicDriver_Header
+
+#include <Standard_DefineHandle.hxx>
+#include <Handle_Graphic3d_GraphicDriver.hxx>
+
+class OpenGl_GraphicDriver;
+
+// Handle definition
+//
+DEFINE_STANDARD_HANDLE(OpenGl_GraphicDriver,Graphic3d_GraphicDriver)
+
+#endif //_Handle_OpenGl_GraphicDriver_Header
diff --git a/src/OpenGl/Handle_OpenGl_Trihedron.hxx b/src/OpenGl/Handle_OpenGl_Trihedron.hxx
new file mode 100644 (file)
index 0000000..43426b8
--- /dev/null
@@ -0,0 +1,19 @@
+// File:      Handle_OpenGl_Trihedron.hxx
+// Created:   20 September 2011
+// Author:    Sergey ZERCHANINOV
+// Copyright: OPEN CASCADE 2011
+
+#ifndef _Handle_OpenGl_Trihedron_Header
+#define _Handle_OpenGl_Trihedron_Header
+
+#include <Standard_DefineHandle.hxx>
+#include <Handle_MMgt_TShared.hxx>
+
+class OpenGl_Trihedron;
+
+// Handle definition
+//
+DEFINE_STANDARD_HANDLE(OpenGl_Trihedron,MMgt_TShared)
+
+
+#endif //_Handle_OpenGl_Trihedron_Header
diff --git a/src/OpenGl/Handle_OpenGl_View.hxx b/src/OpenGl/Handle_OpenGl_View.hxx
new file mode 100644 (file)
index 0000000..8357a0e
--- /dev/null
@@ -0,0 +1,19 @@
+// File:      Handle_OpenGl_View.hxx
+// Created:   20 September 2011
+// Author:    Sergey ZERCHANINOV
+// Copyright: OPEN CASCADE 2011
+
+#ifndef _Handle_OpenGl_View_Header
+#define _Handle_OpenGl_View_Header
+
+#include <Standard_DefineHandle.hxx>
+#include <Handle_MMgt_TShared.hxx>
+
+class OpenGl_View;
+
+// Handle definition
+//
+DEFINE_STANDARD_HANDLE(OpenGl_View,MMgt_TShared)
+
+
+#endif //_Handle_OpenGl_View_Header
diff --git a/src/OpenGl/Handle_OpenGl_Window.hxx b/src/OpenGl/Handle_OpenGl_Window.hxx
new file mode 100644 (file)
index 0000000..5d366a8
--- /dev/null
@@ -0,0 +1,19 @@
+// File:      Handle_OpenGl_Window.hxx
+// Created:   20 September 2011
+// Author:    Sergey ZERCHANINOV
+// Copyright: OPEN CASCADE 2011
+
+#ifndef _Handle_OpenGl_Window_Header
+#define _Handle_OpenGl_Window_Header
+
+#include <Standard_DefineHandle.hxx>
+#include <Handle_MMgt_TShared.hxx>
+
+class OpenGl_Window;
+
+// Handle definition
+//
+DEFINE_STANDARD_HANDLE(OpenGl_Window,MMgt_TShared)
+
+
+#endif //_Handle_OpenGl_Window_Header
diff --git a/src/OpenGl/Handle_OpenGl_Workspace.hxx b/src/OpenGl/Handle_OpenGl_Workspace.hxx
new file mode 100644 (file)
index 0000000..93cda80
--- /dev/null
@@ -0,0 +1,19 @@
+// File:      Handle_OpenGl_Workspace.hxx
+// Created:   20 September 2011
+// Author:    Sergey ZERCHANINOV
+// Copyright: OPEN CASCADE 2011
+
+#ifndef _Handle_OpenGl_Workspace_Header
+#define _Handle_OpenGl_Workspace_Header
+
+#include <Standard_DefineHandle.hxx>
+#include <Handle_OpenGl_Window.hxx>
+
+class OpenGl_Workspace;
+
+// Handle definition
+//
+DEFINE_STANDARD_HANDLE(OpenGl_Workspace,OpenGl_Window)
+
+
+#endif //_Handle_OpenGl_Workspace_Header
diff --git a/src/OpenGl/OpenGl.cdl b/src/OpenGl/OpenGl.cdl
deleted file mode 100755 (executable)
index d30fea4..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
---
--- Package: OpenGl
--- Author:  CAL
--- Created: Mercredi 4 Janvier 1995
--- Updated: 20/08/97 ; PCT : ajout texture mapping
---      27/01/98 ; FMN : Delete GEOMLITE
---              
--- Copyright:   MatraDatavision 1995
---
--- Purpose: Specifications definitives
---
-
-package OpenGl
-
-    ---Version:
-
-    ---Purpose: This package contains the common OpenGl graphic interface.
-
-    ---Keywords: OpenGl, CInterface
-
-    ---Warning: No class in this package. It is used only to archive
-    --      all the objects files in a library.
-    ---References:
-
-uses
-
-    OSD,
-    TColStd,
-    TCollection,
-    Aspect,
-    Quantity,
-    Graphic3d,
-    Image, 
-    AlienImage
-
-is
-
-    exception Error inherits NumericError from Standard;
-
-    class GraphicDriver;
-    ---Purpose: Defines a graphic driver for the opengl interface
-
-end OpenGl;
diff --git a/src/OpenGl/OpenGl_ArbVBO.hxx b/src/OpenGl/OpenGl_ArbVBO.hxx
new file mode 100644 (file)
index 0000000..4920684
--- /dev/null
@@ -0,0 +1,45 @@
+// File:      OpenGl_ArbVBO.hxx
+// Created:   26 January 2012
+// Author:    Kirill GAVRILOV
+// Copyright: OPEN CASCADE 2012
+
+#ifndef _OpenGl_ArbVBO_H__
+#define _OpenGl_ArbVBO_H__
+
+#if (defined(_WIN32) || defined(__WIN32__))
+  #include <windows.h>
+#endif
+#include <GL/gl.h>
+
+typedef ptrdiff_t GLsizeiptr;
+
+//! VBO is part of OpenGL since 1.5
+struct OpenGl_ArbVBO
+{
+  #ifndef GL_ARRAY_BUFFER_ARB
+    #define GL_ARRAY_BUFFER_ARB          0x8892
+  #endif
+  #ifndef GL_STATIC_DRAW_ARB
+    #define GL_STATIC_DRAW_ARB           0x88E4
+  #endif
+  #ifndef GL_ELEMENTS_ARRAY_BUFFER_ARB
+    #define GL_ELEMENTS_ARRAY_BUFFER_ARB 0x8893
+  #endif
+
+public:
+
+  typedef void (APIENTRY *glBindBuffer_t)    (GLenum target, GLuint buffer);
+  typedef void (APIENTRY *glDeleteBuffers_t) (GLsizei n, const GLuint* buffers);
+  typedef void (APIENTRY *glGenBuffers_t)    (GLsizei n, GLuint* buffers);
+  typedef void (APIENTRY *glBufferData_t)    (GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage);
+
+public:
+
+  glGenBuffers_t    glGenBuffersARB;
+  glBindBuffer_t    glBindBufferARB;
+  glBufferData_t    glBufferDataARB;
+  glDeleteBuffers_t glDeleteBuffersARB;
+
+};
+
+#endif // _OpenGl_ArbVBO_H__
diff --git a/src/OpenGl/OpenGl_AspectFace.cxx b/src/OpenGl/OpenGl_AspectFace.cxx
new file mode 100644 (file)
index 0000000..89a0668
--- /dev/null
@@ -0,0 +1,217 @@
+// File:      OpenGl_AspectFace.cxx
+// Created:   13 July 2011
+// Author:    Sergey ZERCHANINOV
+// Copyright: OPEN CASCADE 2011
+
+#include <OpenGl_AspectFace.hxx>
+
+#include <InterfaceGraphic_Graphic3d.hxx>
+#include <Aspect_PolygonOffsetMode.hxx>
+
+/*----------------------------------------------------------------------*/
+
+static const TEL_CONTEXT_FACE myDefaultAspectFace =
+{
+  Aspect_IS_SOLID,
+  TOn, TEL_HS_SOLID, TOn, TelCullNone,
+  { 0.2F, 0.8F, 0.1F, 0.0F, /* amb, diff, spec, emsv */
+    1.0F, 10.0F, 0.0F, /* trans, shine, env_reflexion */
+    0, /* isphysic */
+    (OPENGL_AMBIENT_MASK | OPENGL_DIFFUSE_MASK | OPENGL_SPECULAR_MASK), /* color_mask */
+    {{ 1.0F, 1.0F, 1.0F, 1.0F }}, /* ambient color */
+    {{ 1.0F, 1.0F, 1.0F, 1.0F }}, /* diffuse color */
+    {{ 1.0F, 1.0F, 1.0F, 1.0F }}, /* specular color */
+    {{ 1.0F, 1.0F, 1.0F, 1.0F }}, /* emissive color */
+    {{ 1.0F, 1.0F, 1.0F, 1.0F }} /* material color */
+  },
+  { 0.2F, 0.8F, 0.1F, 0.0F, /* amb, diff, spec, emsv */
+    1.0F, 10.0F, 0.0F, /* trans, shine, env_reflexion */
+    0, /* isphysic */
+    (OPENGL_AMBIENT_MASK | OPENGL_DIFFUSE_MASK | OPENGL_SPECULAR_MASK), /* color_mask */
+    {{ 1.0F, 1.0F, 1.0F, 1.0F }}, /* ambient color */
+    {{ 1.0F, 1.0F, 1.0F, 1.0F }}, /* diffuse color */
+    {{ 1.0F, 1.0F, 1.0F, 1.0F }}, /* specular color */
+    {{ 1.0F, 1.0F, 1.0F, 1.0F }}, /* emissive color */
+    {{ 1.0F, 1.0F, 1.0F, 1.0F }} /* material color */
+  },
+  0, -1, { Aspect_POM_Fill, 1.0F, 0.0F }
+};
+
+/*----------------------------------------------------------------------*/
+
+static void ConvertMaterial (const CALL_DEF_MATERIAL &material, OPENGL_SURF_PROP &surface)
+{
+  /* Cas par cas pour l evaluation */
+  surface.amb  = material.IsAmbient? material.Ambient : 0.F;
+  surface.diff = material.IsDiffuse? material.Diffuse : 0.F;
+  surface.spec = material.IsSpecular? material.Specular : 0.F;
+  surface.emsv = material.IsEmission? material.Emission : 0.F;
+
+  /* type de materiel */
+  surface.isphysic = material.IsPhysic? 1 : 0;
+
+  /* Couleur du materiel */
+  surface.color_mask = 0;
+  if ( material.IsAmbient )
+    surface.color_mask |= OPENGL_AMBIENT_MASK;
+  if ( material.IsDiffuse )
+    surface.color_mask |= OPENGL_DIFFUSE_MASK;
+  if ( material.IsSpecular )
+    surface.color_mask |= OPENGL_SPECULAR_MASK;
+  if ( material.IsEmission )
+    surface.color_mask |= OPENGL_EMISSIVE_MASK;
+
+  /* Couleur eclairage ambient */
+  surface.ambcol.rgb[0] = material.ColorAmb.r;
+  surface.ambcol.rgb[1] = material.ColorAmb.g;
+  surface.ambcol.rgb[2] = material.ColorAmb.b;
+  surface.ambcol.rgb[3] = 1.F;
+
+  /* Couleur eclairage diffus */
+  surface.difcol.rgb[0] = material.ColorDif.r;
+  surface.difcol.rgb[1] = material.ColorDif.g;
+  surface.difcol.rgb[2] = material.ColorDif.b;
+  surface.difcol.rgb[3] = 1.F;
+
+  /* Couleur eclairage speculaire */
+  surface.speccol.rgb[0] = material.ColorSpec.r;
+  surface.speccol.rgb[1] = material.ColorSpec.g;
+  surface.speccol.rgb[2] = material.ColorSpec.b;
+  surface.speccol.rgb[3] = 1.F;
+
+  /* Couleur d emission */
+  surface.emscol.rgb[0] = material.ColorEms.r;
+  surface.emscol.rgb[1] = material.ColorEms.g;
+  surface.emscol.rgb[2] = material.ColorEms.b;
+  surface.emscol.rgb[3] = 1.F;
+
+  surface.shine = ( float )128 * material.Shininess;
+  surface.env_reflexion = material.EnvReflexion;
+
+  /* Dans la couche C++ :
+  * prop->trans = 0. => opaque
+  * prop->trans = 1. => transparent
+  * in OpenGl it is opposite.
+  */
+  surface.trans = 1.0F - material.Transparency;
+}
+
+/*----------------------------------------------------------------------*/
+
+OpenGl_AspectFace::OpenGl_AspectFace ()
+ : myContext(myDefaultAspectFace)
+{}
+
+/*----------------------------------------------------------------------*/
+
+void OpenGl_AspectFace::SetContext (const CALL_DEF_CONTEXTFILLAREA &AContext)
+{
+  //TelInteriorStyle
+  myContext.InteriorStyle = (Aspect_InteriorStyle) AContext.Style;
+
+  //TelEdgeFlag
+  myContext.Edge = AContext.Edge ? TOn : TOff;
+
+  //TelInteriorStyleIndex
+  switch( AContext.Hatch )
+  {
+    case 0 : /* Aspect_HS_HORIZONTAL */
+      myContext.Hatch = TEL_HS_HORIZONTAL;
+      break;
+    case 1 : /* Aspect_HS_HORIZONTAL_WIDE */
+      myContext.Hatch = TEL_HS_HORIZONTAL_SPARSE;
+      break;
+    case 2 : /* Aspect_HS_VERTICAL */
+      myContext.Hatch = TEL_HS_VERTICAL;
+      break;
+    case 3 : /* Aspect_HS_VERTICAL_WIDE */
+      myContext.Hatch = TEL_HS_VERTICAL_SPARSE;
+      break;
+    case 4 : /* Aspect_HS_DIAGONAL_45 */
+      myContext.Hatch = TEL_HS_DIAG_45;
+      break;
+    case 5 : /* Aspect_HS_DIAGONAL_45_WIDE */
+      myContext.Hatch = TEL_HS_DIAG_45_SPARSE;
+      break;
+    case 6 : /* Aspect_HS_DIAGONAL_135 */
+      myContext.Hatch = TEL_HS_DIAG_135;
+      break;
+    case 7 : /* Aspect_HS_DIAGONAL_135_WIDE */
+      myContext.Hatch = TEL_HS_DIAG_135_SPARSE;
+      break;
+    case 8 : /* Aspect_HS_GRID */
+      myContext.Hatch = TEL_HS_GRID;
+      break;
+    case 9 : /* Aspect_HS_GRID_WIDE */
+      myContext.Hatch = TEL_HS_GRID_SPARSE;
+      break;
+    case 10 : /* Aspect_HS_GRID_DIAGONAL */
+      myContext.Hatch = TEL_HS_CROSS;
+      break;
+    case 11 : /* Aspect_HS_GRID_DIAGONAL_WIDE */
+      myContext.Hatch = TEL_HS_CROSS_SPARSE;
+      break;
+    default :
+      myContext.Hatch = 0;
+      break;
+  }
+
+  //TelFaceDistinguishingMode
+  myContext.DistinguishingMode = AContext.Distinguish ? TOn : TOff;
+
+  //TelFaceCullingMode
+  myContext.CullingMode = AContext.BackFace ? TelCullBack : TelCullNone;
+
+  //TelSurfaceAreaProperties
+  ConvertMaterial(AContext.Front,myContext.IntFront);
+
+  //TelBackSurfaceAreaProperties
+  ConvertMaterial(AContext.Back,myContext.IntBack);
+
+  //TelInteriorColour
+  myContext.IntFront.matcol.rgb[0] = (float) AContext.IntColor.r;
+  myContext.IntFront.matcol.rgb[1] = (float) AContext.IntColor.g;
+  myContext.IntFront.matcol.rgb[2] = (float) AContext.IntColor.b;
+  myContext.IntFront.matcol.rgb[3] = 1.f;
+
+  //TelBackInteriorColour
+  myContext.IntBack.matcol.rgb[0] = (float) AContext.BackIntColor.r;
+  myContext.IntBack.matcol.rgb[1] = (float) AContext.BackIntColor.g;
+  myContext.IntBack.matcol.rgb[2] = (float) AContext.BackIntColor.b;
+  myContext.IntBack.matcol.rgb[3] = 1.f;
+
+  //TelDoTextureMap
+  myContext.doTextureMap = AContext.Texture.doTextureMap;
+
+  //TelTextureId
+  myContext.TexId = AContext.Texture.TexId;
+
+  //TelPolygonOffset
+  myContext.PolygonOffset.mode   = (Aspect_PolygonOffsetMode) AContext.PolygonOffsetMode;
+  myContext.PolygonOffset.factor = AContext.PolygonOffsetFactor;
+  myContext.PolygonOffset.units  = AContext.PolygonOffsetUnits;
+
+  CALL_DEF_CONTEXTLINE anEdgeContext;
+
+  //TelEdgeColour
+  anEdgeContext.Color.r = (float) AContext.EdgeColor.r;
+  anEdgeContext.Color.g = (float) AContext.EdgeColor.g;
+  anEdgeContext.Color.b = (float) AContext.EdgeColor.b;
+
+  //TelEdgeType
+  anEdgeContext.LineType = (Aspect_TypeOfLine) AContext.LineType;
+
+  //TelEdgeWidth
+  anEdgeContext.Width = (float) AContext.Width;
+
+  myAspectEdge.SetContext(anEdgeContext);
+}
+
+/*----------------------------------------------------------------------*/
+
+void OpenGl_AspectFace::Render (const Handle(OpenGl_Workspace) &AWorkspace) const
+{
+  AWorkspace->SetAspectFace(this);
+}
+
+/*----------------------------------------------------------------------*/
diff --git a/src/OpenGl/OpenGl_AspectFace.hxx b/src/OpenGl/OpenGl_AspectFace.hxx
new file mode 100644 (file)
index 0000000..3dae10a
--- /dev/null
@@ -0,0 +1,73 @@
+// File:      OpenGl_AspectFace.hxx
+// Created:   13 July 2011
+// Author:    Sergey ZERCHANINOV
+// Copyright: OPEN CASCADE 2011
+
+#ifndef _OpenGl_AspectFace_Header
+#define _OpenGl_AspectFace_Header
+
+#include <InterfaceGraphic_telem.hxx>
+#include <Aspect_InteriorStyle.hxx>
+
+#include <OpenGl_AspectLine.hxx>
+
+#define OPENGL_AMBIENT_MASK  (1<<0)
+#define OPENGL_DIFFUSE_MASK  (1<<1)
+#define OPENGL_SPECULAR_MASK (1<<2)
+#define OPENGL_EMISSIVE_MASK (1<<3)
+
+struct OPENGL_SURF_PROP
+{
+  float        amb, diff, spec, emsv;
+  float        trans, shine;
+  float        env_reflexion;
+  int          isphysic;
+  unsigned int color_mask;
+  TEL_COLOUR speccol, difcol, ambcol, emscol, matcol;
+  IMPLEMENT_MEMORY_OPERATORS
+};
+
+struct TEL_CONTEXT_FACE
+{
+  Aspect_InteriorStyle InteriorStyle;
+  int                  Edge;
+  int                  Hatch;
+  int                  DistinguishingMode;
+  int                  CullingMode;
+  OPENGL_SURF_PROP     IntFront;
+  OPENGL_SURF_PROP     IntBack;
+  int                  doTextureMap;
+  int                  TexId;
+  TEL_POFFSET_PARAM PolygonOffset;
+  IMPLEMENT_MEMORY_OPERATORS
+};
+
+#include <OpenGl_Element.hxx>
+
+class OpenGl_AspectFace : public OpenGl_Element
+{
+ public:
+
+  OpenGl_AspectFace ();
+  virtual ~OpenGl_AspectFace () {}
+
+  void SetContext (const CALL_DEF_CONTEXTFILLAREA &AContext);
+
+  void SetContext (const TEL_CONTEXT_FACE &AContext) { myContext = AContext; }
+  void SetAspectEdge (const OpenGl_AspectLine * AnAspectEdge) { myAspectEdge = *AnAspectEdge; }
+
+  const TEL_CONTEXT_FACE & Context() const { return myContext; }
+  const OpenGl_AspectLine * AspectEdge() const { return &myAspectEdge; }
+
+  virtual void Render (const Handle(OpenGl_Workspace) &AWorkspace) const;
+
+ protected:
+
+  TEL_CONTEXT_FACE   myContext;
+  OpenGl_AspectLine  myAspectEdge;
+
+ public:
+  IMPLEMENT_MEMORY_OPERATORS
+};
+
+#endif //_OpenGl_AspectFace_Header
diff --git a/src/OpenGl/OpenGl_AspectLine.cxx b/src/OpenGl/OpenGl_AspectLine.cxx
new file mode 100644 (file)
index 0000000..1e559e4
--- /dev/null
@@ -0,0 +1,45 @@
+// File:      OpenGl_AspectLine.cxx
+// Created:   13 July 2011
+// Author:    Sergey ZERCHANINOV
+// Copyright: OPEN CASCADE 2011
+
+#include <OpenGl_AspectLine.hxx>
+
+static const TEL_COLOUR myDefaultColor = {{ 1.0F, 1.0F, 1.0F, 1.0F }};
+
+/*----------------------------------------------------------------------*/
+
+OpenGl_AspectLine::OpenGl_AspectLine ()
+ : myColor(myDefaultColor),
+   myType(Aspect_TOL_SOLID),
+   myWidth(1.0F)
+{}
+
+/*----------------------------------------------------------------------*/
+
+OpenGl_AspectLine::OpenGl_AspectLine (const OpenGl_AspectLine &AnOther)
+ : myColor(AnOther.myColor),
+   myType(AnOther.myType),
+   myWidth(AnOther.myWidth)
+{}
+
+/*----------------------------------------------------------------------*/
+
+void OpenGl_AspectLine::SetContext (const CALL_DEF_CONTEXTLINE &AContext)
+{
+  myColor.rgb[0] = (float) AContext.Color.r;
+  myColor.rgb[1] = (float) AContext.Color.g;
+  myColor.rgb[2] = (float) AContext.Color.b;
+  myColor.rgb[3] = 1.0f;
+  myType = (Aspect_TypeOfLine) AContext.LineType;
+  myWidth = (float) AContext.Width;
+}
+
+/*----------------------------------------------------------------------*/
+
+void OpenGl_AspectLine::Render (const Handle(OpenGl_Workspace) &AWorkspace) const
+{
+  AWorkspace->SetAspectLine(this);
+}
+
+/*----------------------------------------------------------------------*/
diff --git a/src/OpenGl/OpenGl_AspectLine.hxx b/src/OpenGl/OpenGl_AspectLine.hxx
new file mode 100644 (file)
index 0000000..2e820ec
--- /dev/null
@@ -0,0 +1,40 @@
+// File:      OpenGl_AspectLine.hxx
+// Created:   13 July 2011
+// Author:    Sergey ZERCHANINOV
+// Copyright: OPEN CASCADE 2011
+
+#ifndef _OpenGl_AspectLine_Header
+#define _OpenGl_AspectLine_Header
+
+#include <InterfaceGraphic_telem.hxx>
+#include <Aspect_TypeOfLine.hxx>
+
+#include <OpenGl_Element.hxx>
+
+class OpenGl_AspectLine : public OpenGl_Element
+{
+ public:
+
+  OpenGl_AspectLine ();
+  OpenGl_AspectLine (const OpenGl_AspectLine &AnOther);
+  virtual ~OpenGl_AspectLine () {}
+
+  void SetContext (const CALL_DEF_CONTEXTLINE &AContext);
+
+  const TEL_COLOUR & Color() const { return myColor; }
+  Aspect_TypeOfLine  Type() const { return myType; }
+  float              Width() const { return myWidth; }
+
+  virtual void Render (const Handle(OpenGl_Workspace) &AWorkspace) const;
+
+ protected:
+
+  TEL_COLOUR        myColor;
+  Aspect_TypeOfLine myType;
+  float             myWidth;
+
+ public:
+  IMPLEMENT_MEMORY_OPERATORS
+};
+
+#endif //_OpenGl_AspectLine_Header
diff --git a/src/OpenGl/OpenGl_AspectMarker.cxx b/src/OpenGl/OpenGl_AspectMarker.cxx
new file mode 100644 (file)
index 0000000..f74a7f6
--- /dev/null
@@ -0,0 +1,37 @@
+// File:      OpenGl_AspectMarker.cxx
+// Created:   14 July 2011
+// Author:    Sergey ZERCHANINOV
+// Copyright: OPEN CASCADE 2011
+
+#include <OpenGl_AspectMarker.hxx>
+
+static const TEL_COLOUR myDefaultColor = {{ 1.0F, 1.0F, 1.0F, 1.0F }};
+
+/*----------------------------------------------------------------------*/
+
+OpenGl_AspectMarker::OpenGl_AspectMarker ()
+ : myColor(myDefaultColor),
+   myType(Aspect_TOM_PLUS),
+   myScale(1.0F)
+{}
+
+/*----------------------------------------------------------------------*/
+
+void OpenGl_AspectMarker::SetContext (const CALL_DEF_CONTEXTMARKER &AContext)
+{
+  myColor.rgb[0] = (float) AContext.Color.r;
+  myColor.rgb[1] = (float) AContext.Color.g;
+  myColor.rgb[2] = (float) AContext.Color.b;
+  myColor.rgb[3] = 1.0f;
+  myType = (Aspect_TypeOfMarker) AContext.MarkerType;
+  myScale = (float) AContext.Scale;
+}
+
+/*----------------------------------------------------------------------*/
+
+void OpenGl_AspectMarker::Render (const Handle(OpenGl_Workspace) &AWorkspace) const
+{
+  AWorkspace->SetAspectMarker(this);
+}
+
+/*----------------------------------------------------------------------*/
diff --git a/src/OpenGl/OpenGl_AspectMarker.hxx b/src/OpenGl/OpenGl_AspectMarker.hxx
new file mode 100644 (file)
index 0000000..5613667
--- /dev/null
@@ -0,0 +1,39 @@
+// File:      OpenGl_AspectMarker.hxx
+// Created:   13 July 2011
+// Author:    Sergey ZERCHANINOV
+// Copyright: OPEN CASCADE 2011
+
+#ifndef OpenGl_AspectMarker_Header
+#define OpenGl_AspectMarker_Header
+
+#include <InterfaceGraphic_telem.hxx>
+#include <Aspect_TypeOfMarker.hxx>
+
+#include <OpenGl_Element.hxx>
+
+class OpenGl_AspectMarker : public OpenGl_Element
+{
+ public:
+
+  OpenGl_AspectMarker ();
+  virtual ~OpenGl_AspectMarker () {}
+
+  void SetContext (const CALL_DEF_CONTEXTMARKER &AContext);
+
+  const TEL_COLOUR &  Color() const { return myColor; }
+  Aspect_TypeOfMarker Type() const { return myType; }
+  float               Scale() const { return myScale; }
+
+  virtual void Render (const Handle(OpenGl_Workspace) &AWorkspace) const;
+
+ protected:
+
+  TEL_COLOUR          myColor;
+  Aspect_TypeOfMarker myType;
+  float               myScale;
+
+ public:
+  IMPLEMENT_MEMORY_OPERATORS
+};
+
+#endif //OpenGl_AspectMarker_Header
diff --git a/src/OpenGl/OpenGl_AspectText.cxx b/src/OpenGl/OpenGl_AspectText.cxx
new file mode 100644 (file)
index 0000000..8c6f6c0
--- /dev/null
@@ -0,0 +1,76 @@
+// File:    OpenGl_AspectText.cxx
+// Created: 13 July 2011
+// Author:  Sergey ZERCHANINOV
+// Copyright: OPEN CASCADE 2011
+
+#include <OpenGl_AspectText.hxx>
+
+static const TEL_COLOUR myDefaultColor = {{ 1.0F, 1.0F, 1.0F, 1.0F }};
+
+/*----------------------------------------------------------------------*/
+
+OpenGl_AspectText::OpenGl_AspectText ()
+ : myZoomable(0),
+   myAngle(0.0F),
+   myFontAspect(OSD_FA_Regular),
+   myFont(NULL),
+   //mySpace(0.3F),
+   //myExpan(1.0F),
+   myColor(myDefaultColor),
+   myStyleType(Aspect_TOST_NORMAL),
+   myDisplayType(Aspect_TODT_NORMAL),
+   mySubtitleColor(myDefaultColor)
+{
+  SetFontName( (const char *) "Courier" );
+}
+
+/*----------------------------------------------------------------------*/
+
+OpenGl_AspectText::~OpenGl_AspectText ()
+{
+  if (myFont)
+    delete[] myFont;
+}
+
+/*----------------------------------------------------------------------*/
+
+void OpenGl_AspectText::SetContext (const CALL_DEF_CONTEXTTEXT &AContext)
+{
+  myZoomable = (int) AContext.TextZoomable;
+  myAngle = (float) AContext.TextAngle;
+  myFontAspect = (OSD_FontAspect) AContext.TextFontAspect;
+  //mySpace = (float) AContext.Space;
+  //myExpan = (float) AContext.Expan;
+  myColor.rgb[0] = (float) AContext.Color.r;
+  myColor.rgb[1] = (float) AContext.Color.g;
+  myColor.rgb[2] = (float) AContext.Color.b;
+  myColor.rgb[3] = 1.0f;
+  myStyleType = (Aspect_TypeOfStyleText) AContext.Style;
+  myDisplayType = (Aspect_TypeOfDisplayText) AContext.DisplayType;
+  mySubtitleColor.rgb[0] = (float) AContext.ColorSubTitle.r;
+  mySubtitleColor.rgb[1] = (float) AContext.ColorSubTitle.g;
+  mySubtitleColor.rgb[2] = (float) AContext.ColorSubTitle.b;
+  mySubtitleColor.rgb[3] = 1.0f;
+
+  SetFontName( (const char *) AContext.Font );
+}
+
+/*----------------------------------------------------------------------*/
+
+void OpenGl_AspectText::Render (const Handle(OpenGl_Workspace) &AWorkspace) const
+{
+  AWorkspace->SetAspectText(this);
+}
+
+/*----------------------------------------------------------------------*/
+
+void OpenGl_AspectText::SetFontName (const char *AFont)
+{
+  if (myFont)
+    delete[] myFont;
+  char *fontname = new char[ strlen( AFont ) + 1 ];
+  strcpy( fontname, AFont );
+  myFont = fontname;
+}
+
+/*----------------------------------------------------------------------*/
diff --git a/src/OpenGl/OpenGl_AspectText.hxx b/src/OpenGl/OpenGl_AspectText.hxx
new file mode 100644 (file)
index 0000000..516d278
--- /dev/null
@@ -0,0 +1,55 @@
+// File:      OpenGl_AspectText.hxx
+// Created:   13 July 2011
+// Author:    Sergey ZERCHANINOV
+// Copyright: OPEN CASCADE 2011
+
+#ifndef OpenGl_AspectText_Header
+#define OpenGl_AspectText_Header
+
+#include <InterfaceGraphic_telem.hxx>
+#include <OSD_FontAspect.hxx>
+#include <Aspect_TypeOfStyleText.hxx>
+#include <Aspect_TypeOfDisplayText.hxx>
+
+#include <OpenGl_Element.hxx>
+
+class OpenGl_AspectText : public OpenGl_Element
+{
+ public:
+
+  OpenGl_AspectText ();
+  virtual ~OpenGl_AspectText ();
+
+  void SetContext (const CALL_DEF_CONTEXTTEXT &AContext);
+
+  int                      IsZoomable() const { return myZoomable; }
+  float                    Angle() const { return myAngle; }
+  OSD_FontAspect           FontAspect() const { return myFontAspect; }
+  const char *             Font() const { return myFont; }
+  const TEL_COLOUR &       Color() const { return myColor; }
+  Aspect_TypeOfStyleText   StyleType() const { return myStyleType; }
+  Aspect_TypeOfDisplayText DisplayType() const { return myDisplayType; }
+  const TEL_COLOUR &       SubtitleColor() const { return mySubtitleColor; }
+
+  virtual void Render (const Handle(OpenGl_Workspace) &AWorkspace) const;
+
+ protected:
+
+  void SetFontName (const char *AFont);
+
+  int                      myZoomable;
+  float                    myAngle;
+  OSD_FontAspect           myFontAspect;
+  const char              *myFont;
+  //float                  mySpace;
+  //float                  myExpan;
+  TEL_COLOUR               myColor;
+  Aspect_TypeOfStyleText   myStyleType;
+  Aspect_TypeOfDisplayText myDisplayType;
+  TEL_COLOUR               mySubtitleColor;
+
+ public:
+  IMPLEMENT_MEMORY_OPERATORS
+};
+
+#endif //OpenGl_AspectText_Header
index 22026b9..a33aba0 100755 (executable)
@@ -1,10 +1,8 @@
 --
--- File:       OpenGl_CMPLRS.edl
--- Author:     Stephane Callegari
--- History:    13-12-96 : CAL : Creation
---              01-11-97 : BGN : Portage HP/OpenGL
---                               (avec option +a1 pour C++, et -Aa pour C)
--- Copyright:  Matra Datavision 1996
+-- File:      OpenGl_CMPLRS.edl
+-- Author:    Stephane Callegari
+-- History:   13-12-96 : CAL : Creation
+-- Copyright: Matra Datavision 1996
 --
 
 @ifnotdefined ( %OpenGl_CMPLRS_EDL) then
   @string %CMPLRS_CXX_Options += %CSF_X11_INCLUDE " " %CSF_OPENGL_INCLUDE " " %CSF_FTGL_INCLUDES " " %CSF_FREETYPE_INCLUDES " " %CSF_GL2PS_INCLUDES " ";
   @string %CMPLRS_C_Options   += %CSF_X11_INCLUDE " " %CSF_OPENGL_INCLUDE " " %CSF_FTGL_INCLUDES " " %CSF_FREETYPE_INCLUDES " " %CSF_GL2PS_INCLUDES " ";
 
-  @if ( %Station == "hp" ) then
-
-    @string %CMPLRS_C_Options +=  " -D_HPUX_SOURCE";
-
-       @if ( %DebugMode == "False" ) then
-          @set %CMPLRS_C_ModeOpt = "+O1 -DNo_Exception ";
-          @set %CMPLRS_F77_ModeOpt = "+O1";
-        @endif;
-
-  @endif;
-
-  @if ( %Station == "ao1" ) then
-
-    @string %CMPLRS_C_Options +=  " -DJWR_DEC_TRIFAN_BUG";
-    @string %CMPLRS_C_Options +=  " -std1";
-
-  @endif;
-  
-  -- FMN  @string %CMPLRS_C_Options +=  " -DLMC_COLOR";
-  @string %CMPLRS_C_Options +=  " -DSILGL -DSILGL_VRS=50";
-
-
-
 @endif;
-
diff --git a/src/OpenGl/OpenGl_CView.hxx b/src/OpenGl/OpenGl_CView.hxx
new file mode 100644 (file)
index 0000000..04c29a0
--- /dev/null
@@ -0,0 +1,21 @@
+// File:      OpenGl_CView.hxx
+// Created:   20 September 2011
+// Author:    Sergey ZERCHANINOV
+// Copyright: OPEN CASCADE 2011
+
+#ifndef OpenGl_CView_Header
+#define OpenGl_CView_Header
+
+#include <InterfaceGraphic_telem.hxx>
+
+#include <OpenGl_Workspace.hxx>
+#include <OpenGl_View.hxx>
+
+struct OpenGl_CView
+{
+  Handle_OpenGl_Workspace WS;
+  Handle_OpenGl_View      View;
+  IMPLEMENT_MEMORY_OPERATORS
+};
+
+#endif //OpenGl_CView_Header
diff --git a/src/OpenGl/OpenGl_Callback.hxx b/src/OpenGl/OpenGl_Callback.hxx
new file mode 100644 (file)
index 0000000..357ef57
--- /dev/null
@@ -0,0 +1,17 @@
+// File:      OpenGl_Callback.hxx
+// Created:   25 October 2011
+// Author:    Sergey ZERCHANINOV
+// Copyright: OPEN CASCADE 2011
+
+#ifndef _OpenGl_Callback_HeaderFile
+#define _OpenGl_Callback_HeaderFile
+
+#include <InterfaceGraphic_Graphic3d.hxx>
+
+#include <OpenGl_Element.hxx>
+
+typedef OpenGl_Element * (*OpenGl_UserDrawCallback)(const CALL_DEF_USERDRAW *);
+
+Standard_EXPORT OpenGl_UserDrawCallback & UserDrawCallback ();
+
+#endif //_OpenGl_Callback_HeaderFile
diff --git a/src/OpenGl/OpenGl_Context.cxx b/src/OpenGl/OpenGl_Context.cxx
new file mode 100644 (file)
index 0000000..36b653e
--- /dev/null
@@ -0,0 +1,105 @@
+// File:      OpenGl_Context.cxx
+// Created:   26 January 2012
+// Author:    Kirill GAVRILOV
+// Copyright: OPEN CASCADE 2012
+
+#include <OpenGl_Context.hxx>
+
+IMPLEMENT_STANDARD_HANDLE (OpenGl_Context, Standard_Transient)
+IMPLEMENT_STANDARD_RTTIEXT(OpenGl_Context, Standard_Transient)
+
+#if (!defined(_WIN32) && !defined(__WIN32__))
+  #include <GL/glx.h>
+#endif
+
+// =======================================================================
+// function : OpenGl_Context
+// purpose  :
+// =======================================================================
+OpenGl_Context::OpenGl_Context()
+: arbVBO (NULL),
+  extFBO (NULL)
+{
+  //
+}
+
+// =======================================================================
+// function : ~OpenGl_Context
+// purpose  :
+// =======================================================================
+OpenGl_Context::~OpenGl_Context()
+{
+  //
+}
+
+// =======================================================================
+// function : CheckExtension
+// purpose  :
+// =======================================================================
+Standard_Boolean OpenGl_Context::CheckExtension (const char* theExtName,
+                                                 const char* theExtString)
+{
+  if (theExtName   == NULL
+   || theExtString == NULL) {
+    std::cerr << "CheckExtension called with NULL string! No GL context?\n";
+    return Standard_False;
+  }
+
+  // Search for theExtName in the extensions string.
+  // Use of strstr() is not sufficient because extension names can be prefixes of other extension names.
+  char* aPtrIter = (char* )theExtString;
+  int anExtNameLen = strlen(theExtName);
+  const char* aPtrEnd = aPtrIter + strlen(theExtString);
+
+  while (aPtrIter < aPtrEnd)
+  {
+    int n = strcspn (aPtrIter, " ");
+    if ((n == anExtNameLen) && (strncmp (theExtName, aPtrIter, n) == 0))
+      return Standard_True;
+
+    aPtrIter += (n + 1);
+  }
+  return Standard_False;
+}
+
+// =======================================================================
+// function : Init
+// purpose  :
+// =======================================================================
+void OpenGl_Context::Init()
+{
+  const char* anExtString = (const char* )glGetString (GL_EXTENSIONS);
+  if (CheckExtension ("GL_ARB_vertex_buffer_object", anExtString))
+  {
+    arbVBO = new OpenGl_ArbVBO();
+    memset(arbVBO, 0, sizeof(OpenGl_ArbVBO)); // nullify whole structure for safety
+    if (!FindProc ("glGenBuffersARB",    arbVBO->glGenBuffersARB)
+     || !FindProc ("glBindBufferARB",    arbVBO->glBindBufferARB)
+     || !FindProc ("glBufferDataARB",    arbVBO->glBufferDataARB)
+     || !FindProc ("glDeleteBuffersARB", arbVBO->glDeleteBuffersARB))
+    {
+      delete arbVBO;
+      arbVBO = NULL;
+    }
+  }
+
+  if (CheckExtension ("GL_EXT_framebuffer_object", anExtString))
+  {
+    extFBO = new OpenGl_ExtFBO();
+    memset(extFBO, 0, sizeof(OpenGl_ExtFBO)); // nullify whole structure for safety
+    if (!FindProc ("glGenFramebuffersEXT",         extFBO->glGenFramebuffersEXT)
+     || !FindProc ("glDeleteFramebuffersEXT",      extFBO->glDeleteFramebuffersEXT)
+     || !FindProc ("glBindFramebufferEXT",         extFBO->glBindFramebufferEXT)
+     || !FindProc ("glFramebufferTexture2DEXT",    extFBO->glFramebufferTexture2DEXT)
+     || !FindProc ("glCheckFramebufferStatusEXT",  extFBO->glCheckFramebufferStatusEXT)
+     || !FindProc ("glGenRenderbuffersEXT",        extFBO->glGenRenderbuffersEXT)
+     || !FindProc ("glDeleteRenderbuffersEXT",     extFBO->glDeleteRenderbuffersEXT)
+     || !FindProc ("glBindRenderbufferEXT",        extFBO->glBindRenderbufferEXT)
+     || !FindProc ("glRenderbufferStorageEXT",     extFBO->glRenderbufferStorageEXT)
+     || !FindProc ("glFramebufferRenderbufferEXT", extFBO->glFramebufferRenderbufferEXT))
+    {
+      delete extFBO;
+      extFBO = NULL;
+    }
+  }
+}
diff --git a/src/OpenGl/OpenGl_Context.hxx b/src/OpenGl/OpenGl_Context.hxx
new file mode 100644 (file)
index 0000000..a83af27
--- /dev/null
@@ -0,0 +1,61 @@
+// File:      OpenGl_Context.hxx
+// Created:   26 January 2012
+// Author:    Kirill GAVRILOV
+// Copyright: OPEN CASCADE 2012
+
+#ifndef _OpenGl_Context_H__
+#define _OpenGl_Context_H__
+
+#include <OpenGl_ArbVBO.hxx>
+#include <OpenGl_ExtFBO.hxx>
+#include <Standard_Transient.hxx>
+#include <Handle_OpenGl_Context.hxx>
+
+#if (!defined(_WIN32) && !defined(__WIN32__))
+  extern "C" {
+    extern void (*glXGetProcAddress (const GLubyte* theProcName))();
+  }
+#endif
+
+//! This class provide access to the GL context and available extensions.
+class OpenGl_Context : public Standard_Transient
+{
+public:
+
+  OpenGl_Context();
+  virtual ~OpenGl_Context();
+
+  //! Initialize available extensions.
+  //! GL context should be active!
+  void Init();
+
+  //! Parse theExtString string for presence of theExtName extension.
+  static Standard_Boolean CheckExtension (const char* theExtName,
+                                          const char* theExtString);
+
+  //! Auxiliary template to retrieve GL function pointer.
+  //! The context should be bound before call.
+  template <typename FuncType_t>
+  bool FindProc (const char* theFuncName,
+                 FuncType_t& theFuncPtr)
+  {
+  #if (defined(_WIN32) || defined(__WIN32__))
+    theFuncPtr = (FuncType_t )wglGetProcAddress (theFuncName);
+  #else
+    theFuncPtr = (FuncType_t )glXGetProcAddress ((const GLubyte* )theFuncName);
+  #endif
+    return (theFuncPtr != NULL);
+  }
+
+public:
+
+  OpenGl_ArbVBO* arbVBO;
+  OpenGl_ExtFBO* extFBO;
+
+public:
+
+  DEFINE_STANDARD_RTTI(OpenGl_Window) // Type definition
+
+};
+
+#endif // _OpenGl_Context_H__
diff --git a/src/OpenGl/OpenGl_Display.cxx b/src/OpenGl/OpenGl_Display.cxx
new file mode 100644 (file)
index 0000000..ffbba57
--- /dev/null
@@ -0,0 +1,299 @@
+// File:      OpenGl_Display.cxx
+// Created:   20 September 2011
+// Author:    Sergey ZERCHANINOV
+// Copyright: OPEN CASCADE 2011
+
+#include <OpenGl_Display.hxx>
+
+#include <OSD_Environment.hxx>
+#include <TCollection_AsciiString.hxx>
+#include <Aspect_GraphicDeviceDefinitionError.hxx>
+
+#include <OpenGl_tgl_all.hxx>
+#include <GL/gl.h>
+
+#include <OpenGl_Light.hxx>
+
+IMPLEMENT_STANDARD_HANDLE(OpenGl_Display,MMgt_TShared)
+IMPLEMENT_STANDARD_RTTIEXT(OpenGl_Display,MMgt_TShared)
+
+Handle(OpenGl_Display) openglDisplay;
+
+namespace
+{
+  #if (defined(_WIN32) || defined(__WIN32__))
+    static char* TheDummyDisplay = "DISPLAY";
+  #endif
+
+  static const OpenGl_Facilities myDefaultFacilities = { 1, 1, 1, 1, OpenGLMaxLights, 10000 };
+};
+
+/*----------------------------------------------------------------------*/
+
+OpenGl_Display::OpenGl_Display (const Standard_CString theDisplay)
+: myDisplay(NULL),
+  myFacilities(myDefaultFacilities),
+  myDBuffer(Standard_True),
+  myDither(Standard_True),
+  myBackDither(Standard_False),
+  myWalkthrough(Standard_False),
+  mySymPerspective(Standard_False),
+  myOffsetFactor(1.F),
+  myOffsetUnits(0.F),
+  myAntiAliasingMode(3),
+  myLinestyleBase(0),
+  myPatternBase(0),
+  myMarkerBase(0),
+  myFont(-1),
+  myFontSize(-1)
+{
+#if (defined(_WIN32) || defined(__WIN32__))
+  myDisplay = TheDummyDisplay;
+#else
+  if (theDisplay != NULL && *theDisplay != '\0')
+  {
+    OSD_Environment aDispEnv ("DISPLAY", theDisplay);
+    aDispEnv.Build();
+  }
+
+  // Specifies the hardware display name, which determines the
+  // display and communications domain to be used.
+  // On a POSIX system, if the display_name is NULL, it defaults
+  // to the value of the DISPLAY environment variable.
+  myDisplay = XOpenDisplay (NULL);
+#endif
+
+  Init();
+}
+
+/*----------------------------------------------------------------------*/
+
+OpenGl_Display::OpenGl_Display (const Aspect_Display theDisplay)
+: myDisplay(NULL),
+  myFacilities(myDefaultFacilities),
+  myDBuffer(Standard_True),
+  myDither(Standard_True),
+  myBackDither(Standard_False),
+  myWalkthrough(Standard_False),
+  mySymPerspective(Standard_False),
+  myOffsetFactor(1.F),
+  myOffsetUnits(0.F),
+  myAntiAliasingMode(3),
+  myLinestyleBase(0),
+  myPatternBase(0),
+  myMarkerBase(0),
+  myFont(-1),
+  myFontSize(-1)
+{
+#if (defined(_WIN32) || defined(__WIN32__))
+  myDisplay = TheDummyDisplay;
+#else
+  myDisplay = theDisplay;
+#endif
+
+  Init();
+}
+
+/*----------------------------------------------------------------------*/
+
+OpenGl_Display::~OpenGl_Display ()
+{
+  // Delete line styles
+  if (myLinestyleBase)
+  {
+    glDeleteLists((GLuint)myLinestyleBase,5);
+    myLinestyleBase = 0;
+  }
+  // Delete surface patterns
+  if (myPatternBase)
+  {
+    glDeleteLists((GLuint)myPatternBase,TEL_HS_USER_DEF_START);
+    myPatternBase = 0;
+  }
+  // Delete markers
+  if (myMarkerBase)
+  {
+    glDeleteLists((GLuint)myMarkerBase,60);
+    myMarkerBase = 0;
+  }
+  // Delete user markers
+  OpenGl_MapOfUserMarker::Iterator itm(myMapOfUM);
+  for (; itm.More(); itm.Next())
+  {
+    const OPENGL_MARKER_DATA &aData = itm.Value();
+    if (aData.Array)
+    {
+      delete[] aData.Array;
+    }
+    else if (aData.ListId != 0)
+    {
+      glDeleteLists ( aData.ListId, 1 );
+    }
+  }
+  myDisplay = NULL;
+}
+
+/*----------------------------------------------------------------------*/
+
+Handle(OpenGl_Window) OpenGl_Display::GetWindow (const Aspect_Drawable AParent) const
+{
+  Handle(OpenGl_Window) aWindow;
+  if ( myMapOfWindows.IsBound( AParent ) )
+  {
+    aWindow = myMapOfWindows.Find( AParent );
+  }
+  return aWindow;
+}
+
+/*----------------------------------------------------------------------*/
+
+void OpenGl_Display::SetWindow (const Aspect_Drawable AParent, const Handle(OpenGl_Window) &AWindow)
+{
+  if ( !myMapOfWindows.IsBound( AParent ) )
+  {
+    myMapOfWindows.Bind( AParent, AWindow );
+  }
+}
+
+/*----------------------------------------------------------------------*/
+
+//GenerateMarkerBitmap
+void OpenGl_Display::AddUserMarker (const Standard_Integer AIndex,
+                                   const Standard_Integer AMarkWidth,
+                                   const Standard_Integer AMarkHeight,
+                                   const Handle(TColStd_HArray1OfByte)& ATexture)
+{
+  if (!myMapOfUM.IsBound(AIndex))
+  {
+    const OPENGL_MARKER_DATA anEmptyData = { 0, 0, 0, NULL };
+    myMapOfUM.Bind(AIndex,anEmptyData);
+  }
+
+  OPENGL_MARKER_DATA &aData = myMapOfUM.ChangeFind(AIndex);
+
+  if (aData.Array)
+  {
+    delete[] aData.Array;
+    aData.Array = NULL;
+  }
+
+  unsigned char *anArray = new unsigned char[ATexture->Length()];
+
+  const int aByteWidth = AMarkWidth / 8;
+  int i, anIndex = ATexture->Upper() - ATexture->Lower() - aByteWidth + 1;
+  for ( ; anIndex >= 0; anIndex -= aByteWidth )
+    for ( i = 0; i < aByteWidth; i++ )
+      anArray[ATexture->Upper() - ATexture->Lower() - aByteWidth + 1 - anIndex + i ] = ATexture->Value( anIndex + i + 1 );
+
+  aData.Width = AMarkWidth;
+  aData.Height = AMarkHeight;
+  aData.Array = anArray;
+}
+
+/*----------------------------------------------------------------------*/
+
+void OpenGl_Display::UpdateUserMarkers ()
+{
+  OpenGl_MapOfUserMarker::Iterator itm(myMapOfUM);
+  for (; itm.More(); itm.Next())
+  {
+    OPENGL_MARKER_DATA &aData = itm.ChangeValue();
+    if (aData.Array)
+    {
+      if (aData.ListId == 0)
+        aData.ListId = glGenLists(1);
+
+      glNewList( (GLuint)aData.ListId, GL_COMPILE );
+
+      GLint w = ( GLsizei ) aData.Width;
+      GLint h = ( GLsizei ) aData.Height;
+      glBitmap( w, h,
+                0.5F * ( float )aData.Width, 0.5F * ( float )aData.Height,
+                ( float )30.0, ( float )30.0,
+                ( GLubyte* )aData.Array );
+
+      glEndList();
+
+      delete[] aData.Array;
+      aData.Array = NULL;
+    }
+  }
+}
+
+/*----------------------------------------------------------------------*/
+
+Standard_Integer OpenGl_Display::GetUserMarkerListIndex (const Standard_Integer AIndex) const
+{
+  if (myMapOfUM.IsBound(AIndex))
+  {
+    const OPENGL_MARKER_DATA &aData = myMapOfUM.Find(AIndex);
+    if (!aData.Array)
+      return aData.ListId;
+  }
+  return -1;
+}
+
+/*----------------------------------------------------------------------*/
+
+void OpenGl_Display::Init()
+{
+  if (myDisplay != NULL)
+  {
+  #if (!defined(_WIN32) && !defined(__WIN32__))
+    XSynchronize ((Display* )myDisplay, (getenv("CALL_SYNCHRO_X") != NULL) ? 1 : 0);
+
+    if (getenv("CSF_GraphicSync") != NULL)
+      XSynchronize ((Display* )myDisplay, 1);
+
+    // does the server know about OpenGL & GLX?
+    int aDummy;
+    if (!XQueryExtension ((Display* )myDisplay, "GLX", &aDummy, &aDummy, &aDummy))
+    {
+    #ifdef DEBUG
+      std::cerr << "This system doesn't appear to support OpenGL\n";
+    #endif
+    }
+  #endif
+  }
+  else
+  {
+    TCollection_AsciiString msg("OpenGl_Display::Init");
+  #if (!defined(_WIN32) && !defined(__WIN32__))
+    msg += " : Cannot connect to X server ";
+    msg += XDisplayName ((char*) NULL);
+  #endif
+    Aspect_GraphicDeviceDefinitionError::Raise(msg.ToCString());
+  }
+
+  if (getenv("CALL_OPENGL_NO_DBF") != NULL)
+    myDBuffer = Standard_False;
+
+  if (getenv("CALL_OPENGL_NO_DITHER") != NULL)
+    myDither = Standard_False;
+
+  if (getenv("CALL_OPENGL_NO_BACKDITHER") != NULL)
+    myBackDither = Standard_False;
+
+  if (getenv("CSF_WALKTHROUGH") != NULL)
+    myWalkthrough = Standard_True;
+
+  /* OCC18942: Test if symmetric perspective projection should be turned on */
+  if (getenv("CSF_SYM_PERSPECTIVE") != NULL)
+    mySymPerspective = Standard_True;
+
+  const char* pvalue = getenv("CALL_OPENGL_POLYGON_OFFSET");
+  if (pvalue)
+  {
+    float v1, v2;
+    const int n = sscanf(pvalue, "%f %f", &v1, &v2);
+    if (n > 0) myOffsetFactor = v1;
+    if (n > 1) myOffsetUnits  = v2;
+  }
+
+  pvalue = getenv("CALL_OPENGL_ANTIALIASING_MODE");
+  if (pvalue)
+  {
+    int v;
+    if ( sscanf(pvalue,"%d",&v) > 0 ) myAntiAliasingMode = v;
+  }
+}
diff --git a/src/OpenGl/OpenGl_Display.hxx b/src/OpenGl/OpenGl_Display.hxx
new file mode 100644 (file)
index 0000000..de102b0
--- /dev/null
@@ -0,0 +1,158 @@
+// File:      OpenGl_Display.hxx
+// Created:   20 September 2011
+// Author:    Sergey ZERCHANINOV
+// Copyright: OPEN CASCADE 2011
+
+#ifndef _OpenGl_Display_Header
+#define _OpenGl_Display_Header
+
+#include <Handle_OpenGl_Display.hxx>
+#include <MMgt_TShared.hxx>
+
+#include <Standard_CString.hxx>
+#include <TColStd_HArray1OfByte.hxx>
+#include <NCollection_DataMap.hxx>
+
+#include <Aspect_Display.hxx>
+#include <Aspect_Drawable.hxx>
+#include <Aspect_TypeOfLine.hxx>
+#include <Aspect_TypeOfMarker.hxx>
+
+#include <OSD_FontAspect.hxx>
+
+#include <InterfaceGraphic_telem.hxx>
+
+#include <Handle_OpenGl_Window.hxx>
+
+struct OpenGl_Facilities
+{
+  int AntiAliasing;
+  int DepthCueing;
+  int DoubleBuffer;
+  int ZBuffer;
+  int MaxLights;
+  int MaxViews;
+};
+
+struct OPENGL_MARKER_DATA
+{
+  unsigned int ListId;
+  unsigned int Width;
+  unsigned int Height;
+  unsigned char* Array;
+  IMPLEMENT_MEMORY_OPERATORS
+};
+
+typedef NCollection_DataMap<int,OPENGL_MARKER_DATA> OpenGl_MapOfUserMarker;
+
+class OpenGl_AspectText;
+struct OpenGl_TextParam;
+
+class OpenGl_Display : public MMgt_TShared
+{
+ public:
+  OpenGl_Display (const Standard_CString ADisplay);
+  OpenGl_Display (const Aspect_Display ADisplay);
+  virtual ~OpenGl_Display ();
+
+  Aspect_Display GetDisplay () const { return myDisplay; }
+
+  Handle(OpenGl_Window) GetWindow (const Aspect_Drawable AParent) const;
+  void SetWindow (const Aspect_Drawable AParent, const Handle(OpenGl_Window) &AWindow);
+
+  const OpenGl_Facilities & Facilities () const { return myFacilities; }
+
+  Standard_Boolean DBuffer () const { return myDBuffer; }
+  Standard_Boolean Dither () const { return myDither; }
+  Standard_Boolean BackDither () const { return myBackDither; }
+  Standard_Boolean Walkthrough () const { return myWalkthrough; }
+  Standard_Boolean SymPerspective() const { return mySymPerspective; }
+  Standard_Boolean PolygonOffset (Standard_ShortReal &AFactor, Standard_ShortReal &AUnits) const
+  {
+    AFactor = myOffsetFactor;
+    AUnits = myOffsetUnits;
+    return Standard_True;
+  }
+  Standard_Integer AntiAliasingMode () const { return myAntiAliasingMode; }
+
+  // System attributes
+
+  void InitAttributes ();
+
+  const char * GetStringForMarker (const Aspect_TypeOfMarker AType, const Tfloat AVal) const;
+
+  void SetBaseForMarker () const;
+
+  void SetTypeOfLine (const Aspect_TypeOfLine AType) const;
+
+  void SetTypeOfHatch (const int AType) const;
+
+  // User markers
+
+  void AddUserMarker (const Standard_Integer AIndex,
+                      const Standard_Integer AMarkWidth,
+                      const Standard_Integer AMarkHeight,
+                      const Handle(TColStd_HArray1OfByte)& ATexture);
+
+  void UpdateUserMarkers ();
+
+  Standard_Integer GetUserMarkerListIndex (const Standard_Integer AIndex) const;
+
+  // Fonts
+
+  int FindFont (const char* AFontName, const OSD_FontAspect AFontAspect, const int ABestSize = -1, const float AXScale = 1.F, const float AYScale = 1.F);
+
+  void StringSize (const wchar_t *text, int &width, int &ascent, int &descent);
+
+  void RenderText (const wchar_t *text, const int is2d, const float x, const float y, const float z, const OpenGl_AspectText *aspect, const OpenGl_TextParam *param);
+
+  friend class OpenGl_Window;
+
+  // Type definition
+  //
+  DEFINE_STANDARD_RTTI(OpenGl_Display)
+
+ protected:
+
+  void Init ();
+
+  void ExportText (const wchar_t *text, const int is2d, const float x, const float y, const float z, const OpenGl_AspectText *aspect, const OpenGl_TextParam *param, const float height);
+
+#ifdef HAVE_GL2PS
+  static void getGL2PSFontName(const char *src_font, char *ps_font);
+#endif
+
+  Aspect_Display   myDisplay;
+  OpenGl_Facilities myFacilities;
+
+  Standard_Boolean myDBuffer;
+  Standard_Boolean myDither;
+  Standard_Boolean myBackDither;
+  Standard_Boolean myWalkthrough;
+  Standard_Boolean mySymPerspective;
+  Standard_ShortReal myOffsetFactor;
+  Standard_ShortReal myOffsetUnits;
+  Standard_Integer myAntiAliasingMode;
+
+#if (defined(_WIN32) || defined(__WIN32__))
+  NCollection_DataMap<Aspect_Drawable,  Handle(OpenGl_Window)> myMapOfWindows;
+#else
+  NCollection_DataMap<Standard_Integer, Handle(OpenGl_Window)> myMapOfWindows;
+#endif
+
+  unsigned int myLinestyleBase;
+  unsigned int myPatternBase;
+  unsigned int myMarkerBase;
+
+  OpenGl_MapOfUserMarker myMapOfUM;
+
+  Standard_Integer myFont;
+  Standard_Integer myFontSize;
+
+ public:
+  IMPLEMENT_MEMORY_OPERATORS
+};
+
+extern Handle(OpenGl_Display) openglDisplay;
+
+#endif //OpenGl_Workspace_Header
diff --git a/src/OpenGl/OpenGl_Display_1.cxx b/src/OpenGl/OpenGl_Display_1.cxx
new file mode 100644 (file)
index 0000000..eed1d32
--- /dev/null
@@ -0,0 +1,378 @@
+// File:      OpenGl_Display_1.cxx
+// Created:   25 October 2011
+// Author:    Sergey ZERCHANINOV
+// Copyright: OPEN CASCADE 2011
+
+#include <OpenGl_Display.hxx>
+
+#include <TCollection_AsciiString.hxx>
+#include <TCollection_HAsciiString.hxx>
+
+#include <OpenGl_FontMgr.hxx>
+
+#include <OpenGl_AspectText.hxx>
+
+#ifdef HAVE_GL2PS
+#include <gl2ps.h>
+#endif
+
+/*-----------------------------------------------------------------------------*/
+/*
+* Prototypes variables statiques
+*/                                                 
+
+struct FontMapNode
+{
+  const char *    EnumName;
+  const char *    FontName;
+  OSD_FontAspect  FontAspect;
+};
+
+static const FontMapNode myFontMap[] =
+{
+
+#ifdef WNT
+
+  { "Courier"                  , "Courier New"    , OSD_FA_Regular },
+  { "Times-Roman"              , "Times New Roman", OSD_FA_Regular  },
+  { "Times-Bold"               , "Times New Roman", OSD_FA_Bold },
+  { "Times-Italic"             , "Times New Roman", OSD_FA_Italic  },
+  { "Times-BoldItalic"         , "Times New Roman", OSD_FA_BoldItalic  },
+  { "ZapfChancery-MediumItalic", "Script"         , OSD_FA_Regular  },
+  { "Symbol"                   , "Symbol"         , OSD_FA_Regular  },
+  { "ZapfDingbats"             , "WingDings"      , OSD_FA_Regular  },
+  { "Rock"                     , "Arial"          , OSD_FA_Regular  },
+  { "Iris"                     , "Lucida Console" , OSD_FA_Regular  }
+
+#else   //X11
+
+  { "Courier"                  , "Courier"      , OSD_FA_Regular },
+  { "Times-Roman"              , "Times"        , OSD_FA_Regular  },
+  { "Times-Bold"               , "Times"        , OSD_FA_Bold },
+  { "Times-Italic"             , "Times"        , OSD_FA_Italic  },
+  { "Times-BoldItalic"         , "Times"        , OSD_FA_BoldItalic  },
+  { "Arial"                    , "Helvetica"    , OSD_FA_Regular  }, 
+  { "ZapfChancery-MediumItalic", "-adobe-itc zapf chancery-medium-i-normal--*-*-*-*-*-*-iso8859-1"              , OSD_FA_Regular  },
+  { "Symbol"                   , "-adobe-symbol-medium-r-normal--*-*-*-*-*-*-adobe-fontspecific"                , OSD_FA_Regular  },
+  { "ZapfDingbats"             , "-adobe-itc zapf dingbats-medium-r-normal--*-*-*-*-*-*-adobe-fontspecific"     , OSD_FA_Regular  },
+  { "Rock"                     , "-sgi-rock-medium-r-normal--*-*-*-*-p-*-iso8859-1"                             , OSD_FA_Regular  },
+  { "Iris"                     , "--iris-medium-r-normal--*-*-*-*-m-*-iso8859-1"                                , OSD_FA_Regular  }
+#endif
+
+};
+
+#define NUM_FONT_ENTRIES (sizeof(myFontMap)/sizeof(FontMapNode))
+
+/*-----------------------------------------------------------------------------*/
+
+/*
+*  Constants
+*/
+
+#ifdef HAVE_GL2PS
+void OpenGl_Display::getGL2PSFontName (const char *src_font, char *ps_font)
+{
+  /* 
+  Convert font name used for rendering to some "good" font names
+  that produce good vector text 
+  */
+  static char const *family[] = {"Helvetica", "Courier", "Times"};
+  static char const *italic[] = {"Oblique", "Oblique", "Italic"};
+  static char const *base[] = {"", "", "-Roman"};
+
+  int font = 0;
+  int isBold = 0;
+  int isItalic = 0;
+
+  if( strstr( src_font, "Symbol" ) ){
+    sprintf( ps_font, "%s", "Symbol" );
+    return;
+  }
+
+  if( strstr( src_font, "ZapfDingbats" ) ){
+    sprintf( ps_font, "%s", "WingDings" );
+    return;
+  }
+
+  if ( strstr( src_font, "Courier" ) ){
+    font = 1;
+  }
+  else if ( strstr( src_font, "Times" ) ){
+    font = 2;
+  }
+
+  if ( strstr( src_font, "Bold" ) ){
+    isBold = 1;
+  }
+
+  if ( strstr( src_font, "Italic" ) || strstr( src_font, "Oblique" ) ){
+    isItalic = 1;
+  }
+
+  if ( isBold ){
+    sprintf( ps_font, "%s-%s", family[font], "Bold");
+    if ( isItalic ){
+      sprintf(ps_font, "%s%s", ps_font, italic[font]);
+    }
+  }
+  else if ( isItalic )
+  {
+    sprintf( ps_font, "%s-%s", family[font], italic[font] );
+  }
+  else
+  {
+    sprintf( ps_font, "%s%s", family[font], base[font] );
+  }
+}
+#endif
+
+/*-----------------------------------------------------------------------------*/
+
+/*
+* Fonctions publiques 
+*/
+
+/*-----------------------------------------------------------------------------*/
+
+int OpenGl_Display::FindFont (const char* AFontName, const OSD_FontAspect AFontAspect,
+                             const int ABestSize, const float AXScale, const float AYScale)
+{   
+  if (!AFontName)
+    return -1;
+
+  if (ABestSize != -1)
+    myFontSize = ABestSize;
+
+  OpenGl_FontMgr* mgr = OpenGl_FontMgr::instance();
+
+  Handle(TCollection_HAsciiString) family_name = new TCollection_HAsciiString(AFontName);
+  myFont = mgr->request_font( family_name, AFontAspect, myFontSize );
+
+  if( myFont == -1 )
+  {
+    //try to use font names mapping
+    FontMapNode newTempFont = myFontMap[0];
+    for ( int i = 0; i < NUM_FONT_ENTRIES; ++i )
+    {
+      if ( TCollection_AsciiString(myFontMap[i].EnumName).IsEqual( family_name->ToCString() ) )
+      {
+        newTempFont = myFontMap[i];
+        break;
+      }
+    }
+    family_name = new TCollection_HAsciiString(newTempFont.FontName);
+    myFont = mgr->request_font( family_name, newTempFont.FontAspect, myFontSize );
+  }
+
+  // Requested family name not found -> serach for any font family with given aspect and height
+  if ( myFont == -1 )
+  {
+    family_name = new TCollection_HAsciiString( "" );
+    myFont = mgr->request_font( family_name, AFontAspect, myFontSize );
+  }
+
+  // The last resort: trying to use ANY font available in the system
+  if ( myFont == -1 )
+  {
+    myFont = mgr->request_font( family_name, OSD_FA_Undefined, -1 );
+  }
+
+  if ( myFont != -1 )
+    mgr->setCurrentScale( AXScale, AYScale );
+
+  return myFont;
+}
+
+/*-----------------------------------------------------------------------------*/
+
+void OpenGl_Display::StringSize (const wchar_t *str, int &width, int &ascent, int &descent)
+{
+  ascent = 0;
+  descent = 0;
+  width = 0;
+  if (myFont != -1) {
+    OpenGl_FontMgr* mgr = OpenGl_FontMgr::instance();
+    const FTFont* font = mgr->fontById( myFont );
+    if ( font ) {
+      width = int( mgr->computeWidth( myFont, str ) );
+      ascent = int( font->Ascender() );
+      descent = int( font->Descender() );
+    }
+  }
+}
+
+/*-----------------------------------------------------------------------------*/
+
+void OpenGl_Display::RenderText (const wchar_t* str, const int is2d, const float x, const float y, const float z,
+                                const OpenGl_AspectText *aspect, const OpenGl_TextParam *param)
+{
+  OpenGl_FontMgr* mgr = OpenGl_FontMgr::instance();
+  const FTFont* fnt = mgr->fontById( myFont );
+  if ( !fnt )
+    return; 
+
+  // FTFont changes texture state when it renders and computes size for the text
+  glPushAttrib(GL_TEXTURE_BIT);
+
+  int widthFont, ascentFont, descentFont;
+  StringSize( str, widthFont, ascentFont, descentFont );
+
+  GLdouble xdis = 0.;
+  switch (param->HAlign)
+  {
+    case Graphic3d_HTA_CENTER:
+      xdis = -0.5 * (GLdouble)widthFont;
+      break;
+    case Graphic3d_HTA_RIGHT:
+      xdis = -(GLdouble)widthFont;
+      break;
+    //case Graphic3d_HTA_LEFT:
+    //default: break;
+  }
+  GLdouble ydis = 0.;
+  switch (param->VAlign)
+  {
+    case Graphic3d_VTA_CENTER:
+      ydis = -0.5 * (GLdouble)ascentFont - descentFont;
+      break;
+    case Graphic3d_VTA_TOP:
+      ydis = -(GLdouble)ascentFont - descentFont;
+      break;
+    //case Graphic3d_VTA_BOTTOM:
+    //default: break;
+  }
+
+  float export_h = 1.;
+
+  glMatrixMode(GL_MODELVIEW);
+  glPushMatrix();
+  if (is2d)
+  {
+    glLoadIdentity();
+    glTranslatef(x, y, 0.f);
+    glRotatef( 180, 1, 0, 0 );
+  }
+  else
+  {
+    const GLdouble identityMatrix[4][4] =
+    {
+      {1.,0.,0.,0.},
+      {0.,1.,0.,0.},
+      {0.,0.,1.,0.},
+      {0.,0.,0.,1.}
+    };
+
+    GLdouble projMatrix[4][4], modelMatrix[4][4];
+    GLint viewport[4];
+
+    GLdouble wx, wy, wz;
+    GLdouble x1, y1, z1;
+    GLdouble x2, y2, z2;
+
+    glGetDoublev( GL_MODELVIEW_MATRIX, (GLdouble*)modelMatrix );
+    glGetDoublev( GL_PROJECTION_MATRIX, (GLdouble*)projMatrix );
+    glGetIntegerv( GL_VIEWPORT, (GLint*)viewport );
+
+    gluProject( x, y, z,
+      (GLdouble*)modelMatrix,
+      (GLdouble*)projMatrix,
+      (GLint*)viewport,
+      &wx, &wy, &wz );
+    glLoadIdentity();
+    gluUnProject( wx, wy, wz, 
+      (GLdouble*)identityMatrix, (GLdouble*)projMatrix, (GLint*)viewport,
+      &x1, &y1 , &z1 );    
+
+    GLdouble h = (GLdouble)fnt->FaceSize();
+
+    gluUnProject( wx, wy + h - 1., wz,
+      (GLdouble*)identityMatrix, (GLdouble*)projMatrix, (GLint*)viewport,
+      &x2, &y2, &z2 );
+
+    h = (y2-y1)/h;
+
+    glTranslated( x1, y1 , z1 );   
+    glRotated(aspect->Angle(), 0, 0, 1);
+    glTranslated(xdis, ydis, 0);  
+
+    if( !aspect->IsZoomable() )
+    {
+      glScaled( h, h, h );
+    }
+    else
+    {
+      export_h = (float )h;
+    }
+  }
+
+  GLint renderMode;  
+  glGetIntegerv(GL_RENDER_MODE, &renderMode);
+  if ( renderMode == GL_FEEDBACK ) 
+  {
+#ifdef HAVE_GL2PS
+    export_h = (GLdouble)fnt->FaceSize() / export_h;
+    glPopMatrix();
+    ExportText( str, is2d, x, y, z, aspect, param, export_h );
+#endif
+  }
+  else
+  {
+    mgr->render_text( myFont, str, is2d );
+    glPopMatrix();
+  }
+  glPopAttrib();
+}
+
+/*-----------------------------------------------------------------------------*/
+
+static const int alignmentforgl2ps[3][3] = { {5,2,8}, {4,1,7}, {6,3,9} };
+
+void OpenGl_Display::ExportText (const wchar_t* text, const int is2d, const float x, const float y, const float z,
+                                const OpenGl_AspectText *aspect, const OpenGl_TextParam *param, const float height)
+{
+#ifdef HAVE_GL2PS
+
+  int vh = 1;
+  switch (param->HAlign)
+  {
+    case Graphic3d_HTA_CENTER: vh = 2; break;
+    case Graphic3d_HTA_RIGHT: vh = 3; break;
+    //case Graphic3d_HTA_LEFT:
+    //default: break;
+  }
+
+  int vv = 1;
+  switch (param->VAlign)
+  {
+    case Graphic3d_VTA_CENTER: vv = 2; break;
+    case Graphic3d_VTA_TOP: vv = 3; break;
+    //case Graphic3d_VTA_BOTTOM:
+    //default: break;
+  }
+
+  const int alignment = alignmentforgl2ps[vh-1][vv-1];
+
+  const char* fontname = aspect->Font();
+  float angle = aspect->Angle();
+
+  GLubyte zero = 0;
+  char ps_font[64];
+
+  getGL2PSFontName(fontname, ps_font);
+
+  if( is2d )
+    glRasterPos2f( x, y );
+  else
+    glRasterPos3f( x, y, z );
+
+  glBitmap( 1, 1, 0, 0, 0, 0, &zero );
+
+  //szv: workaround for gl2ps!
+  const int len = 4 * (wcslen(text) + 1); //szv: should be more than enough
+  char *astr = new char[len];
+  wcstombs(astr,text,len);
+  gl2psTextOpt(astr, ps_font, height, alignment, angle);
+  delete[] astr;
+
+#endif
+}
diff --git a/src/OpenGl/OpenGl_Display_2.cxx b/src/OpenGl/OpenGl_Display_2.cxx
new file mode 100644 (file)
index 0000000..2ceb5d6
--- /dev/null
@@ -0,0 +1,1949 @@
+// File:      OpenGl_Display_2.cxx
+// Created:   25 October 2011
+// Author:    Sergey ZERCHANINOV
+// Copyright: OPEN CASCADE 2011
+
+#include <OpenGl_Display.hxx>
+
+#ifdef HAVE_GL2PS
+#include <gl2ps.h>
+#endif
+
+#include <OpenGl_tgl_all.hxx>
+#include <GL/gl.h>
+
+/*----------------------------------------------------------------------*/
+/*
+* Constantes
+*/
+
+#define  DOT_LS            0xCCCC
+#define  DASH_DOT_LS       0xFF18
+#define  DASH_LS           0xFFC0
+#define  DASH_DDOT_LS      0xFF24
+
+static const unsigned int myInteriors[TEL_HS_USER_DEF_START][32] =
+{
+  //TEL_HS_SOLID
+  {
+    0xFFFFFFFF,
+    0xFFFFFFFF,
+    0xFFFFFFFF,
+    0xFFFFFFFF,
+    0xFFFFFFFF,
+    0xFFFFFFFF,
+    0xFFFFFFFF,
+    0xFFFFFFFF,
+    0xFFFFFFFF,
+    0xFFFFFFFF,
+    0xFFFFFFFF,
+    0xFFFFFFFF,
+    0xFFFFFFFF,
+    0xFFFFFFFF,
+    0xFFFFFFFF,
+    0xFFFFFFFF,
+    0xFFFFFFFF,
+    0xFFFFFFFF,
+    0xFFFFFFFF,
+    0xFFFFFFFF,
+    0xFFFFFFFF,
+    0xFFFFFFFF,
+    0xFFFFFFFF,
+    0xFFFFFFFF,
+    0xFFFFFFFF,
+    0xFFFFFFFF,
+    0xFFFFFFFF,
+    0xFFFFFFFF,
+    0xFFFFFFFF,
+    0xFFFFFFFF,
+    0xFFFFFFFF,
+    0xFFFFFFFF
+  },
+  //TEL_HS_CROSS
+  {
+    0xFFFFFFFF,
+    0xBBBBBBBB,
+    0xEEEEEEEE,
+    0xBBBBBBBB,
+    0xEEEEEEEE,
+    0xBBBBBBBB,
+    0xEEEEEEEE,
+    0xBBBBBBBB,
+    0xEEEEEEEE,
+    0xBBBBBBBB,
+    0xEEEEEEEE,
+    0xBBBBBBBB,
+    0xEEEEEEEE,
+    0xBBBBBBBB,
+    0xEEEEEEEE,
+    0xBBBBBBBB,
+    0xEEEEEEEE,
+    0xBBBBBBBB,
+    0xEEEEEEEE,
+    0xBBBBBBBB,
+    0xEEEEEEEE,
+    0xBBBBBBBB,
+    0xEEEEEEEE,
+    0xBBBBBBBB,
+    0xEEEEEEEE,
+    0xBBBBBBBB,
+    0xEEEEEEEE,
+    0xBBBBBBBB,
+    0xEEEEEEEE,
+    0xBBBBBBBB,
+    0xEEEEEEEE,
+    0xBBBBBBBB
+  },
+  //TEL_HS_CROSS_SPARSE
+  {
+    0x81818181,
+    0x24242424,
+    0x18181818,
+    0x42424242,
+    0x81818181,
+    0x24242424,
+    0x18181818,
+    0x42424242,
+    0x81818181,
+    0x24242424,
+    0x18181818,
+    0x42424242,
+    0x81818181,
+    0x24242424,
+    0x18181818,
+    0x42424242,
+    0x81818181,
+    0x24242424,
+    0x18181818,
+    0x42424242,
+    0x81818181,
+    0x24242424,
+    0x18181818,
+    0x42424242,
+    0x81818181,
+    0x24242424,
+    0x18181818,
+    0x42424242,
+    0x81818181,
+    0x24242424,
+    0x18181818,
+    0x42424242
+  },
+  //TEL_HS_GRID
+  {
+    0xFFFFFFFF,
+    0x88888888,
+    0xFFFFFFFF,
+    0x88888888,
+    0xFFFFFFFF,
+    0x88888888,
+    0xFFFFFFFF,
+    0x88888888,
+    0xFFFFFFFF,
+    0x88888888,
+    0xFFFFFFFF,
+    0x88888888,
+    0xFFFFFFFF,
+    0x88888888,
+    0xFFFFFFFF,
+    0x88888888,
+    0xFFFFFFFF,
+    0x88888888,
+    0xFFFFFFFF,
+    0x88888888,
+    0xFFFFFFFF,
+    0x88888888,
+    0xFFFFFFFF,
+    0x88888888,
+    0xFFFFFFFF,
+    0x88888888,
+    0xFFFFFFFF,
+    0x88888888,
+    0xFFFFFFFF,
+    0x88888888,
+    0xFFFFFFFF,
+    0x88888888
+  },
+  //TEL_HS_GRID_SPARSE
+  {
+    0xFFFFFFFF,
+    0x80808080,
+    0x80808080,
+    0x80808080,
+    0xFFFFFFFF,
+    0x80808080,
+    0x80808080,
+    0x80808080,
+    0xFFFFFFFF,
+    0x80808080,
+    0x80808080,
+    0x80808080,
+    0xFFFFFFFF,
+    0x80808080,
+    0x80808080,
+    0x80808080,
+    0xFFFFFFFF,
+    0x80808080,
+    0x80808080,
+    0x80808080,
+    0xFFFFFFFF,
+    0x80808080,
+    0x80808080,
+    0x80808080,
+    0xFFFFFFFF,
+    0x80808080,
+    0x80808080,
+    0x80808080,
+    0xFFFFFFFF,
+    0x80808080,
+    0x80808080,
+    0x80808080
+  },
+  //TEL_HS_DIAG_45
+  {
+    0x88888888,
+    0x22222222,
+    0x88888888,
+    0x22222222,
+    0x88888888,
+    0x22222222,
+    0x88888888,
+    0x22222222,
+    0x88888888,
+    0x22222222,
+    0x88888888,
+    0x22222222,
+    0x88888888,
+    0x22222222,
+    0x88888888,
+    0x22222222,
+    0x88888888,
+    0x22222222,
+    0x88888888,
+    0x22222222,
+    0x88888888,
+    0x22222222,
+    0x88888888,
+    0x22222222,
+    0x88888888,
+    0x22222222,
+    0x88888888,
+    0x22222222,
+    0x88888888,
+    0x22222222,
+    0x88888888,
+    0x22222222
+  },
+  //TEL_HS_DIAG_135
+  {
+    0x11111111,
+    0x44444444,
+    0x11111111,
+    0x44444444,
+    0x11111111,
+    0x44444444,
+    0x11111111,
+    0x44444444,
+    0x11111111,
+    0x44444444,
+    0x11111111,
+    0x44444444,
+    0x11111111,
+    0x44444444,
+    0x11111111,
+    0x44444444,
+    0x11111111,
+    0x44444444,
+    0x11111111,
+    0x44444444,
+    0x11111111,
+    0x44444444,
+    0x11111111,
+    0x44444444,
+    0x11111111,
+    0x44444444,
+    0x11111111,
+    0x44444444,
+    0x11111111,
+    0x44444444,
+    0x11111111,
+    0x44444444
+  },
+  //TEL_HS_HORIZONTAL
+  {
+    0xFFFFFFFF,
+    0x00000000,
+    0xFFFFFFFF,
+    0x00000000,
+    0xFFFFFFFF,
+    0x00000000,
+    0xFFFFFFFF,
+    0x00000000,
+    0xFFFFFFFF,
+    0x00000000,
+    0xFFFFFFFF,
+    0x00000000,
+    0xFFFFFFFF,
+    0x00000000,
+    0xFFFFFFFF,
+    0x00000000,
+    0xFFFFFFFF,
+    0x00000000,
+    0xFFFFFFFF,
+    0x00000000,
+    0xFFFFFFFF,
+    0x00000000,
+    0xFFFFFFFF,
+    0x00000000,
+    0xFFFFFFFF,
+    0x00000000,
+    0xFFFFFFFF,
+    0x00000000,
+    0xFFFFFFFF,
+    0x00000000,
+    0xFFFFFFFF,
+    0x00000000
+  },
+  //TEL_HS_VERTICAL
+  {
+    0x11111111,
+    0x11111111,
+    0x11111111,
+    0x11111111,
+    0x11111111,
+    0x11111111,
+    0x11111111,
+    0x11111111,
+    0x11111111,
+    0x11111111,
+    0x11111111,
+    0x11111111,
+    0x11111111,
+    0x11111111,
+    0x11111111,
+    0x11111111,
+    0x11111111,
+    0x11111111,
+    0x11111111,
+    0x11111111,
+    0x11111111,
+    0x11111111,
+    0x11111111,
+    0x11111111,
+    0x11111111,
+    0x11111111,
+    0x11111111,
+    0x11111111,
+    0x11111111,
+    0x11111111,
+    0x11111111,
+    0x11111111
+  },
+  //TEL_HS_DIAG_45_SPARSE
+  {
+    0x80808080,
+    0x20202020,
+    0x08080808,
+    0x02020202,
+    0x80808080,
+    0x20202020,
+    0x08080808,
+    0x02020202,
+    0x80808080,
+    0x20202020,
+    0x08080808,
+    0x02020202,
+    0x80808080,
+    0x20202020,
+    0x08080808,
+    0x02020202,
+    0x80808080,
+    0x20202020,
+    0x08080808,
+    0x02020202,
+    0x80808080,
+    0x20202020,
+    0x08080808,
+    0x02020202,
+    0x80808080,
+    0x20202020,
+    0x08080808,
+    0x02020202,
+    0x80808080,
+    0x20202020,
+    0x08080808,
+    0x02020202
+  },
+  //TEL_HS_DIAG_135_SPARSE
+  {
+    0x01010101,
+    0x04040404,
+    0x10101010,
+    0x40404040,
+    0x01010101,
+    0x04040404,
+    0x10101010,
+    0x40404040,
+    0x01010101,
+    0x04040404,
+    0x10101010,
+    0x40404040,
+    0x01010101,
+    0x04040404,
+    0x10101010,
+    0x40404040,
+    0x01010101,
+    0x04040404,
+    0x10101010,
+    0x40404040,
+    0x01010101,
+    0x04040404,
+    0x10101010,
+    0x40404040,
+    0x01010101,
+    0x04040404,
+    0x10101010,
+    0x40404040,
+    0x01010101,
+    0x04040404,
+    0x10101010,
+    0x40404040
+  },
+  //TEL_HS_HORIZONTAL_SPARSE
+  {
+    0xFFFFFFFF,
+    0x00000000,
+    0x00000000,
+    0x00000000,
+    0xFFFFFFFF,
+    0x00000000,
+    0x00000000,
+    0x00000000,
+    0xFFFFFFFF,
+    0x00000000,
+    0x00000000,
+    0x00000000,
+    0xFFFFFFFF,
+    0x00000000,
+    0x00000000,
+    0x00000000,
+    0xFFFFFFFF,
+    0x00000000,
+    0x00000000,
+    0x00000000,
+    0xFFFFFFFF,
+    0x00000000,
+    0x00000000,
+    0x00000000,
+    0xFFFFFFFF,
+    0x00000000,
+    0x00000000,
+    0x00000000,
+    0xFFFFFFFF,
+    0x00000000,
+    0x00000000,
+    0x00000000
+  },
+  //TEL_HS_VERTICAL_SPARSE
+  {
+    0x10101010,
+    0x10101010,
+    0x10101010,
+    0x10101010,
+    0x10101010,
+    0x10101010,
+    0x10101010,
+    0x10101010,
+    0x10101010,
+    0x10101010,
+    0x10101010,
+    0x10101010,
+    0x10101010,
+    0x10101010,
+    0x10101010,
+    0x10101010,
+    0x10101010,
+    0x10101010,
+    0x10101010,
+    0x10101010,
+    0x10101010,
+    0x10101010,
+    0x10101010,
+    0x10101010,
+    0x10101010,
+    0x10101010,
+    0x10101010,
+    0x10101010,
+    0x10101010,
+    0x10101010,
+    0x10101010,
+    0x10101010
+  }
+};
+
+/* Following Section relates to POLYMARKER */
+
+#define TEL_NO_OF_SIZES   13
+#define TEL_NB_OF_LISTS   5
+
+struct PM_FONT_INFO
+{
+  const char *str;
+  Tfloat width, height;
+  Tint offset;
+};
+typedef PM_FONT_INFO* pm_font_info;
+
+#define PM_PLUS_10_NUM  9*2
+#define PM_PLUS_15_NUM  11*2
+#define PM_PLUS_20_NUM  13*2
+#define PM_PLUS_25_NUM  15*2
+#define PM_PLUS_30_NUM  17*3
+#define PM_PLUS_35_NUM  19*3
+#define PM_PLUS_40_NUM  21*3
+#define PM_PLUS_45_NUM  23*3
+#define PM_PLUS_50_NUM  25*4
+#define PM_PLUS_55_NUM  27*4
+#define PM_PLUS_60_NUM  29*4
+#define PM_PLUS_65_NUM  31*4
+#define PM_PLUS_70_NUM  32*4
+
+#define PM_STAR_10_NUM  9
+#define PM_STAR_15_NUM  11*2
+#define PM_STAR_20_NUM  13*2
+#define PM_STAR_25_NUM  15*2
+#define PM_STAR_30_NUM  17*2
+#define PM_STAR_35_NUM  19*2
+#define PM_STAR_40_NUM  21*3
+#define PM_STAR_45_NUM  23*3
+#define PM_STAR_50_NUM  25*3
+#define PM_STAR_55_NUM  27*3
+#define PM_STAR_60_NUM  29*4
+#define PM_STAR_65_NUM  32*4
+#define PM_STAR_70_NUM  32*4
+
+#define PM_CIRC_10_NUM  7
+#define PM_CIRC_15_NUM  9*2
+#define PM_CIRC_20_NUM  9*2
+#define PM_CIRC_25_NUM  11*2
+#define PM_CIRC_30_NUM  13*2
+#define PM_CIRC_35_NUM  15*2
+#define PM_CIRC_40_NUM  17*3
+#define PM_CIRC_45_NUM  19*3
+#define PM_CIRC_50_NUM  21*3
+#define PM_CIRC_55_NUM  23*3
+#define PM_CIRC_60_NUM  25*4
+#define PM_CIRC_65_NUM  27*4
+#define PM_CIRC_70_NUM  29*4
+
+#define PM_CROSS_10_NUM 7
+#define PM_CROSS_15_NUM 9*2
+#define PM_CROSS_20_NUM 11*2
+#define PM_CROSS_25_NUM 13*2
+#define PM_CROSS_30_NUM 15*2
+#define PM_CROSS_35_NUM 17*3
+#define PM_CROSS_40_NUM 19*3
+#define PM_CROSS_45_NUM 21*3
+#define PM_CROSS_50_NUM 23*3
+#define PM_CROSS_55_NUM 25*4
+#define PM_CROSS_60_NUM 27*4
+#define PM_CROSS_65_NUM 32*4
+#define PM_CROSS_70_NUM 32*4
+
+#define PM_PLUS_10_OFT  0
+#define PM_PLUS_15_OFT  PM_PLUS_10_OFT + PM_PLUS_10_NUM
+#define PM_PLUS_20_OFT  PM_PLUS_15_OFT + PM_PLUS_15_NUM
+#define PM_PLUS_25_OFT  PM_PLUS_20_OFT + PM_PLUS_20_NUM
+#define PM_PLUS_30_OFT  PM_PLUS_25_OFT + PM_PLUS_25_NUM
+#define PM_PLUS_35_OFT  PM_PLUS_30_OFT + PM_PLUS_30_NUM
+#define PM_PLUS_40_OFT  PM_PLUS_35_OFT + PM_PLUS_35_NUM
+#define PM_PLUS_45_OFT  PM_PLUS_40_OFT + PM_PLUS_40_NUM
+#define PM_PLUS_50_OFT  PM_PLUS_45_OFT + PM_PLUS_45_NUM
+#define PM_PLUS_55_OFT  PM_PLUS_50_OFT + PM_PLUS_50_NUM
+#define PM_PLUS_60_OFT  PM_PLUS_55_OFT + PM_PLUS_55_NUM
+#define PM_PLUS_65_OFT  PM_PLUS_60_OFT + PM_PLUS_60_NUM
+#define PM_PLUS_70_OFT  PM_PLUS_65_OFT + PM_PLUS_65_NUM
+
+#define PM_STAR_10_OFT  PM_PLUS_70_OFT + PM_PLUS_70_NUM
+#define PM_STAR_15_OFT  PM_STAR_10_OFT + PM_STAR_10_NUM
+#define PM_STAR_20_OFT  PM_STAR_15_OFT + PM_STAR_15_NUM
+#define PM_STAR_25_OFT  PM_STAR_20_OFT + PM_STAR_20_NUM
+#define PM_STAR_30_OFT  PM_STAR_25_OFT + PM_STAR_25_NUM
+#define PM_STAR_35_OFT  PM_STAR_30_OFT + PM_STAR_30_NUM
+#define PM_STAR_40_OFT  PM_STAR_35_OFT + PM_STAR_35_NUM
+#define PM_STAR_45_OFT  PM_STAR_40_OFT + PM_STAR_40_NUM
+#define PM_STAR_50_OFT  PM_STAR_45_OFT + PM_STAR_45_NUM
+#define PM_STAR_55_OFT  PM_STAR_50_OFT + PM_STAR_50_NUM
+#define PM_STAR_60_OFT  PM_STAR_55_OFT + PM_STAR_55_NUM
+#define PM_STAR_65_OFT  PM_STAR_60_OFT + PM_STAR_60_NUM
+#define PM_STAR_70_OFT  PM_STAR_65_OFT + PM_STAR_65_NUM
+
+#define PM_CIRC_10_OFT  PM_STAR_70_OFT + PM_STAR_70_NUM
+#define PM_CIRC_15_OFT  PM_CIRC_10_OFT + PM_CIRC_10_NUM
+#define PM_CIRC_20_OFT  PM_CIRC_15_OFT + PM_CIRC_15_NUM
+#define PM_CIRC_25_OFT  PM_CIRC_20_OFT + PM_CIRC_20_NUM
+#define PM_CIRC_30_OFT  PM_CIRC_25_OFT + PM_CIRC_25_NUM
+#define PM_CIRC_35_OFT  PM_CIRC_30_OFT + PM_CIRC_30_NUM
+#define PM_CIRC_40_OFT  PM_CIRC_35_OFT + PM_CIRC_35_NUM
+#define PM_CIRC_45_OFT  PM_CIRC_40_OFT + PM_CIRC_40_NUM
+#define PM_CIRC_50_OFT  PM_CIRC_45_OFT + PM_CIRC_45_NUM
+#define PM_CIRC_55_OFT  PM_CIRC_50_OFT + PM_CIRC_50_NUM
+#define PM_CIRC_60_OFT  PM_CIRC_55_OFT + PM_CIRC_55_NUM
+#define PM_CIRC_65_OFT  PM_CIRC_60_OFT + PM_CIRC_60_NUM
+#define PM_CIRC_70_OFT  PM_CIRC_65_OFT + PM_CIRC_65_NUM
+
+#define PM_CROSS_10_OFT  PM_CIRC_70_OFT + PM_CIRC_70_NUM
+#define PM_CROSS_15_OFT  PM_CROSS_10_OFT + PM_CROSS_10_NUM
+#define PM_CROSS_20_OFT  PM_CROSS_15_OFT + PM_CROSS_15_NUM
+#define PM_CROSS_25_OFT  PM_CROSS_20_OFT + PM_CROSS_20_NUM
+#define PM_CROSS_30_OFT  PM_CROSS_25_OFT + PM_CROSS_25_NUM
+#define PM_CROSS_35_OFT  PM_CROSS_30_OFT + PM_CROSS_30_NUM
+#define PM_CROSS_40_OFT  PM_CROSS_35_OFT + PM_CROSS_35_NUM
+#define PM_CROSS_45_OFT  PM_CROSS_40_OFT + PM_CROSS_40_NUM
+#define PM_CROSS_50_OFT  PM_CROSS_45_OFT + PM_CROSS_45_NUM
+#define PM_CROSS_55_OFT  PM_CROSS_50_OFT + PM_CROSS_50_NUM
+#define PM_CROSS_60_OFT  PM_CROSS_55_OFT + PM_CROSS_55_NUM
+#define PM_CROSS_65_OFT  PM_CROSS_60_OFT + PM_CROSS_60_NUM
+#define PM_CROSS_70_OFT  PM_CROSS_65_OFT + PM_CROSS_65_NUM
+
+static const PM_FONT_INFO arrPMFontInfo[][TEL_NO_OF_SIZES] =
+{
+ /* TOM_POINT - not used */
+ {{"\0"},
+  {"\0"},
+  {"\0"},
+  {"\0"},
+  {"\0"},
+  {"\0"},
+  {"\0"},
+  {"\0"},
+  {"\0"},
+  {"\0"},
+  {"\0"},
+  {"\0"},
+  {"\0"}},
+
+ /* TOM_PLUS */
+ {{"\001",  9.f,  9.f, PM_PLUS_10_OFT},
+  {"\002", 11.f, 11.f, PM_PLUS_15_OFT},
+  {"\003", 13.f, 13.f, PM_PLUS_20_OFT},
+  {"\004", 15.f, 15.f, PM_PLUS_25_OFT},
+  {"\005", 17.f, 17.f, PM_PLUS_30_OFT},
+  {"\006", 19.f, 19.f, PM_PLUS_35_OFT},
+  {"\007", 21.f, 21.f, PM_PLUS_40_OFT},
+  {"\010", 23.f, 23.f, PM_PLUS_45_OFT},
+  {"\011", 25.f, 25.f, PM_PLUS_50_OFT},
+  {"\012", 27.f, 27.f, PM_PLUS_55_OFT},
+  {"\013", 29.f, 29.f, PM_PLUS_60_OFT},
+  {"\014", 31.f, 31.f, PM_PLUS_65_OFT},
+  {"\015", 32.f, 32.f, PM_PLUS_70_OFT}},
+
+ /* TOM_STAR */
+ {{"\016",  7.f,  9.f, PM_STAR_10_OFT},
+  {"\017",  9.f, 11.f, PM_STAR_15_OFT},
+  {"\020", 11.f, 13.f, PM_STAR_20_OFT},
+  {"\021", 13.f, 15.f, PM_STAR_25_OFT},
+  {"\022", 13.f, 17.f, PM_STAR_30_OFT},
+  {"\023", 15.f, 19.f, PM_STAR_35_OFT},
+  {"\024", 17.f, 21.f, PM_STAR_40_OFT},
+  {"\025", 19.f, 23.f, PM_STAR_45_OFT},
+  {"\026", 21.f, 25.f, PM_STAR_50_OFT},
+  {"\027", 23.f, 27.f, PM_STAR_55_OFT},
+  {"\030", 25.f, 29.f, PM_STAR_60_OFT},
+  {"\031", 32.f, 32.f, PM_STAR_65_OFT},
+  {"\032", 32.f, 32.f, PM_STAR_70_OFT}},
+
+ /* TOM_O */
+ {{"\033",  7.f,  7.f, PM_CIRC_10_OFT},
+  {"\034",  9.f,  9.f, PM_CIRC_15_OFT},
+  {"\035",  9.f,  9.f, PM_CIRC_20_OFT},
+  {"\036", 11.f, 11.f, PM_CIRC_25_OFT},
+  {"\037", 13.f, 13.f, PM_CIRC_30_OFT},
+  {"\040", 15.f, 15.f, PM_CIRC_35_OFT},
+  {"\041", 17.f, 17.f, PM_CIRC_40_OFT},
+  {"\042", 19.f, 19.f, PM_CIRC_45_OFT},
+  {"\043", 21.f, 21.f, PM_CIRC_50_OFT},
+  {"\044", 23.f, 23.f, PM_CIRC_55_OFT},
+  {"\045", 25.f, 25.f, PM_CIRC_60_OFT},
+  {"\046", 27.f, 27.f, PM_CIRC_65_OFT},
+  {"\047", 29.f, 29.f, PM_CIRC_70_OFT}},
+
+ /* TOM_X */
+ {{"\050",  7.f,  7.f, PM_CROSS_10_OFT},
+  {"\051",  9.f,  9.f, PM_CROSS_15_OFT},
+  {"\052", 11.f, 11.f, PM_CROSS_20_OFT},
+  {"\053", 13.f, 13.f, PM_CROSS_25_OFT},
+  {"\054", 15.f, 15.f, PM_CROSS_30_OFT},
+  {"\055", 17.f, 17.f, PM_CROSS_35_OFT},
+  {"\056", 19.f, 19.f, PM_CROSS_40_OFT},
+  {"\057", 21.f, 21.f, PM_CROSS_45_OFT},
+  {"\060", 23.f, 23.f, PM_CROSS_50_OFT},
+  {"\061", 25.f, 25.f, PM_CROSS_55_OFT},
+  {"\062", 27.f, 27.f, PM_CROSS_60_OFT},
+  {"\063", 32.f, 32.f, PM_CROSS_65_OFT},
+  {"\064", 32.f, 32.f, PM_CROSS_70_OFT}},
+
+ /* TOM_O_POINT - not used */
+ {{"\0"},
+  {"\0"},
+  {"\0"},
+  {"\0"},
+  {"\0"},
+  {"\0"},
+  {"\0"},
+  {"\0"},
+  {"\0"},
+  {"\0"},
+  {"\0"},
+  {"\0"},
+  {"\0"}},
+
+ /* TOM_O_PLUS */
+ {{"\001\033"},
+  {"\002\034"},
+  {"\003\035"},
+  {"\004\036"},
+  {"\005\037"},
+  {"\006\040"},
+  {"\007\041"},
+  {"\010\042"},
+  {"\011\043"},
+  {"\012\044"},
+  {"\013\045"},
+  {"\014\046"},
+  {"\015\047"}},
+
+ /* TOM_O_STAR */
+ {{"\016\033"},
+  {"\017\034"},
+  {"\020\035"},
+  {"\021\036"},
+  {"\022\037"},
+  {"\023\040"},
+  {"\024\041"},
+  {"\025\042"},
+  {"\026\043"},
+  {"\027\044"},
+  {"\030\045"},
+  {"\031\046"},
+  {"\032\047"}},
+
+ /* TOM_O_X */
+ {{"\050\033"},
+  {"\051\034"},
+  {"\052\035"},
+  {"\053\036"},
+  {"\054\037"},
+  {"\055\040"},
+  {"\056\041"},
+  {"\057\042"},
+  {"\060\043"},
+  {"\061\044"},
+  {"\062\045"},
+  {"\063\046"},
+  {"\064\047"}}
+};
+
+static const unsigned char myMarkerRaster[] =
+{
+    /* TYPE = PLUS */
+
+    0x08,0x00,
+    0x08,0x00,
+    0x08,0x00,
+    0x08,0x00,
+    0xff,0x80,
+    0x08,0x00,
+    0x08,0x00,
+    0x08,0x00,
+    0x08,0x00,  /* PLUS 9x9 = 1.0 */
+
+    0x04,0x00,
+    0x04,0x00,
+    0x04,0x00,
+    0x04,0x00,
+    0x04,0x00,
+    0xff,0xe0,
+    0x04,0x00,
+    0x04,0x00,
+    0x04,0x00,
+    0x04,0x00,
+    0x04,0x00,  /* PLUS 11x11 = 1.5 */
+
+    0x02,0x00,
+    0x02,0x00,
+    0x02,0x00,
+    0x02,0x00,
+    0x02,0x00,
+    0x02,0x00,
+    0xff,0xf8,
+    0x02,0x00,
+    0x02,0x00,
+    0x02,0x00,
+    0x02,0x00,
+    0x02,0x00,
+    0x02,0x00,/* PLUS 13x13 = 2.0 */
+
+    0x01,0x00,
+    0x01,0x00,
+    0x01,0x00,
+    0x01,0x00,
+    0x01,0x00,
+    0x01,0x00,
+    0x01,0x00,
+    0xff,0xfe,
+    0x01,0x00,
+    0x01,0x00,
+    0x01,0x00,
+    0x01,0x00,
+    0x01,0x00,
+    0x01,0x00,
+    0x01,0x00,/* PLUS 15x15 = 2.5 */
+
+    0x00,0x80, 0x00,
+    0x00,0x80, 0x00,
+    0x00,0x80, 0x00,
+    0x00,0x80, 0x00,
+    0x00,0x80, 0x00,
+    0x00,0x80, 0x00,
+    0x00,0x80, 0x00,
+    0x00,0x80, 0x00,
+    0xff,0xff, 0x80,
+    0x00,0x80, 0x00,
+    0x00,0x80, 0x00,
+    0x00,0x80, 0x00,
+    0x00,0x80, 0x00,
+    0x00,0x80, 0x00,
+    0x00,0x80, 0x00,
+    0x00,0x80, 0x00,
+    0x00,0x80, 0x00,/* PLUS 17x17 = 3.0 */
+
+    0x00,0x40, 0x00,
+    0x00,0x40, 0x00,
+    0x00,0x40, 0x00,
+    0x00,0x40, 0x00,
+    0x00,0x40, 0x00,
+    0x00,0x40, 0x00,
+    0x00,0x40, 0x00,
+    0x00,0x40, 0x00,
+    0x00,0x40, 0x00,
+    0xff,0xff, 0xe0,
+    0x00,0x40, 0x00,
+    0x00,0x40, 0x00,
+    0x00,0x40, 0x00,
+    0x00,0x40, 0x00,
+    0x00,0x40, 0x00,
+    0x00,0x40, 0x00,
+    0x00,0x40, 0x00,
+    0x00,0x40, 0x00,
+    0x00,0x40, 0x00,/* PLUS 19x19 = 3.5 */
+
+    0x00,0x20, 0x00,
+    0x00,0x20, 0x00,
+    0x00,0x20, 0x00,
+    0x00,0x20, 0x00,
+    0x00,0x20, 0x00,
+    0x00,0x20, 0x00,
+    0x00,0x20, 0x00,
+    0x00,0x20, 0x00,
+    0x00,0x20, 0x00,
+    0x00,0x20, 0x00,
+    0xff,0xff, 0xf8,
+    0x00,0x20, 0x00,
+    0x00,0x20, 0x00,
+    0x00,0x20, 0x00,
+    0x00,0x20, 0x00,
+    0x00,0x20, 0x00,
+    0x00,0x20, 0x00,
+    0x00,0x20, 0x00,
+    0x00,0x20, 0x00,
+    0x00,0x20, 0x00,
+    0x00,0x20, 0x00,/* PLUS 21x21 = 4.0 */
+
+    0x00,0x10, 0x00,
+    0x00,0x10, 0x00,
+    0x00,0x10, 0x00,
+    0x00,0x10, 0x00,
+    0x00,0x10, 0x00,
+    0x00,0x10, 0x00,
+    0x00,0x10, 0x00,
+    0x00,0x10, 0x00,
+    0x00,0x10, 0x00,
+    0x00,0x10, 0x00,
+    0x00,0x10, 0x00,
+    0xff,0xff, 0xfe,
+    0x00,0x10, 0x00,
+    0x00,0x10, 0x00,
+    0x00,0x10, 0x00,
+    0x00,0x10, 0x00,
+    0x00,0x10, 0x00,
+    0x00,0x10, 0x00,
+    0x00,0x10, 0x00,
+    0x00,0x10, 0x00,
+    0x00,0x10, 0x00,
+    0x00,0x10, 0x00,
+    0x00,0x10, 0x00,/* PLUS 23x23 = 4.5 */
+
+    0x00,0x08, 0x00,0x00,
+    0x00,0x08, 0x00,0x00,
+    0x00,0x08, 0x00,0x00,
+    0x00,0x08, 0x00,0x00,
+    0x00,0x08, 0x00,0x00,
+    0x00,0x08, 0x00,0x00,
+    0x00,0x08, 0x00,0x00,
+    0x00,0x08, 0x00,0x00,
+    0x00,0x08, 0x00,0x00,
+    0x00,0x08, 0x00,0x00,
+    0x00,0x08, 0x00,0x00,
+    0x00,0x08, 0x00,0x00,
+    0xff,0xff, 0xff,0x80,
+    0x00,0x08, 0x00,0x00,
+    0x00,0x08, 0x00,0x00,
+    0x00,0x08, 0x00,0x00,
+    0x00,0x08, 0x00,0x00,
+    0x00,0x08, 0x00,0x00,
+    0x00,0x08, 0x00,0x00,
+    0x00,0x08, 0x00,0x00,
+    0x00,0x08, 0x00,0x00,
+    0x00,0x08, 0x00,0x00,
+    0x00,0x08, 0x00,0x00,
+    0x00,0x08, 0x00,0x00,
+    0x00,0x08, 0x00,0x00,/* PLUS 25x25 = 5.0 */
+
+    0x00,0x04, 0x00,0x00,
+    0x00,0x04, 0x00,0x00,
+    0x00,0x04, 0x00,0x00,
+    0x00,0x04, 0x00,0x00,
+    0x00,0x04, 0x00,0x00,
+    0x00,0x04, 0x00,0x00,
+    0x00,0x04, 0x00,0x00,
+    0x00,0x04, 0x00,0x00,
+    0x00,0x04, 0x00,0x00,
+    0x00,0x04, 0x00,0x00,
+    0x00,0x04, 0x00,0x00,
+    0x00,0x04, 0x00,0x00,
+    0x00,0x04, 0x00,0x00,
+    0xff,0xff, 0xff,0xe0,
+    0x00,0x04, 0x00,0x00,
+    0x00,0x04, 0x00,0x00,
+    0x00,0x04, 0x00,0x00,
+    0x00,0x04, 0x00,0x00,
+    0x00,0x04, 0x00,0x00,
+    0x00,0x04, 0x00,0x00,
+    0x00,0x04, 0x00,0x00,
+    0x00,0x04, 0x00,0x00,
+    0x00,0x04, 0x00,0x00,
+    0x00,0x04, 0x00,0x00,
+    0x00,0x04, 0x00,0x00,
+    0x00,0x04, 0x00,0x00,
+    0x00,0x04, 0x00,0x00,/* PLUS 27x27 = 5.5 */
+
+    0x00,0x02, 0x00,0x00,
+    0x00,0x02, 0x00,0x00,
+    0x00,0x02, 0x00,0x00,
+    0x00,0x02, 0x00,0x00,
+    0x00,0x02, 0x00,0x00,
+    0x00,0x02, 0x00,0x00,
+    0x00,0x02, 0x00,0x00,
+    0x00,0x02, 0x00,0x00,
+    0x00,0x02, 0x00,0x00,
+    0x00,0x02, 0x00,0x00,
+    0x00,0x02, 0x00,0x00,
+    0x00,0x02, 0x00,0x00,
+    0x00,0x02, 0x00,0x00,
+    0x00,0x02, 0x00,0x00,
+    0xff,0xff, 0xff,0xf8,
+    0x00,0x02, 0x00,0x00,
+    0x00,0x02, 0x00,0x00,
+    0x00,0x02, 0x00,0x00,
+    0x00,0x02, 0x00,0x00,
+    0x00,0x02, 0x00,0x00,
+    0x00,0x02, 0x00,0x00,
+    0x00,0x02, 0x00,0x00,
+    0x00,0x02, 0x00,0x00,
+    0x00,0x02, 0x00,0x00,
+    0x00,0x02, 0x00,0x00,
+    0x00,0x02, 0x00,0x00,
+    0x00,0x02, 0x00,0x00,
+    0x00,0x02, 0x00,0x00,
+    0x00,0x02, 0x00,0x00,/* PLUS 29x29 = 6.0 */
+
+    0x00,0x01, 0x00,0x00,
+    0x00,0x01, 0x00,0x00,
+    0x00,0x01, 0x00,0x00,
+    0x00,0x01, 0x00,0x00,
+    0x00,0x01, 0x00,0x00,
+    0x00,0x01, 0x00,0x00,
+    0x00,0x01, 0x00,0x00,
+    0x00,0x01, 0x00,0x00,
+    0x00,0x01, 0x00,0x00,
+    0x00,0x01, 0x00,0x00,
+    0x00,0x01, 0x00,0x00,
+    0x00,0x01, 0x00,0x00,
+    0x00,0x01, 0x00,0x00,
+    0x00,0x01, 0x00,0x00,
+    0x00,0x01, 0x00,0x00,
+    0xff,0xff, 0xff,0xfd,
+    0x00,0x01, 0x00,0x00,
+    0x00,0x01, 0x00,0x00,
+    0x00,0x01, 0x00,0x00,
+    0x00,0x01, 0x00,0x00,
+    0x00,0x01, 0x00,0x00,
+    0x00,0x01, 0x00,0x00,
+    0x00,0x01, 0x00,0x00,
+    0x00,0x01, 0x00,0x00,
+    0x00,0x01, 0x00,0x00,
+    0x00,0x01, 0x00,0x00,
+    0x00,0x01, 0x00,0x00,
+    0x00,0x01, 0x00,0x00,
+    0x00,0x01, 0x00,0x00,
+    0x00,0x01, 0x00,0x00,
+    0x00,0x01, 0x00,0x00,/* PLUS 31x31 = 6.5 */
+
+    0x00,0x00, 0x80,0x00,
+    0x00,0x00, 0x80,0x00,
+    0x00,0x00, 0x80,0x00,
+    0x00,0x00, 0x80,0x00,
+    0x00,0x00, 0x80,0x00,
+    0x00,0x00, 0x80,0x00,
+    0x00,0x00, 0x80,0x00,
+    0x00,0x00, 0x80,0x00,
+    0x00,0x00, 0x80,0x00,
+    0x00,0x00, 0x80,0x00,
+    0x00,0x00, 0x80,0x00,
+    0x00,0x00, 0x80,0x00,
+    0x00,0x00, 0x80,0x00,
+    0x00,0x00, 0x80,0x00,
+    0x00,0x00, 0x80,0x00,
+    0x00,0x00, 0x80,0x00,
+    0xff,0xff, 0xff,0xff,
+    0x00,0x00, 0x80,0x00,
+    0x00,0x00, 0x80,0x00,
+    0x00,0x00, 0x80,0x00,
+    0x00,0x00, 0x80,0x00,
+    0x00,0x00, 0x80,0x00,
+    0x00,0x00, 0x80,0x00,
+    0x00,0x00, 0x80,0x00,
+    0x00,0x00, 0x80,0x00,
+    0x00,0x00, 0x80,0x00,
+    0x00,0x00, 0x80,0x00,
+    0x00,0x00, 0x80,0x00,
+    0x00,0x00, 0x80,0x00,
+    0x00,0x00, 0x80,0x00,
+    0x00,0x00, 0x80,0x00,
+    0x00,0x00, 0x80,0x00,/* PLUS 32x32 = 7.0 */
+
+    /* TYPE = STAR */
+
+    0x10,
+    0x10,
+    0xd6,
+    0x38,
+    0x10,
+    0x38,
+    0xd6,
+    0x10,
+    0x10,/* STAR 7x9 = 1.0 */
+
+    0x08,0x00,
+    0x08,0x00,
+    0x08,0x00,
+    0xc9,0x80,
+    0x3e,0x00,
+    0x08,0x00,
+    0x3e,0x00,
+    0xc9,0x80,
+    0x08,0x00,
+    0x08,0x00,
+    0x08,0x00,/* STAR 9x11 = 1.5 */
+
+    0x04,0x00,
+    0x04,0x00,
+    0x04,0x00,
+    0x84,0x20,
+    0x64,0xc0,
+    0x1f,0x00,
+    0x04,0x00,
+    0x1f,0x00,
+    0x64,0xc0,
+    0x84,0x20,
+    0x04,0x00,
+    0x04,0x00,
+    0x04,0x00,/* STAR 11x13 = 2.0 */
+
+    0x02,0x00,
+    0x02,0x00,
+    0x02,0x00,
+    0x02,0x00,
+    0x82,0x18,
+    0x62,0x60,
+    0x1b,0x80,
+    0x06,0x00,
+    0x1b,0x80,
+    0x62,0x60,
+    0x82,0x18,
+    0x02,0x00,
+    0x02,0x00,
+    0x02,0x00,
+    0x02,0x00,/* STAR 13x15 = 2.5 */
+
+    0x02,0x00,
+    0x02,0x00,
+    0x02,0x00,
+    0x02,0x00,
+    0x82,0x08,
+    0x62,0x30,
+    0x12,0x40,
+    0x0f,0x80,
+    0x02,0x00,
+    0x0f,0x80,
+    0x12,0x40,
+    0x62,0x30,
+    0x82,0x08,
+    0x02,0x00,
+    0x02,0x00,
+    0x02,0x00,
+    0x02,0x00,/* STAR 13x17 = 3.0 */
+
+    0x01,0x00,
+    0x01,0x00,
+    0x01,0x00,
+    0x01,0x00,
+    0x01,0x00,
+    0xc1,0x06,
+    0x21,0x18,
+    0x19,0x20,
+    0x07,0xc0,
+    0x01,0x00,
+    0x07,0xc0,
+    0x19,0x20,
+    0x21,0x18,
+    0xc1,0x06,
+    0x01,0x00,
+    0x01,0x00,
+    0x01,0x00,
+    0x01,0x00,
+    0x01,0x00,/* STAR 15x19 = 3.5 */
+
+    0x00,0x80, 0x00,
+    0x00,0x80, 0x00,
+    0x00,0x80, 0x00,
+    0x00,0x80, 0x00,
+    0x00,0x80, 0x00,
+    0x80,0x80, 0x80,
+    0x60,0x83, 0x00,
+    0x10,0x8c, 0x00,
+    0x0c,0x90, 0x00,
+    0x03,0xe0, 0x00,
+    0x00,0x80, 0x00,
+    0x03,0xe0, 0x00,
+    0x0c,0x90, 0x00,
+    0x10,0x8c, 0x00,
+    0x60,0x83, 0x00,
+    0x80,0x80, 0x80,
+    0x00,0x80, 0x00,
+    0x00,0x80, 0x00,
+    0x00,0x80, 0x00,
+    0x00,0x80, 0x00,
+    0x00,0x80, 0x00,/* STAR 17x21 = 4.0 */
+
+    0x00,0x40, 0x00,
+    0x00,0x40, 0x00,
+    0x00,0x40, 0x00,
+    0x00,0x40, 0x00,
+    0x00,0x40, 0x00,
+    0x00,0x40, 0x00,
+    0xc0,0x40, 0x60,
+    0x30,0x41, 0x80,
+    0x08,0x42, 0x00,
+    0x06,0x4c, 0x00,
+    0x01,0xf0, 0x00,
+    0x00,0x40, 0x00,
+    0x01,0xf0, 0x00,
+    0x06,0x4c, 0x00,
+    0x08,0x42, 0x00,
+    0x30,0x41, 0x80,
+    0xc0,0x40, 0x60,
+    0x00,0x40, 0x00,
+    0x00,0x40, 0x00,
+    0x00,0x40, 0x00,
+    0x00,0x40, 0x00,
+    0x00,0x40, 0x00,
+    0x00,0x40, 0x00,/* STAR 19x23 = 4.5 */
+
+    0x00,0x20, 0x00,
+    0x00,0x20, 0x00,
+    0x00,0x20, 0x00,
+    0x00,0x20, 0x00,
+    0x00,0x20, 0x00,
+    0x00,0x20, 0x00,
+    0x80,0x20, 0x08,
+    0x60,0x20, 0x30,
+    0x18,0x20, 0xc0,
+    0x04,0x21, 0x00,
+    0x03,0x26, 0x00,
+    0x00,0xf8, 0x00,
+    0x00,0x20, 0x00,
+    0x00,0xf8, 0x00,
+    0x03,0x26, 0x00,
+    0x04,0x21, 0x00,
+    0x18,0x20, 0xc0,
+    0x60,0x20, 0x30,
+    0x80,0x20, 0x08,
+    0x00,0x20, 0x00,
+    0x00,0x20, 0x00,
+    0x00,0x20, 0x00,
+    0x00,0x20, 0x00,
+    0x00,0x20, 0x00,
+    0x00,0x20, 0x00,/* STAR 21x25 = 5.0 */
+
+    0x00,0x10, 0x00,
+    0x00,0x10, 0x00,
+    0x00,0x10, 0x00,
+    0x00,0x10, 0x00,
+    0x00,0x10, 0x00,
+    0x00,0x10, 0x00,
+    0x00,0x10, 0x00,
+    0xc0,0x10, 0x06,
+    0x30,0x10, 0x18,
+    0x08,0x10, 0x60,
+    0x06,0x10, 0x80,
+    0x01,0x93, 0x00,
+    0x00,0x7c, 0x00,
+    0x00,0x10, 0x00,
+    0x00,0x7c, 0x00,
+    0x01,0x93, 0x00,
+    0x06,0x10, 0x80,
+    0x08,0x10, 0x60,
+    0x30,0x10, 0x18,
+    0xc0,0x10, 0x06,
+    0x00,0x10, 0x00,
+    0x00,0x10, 0x00,
+    0x00,0x10, 0x00,
+    0x00,0x10, 0x00,
+    0x00,0x10, 0x00,
+    0x00,0x10, 0x00,
+    0x00,0x10, 0x00,/* STAR 23x27 = 5.5 */
+
+    0x00,0x08, 0x00,0x00,
+    0x00,0x08, 0x00,0x00,
+    0x00,0x08, 0x00,0x00,
+    0x00,0x08, 0x00,0x00,
+    0x00,0x08, 0x00,0x00,
+    0x00,0x08, 0x00,0x00,
+    0x00,0x08, 0x00,0x00,
+    0x80,0x08, 0x00,0x80,
+    0x60,0x08, 0x03,0x00,
+    0x18,0x08, 0x0c,0x00,
+    0x04,0x08, 0x30,0x00,
+    0x03,0x08, 0x40,0x00,
+    0x00,0xc9, 0x80,0x00,
+    0x00,0x3e, 0x00,0x00,
+    0x00,0x08, 0x00,0x00,
+    0x00,0x3e, 0x00,0x00,
+    0x00,0xc9, 0x80,0x00,
+    0x03,0x08, 0x40,0x00,
+    0x04,0x08, 0x30,0x00,
+    0x18,0x08, 0x0c,0x00,
+    0x60,0x08, 0x03,0x00,
+    0x80,0x08, 0x00,0x80,
+    0x00,0x08, 0x00,0x00,
+    0x00,0x08, 0x00,0x00,
+    0x00,0x08, 0x00,0x00,
+    0x00,0x08, 0x00,0x00,
+    0x00,0x08, 0x00,0x00,
+    0x00,0x08, 0x00,0x00,
+    0x00,0x08, 0x00,0x00,/* STAR 25x29 = 6.0 */
+
+    0x00,0x00, 0x80,0x00,
+    0x00,0x00, 0x80,0x00,
+    0x00,0x00, 0x80,0x00,
+    0x00,0x00, 0x80,0x00,
+    0x00,0x00, 0x80,0x00,
+    0x00,0x00, 0x80,0x00,
+    0x00,0x00, 0x80,0x00,
+    0x00,0x00, 0x80,0x00, 
+    0x00,0x00, 0x80,0x00,
+    0x30,0x00, 0x80,0x06,
+    0x0c,0x00, 0x80,0x18,
+    0x03,0x00, 0x80,0x60,
+    0x00,0xc0, 0x81,0x80,
+    0x00,0x30, 0x86,0x00,
+    0x00,0x0c, 0x98,0x00,
+    0x00,0x03, 0xe0,0x00,
+    0x00,0x03, 0xe0,0x00,
+    0x00,0x0c, 0x98,0x00,
+    0x00,0x30, 0x86,0x00,
+    0x00,0xc0, 0x81,0x80,
+    0x03,0x00, 0x80,0x60,
+    0x0c,0x00, 0x80,0x18,
+    0x30,0x00, 0x80,0x06,
+    0x00,0x00, 0x80,0x00,
+    0x00,0x00, 0x80,0x00,
+    0x00,0x00, 0x80,0x00,
+    0x00,0x00, 0x80,0x00,
+    0x00,0x00, 0x80,0x00,
+    0x00,0x00, 0x80,0x00,
+    0x00,0x00, 0x80,0x00,
+    0x00,0x00, 0x00,0x00,
+    0x00,0x00, 0x00,0x00,/* STAR 32x32 = 6.5 */
+
+    0x00, 0x00, 0x80, 0x00,
+    0x00, 0x00, 0x80, 0x00,
+    0x00, 0x00, 0x80, 0x00,
+    0x00, 0x00, 0x80, 0x00,
+    0x00, 0x00, 0x80, 0x00,
+    0x00, 0x00, 0x80, 0x00,
+    0x00, 0x00, 0x80, 0x00, 
+    0x00, 0x00, 0x80, 0x00,
+    0x10, 0x00, 0x80, 0x04,
+    0x0c, 0x00, 0x80, 0x18,
+    0x02, 0x00, 0x80, 0x20,
+    0x01, 0x80, 0x80, 0xc0,
+    0x00, 0x40, 0x81, 0x00,
+    0x00, 0x30, 0x86, 0x00,
+    0x00, 0x08, 0x88, 0x00,
+    0x00, 0x06, 0xb0, 0x00,
+    0x00, 0x01, 0xc0, 0x00,
+    0x00, 0x06, 0xb0, 0x00,
+    0x00, 0x08, 0x88, 0x00,
+    0x00, 0x30, 0x86, 0x00,
+    0x00, 0x40, 0x81, 0x00,
+    0x01, 0x80, 0x80, 0xc0,
+    0x02, 0x00, 0x80, 0x20,
+    0x0c, 0x00, 0x80, 0x18,
+    0x10, 0x00, 0x80, 0x04,
+    0x00, 0x00, 0x80, 0x00,
+    0x00, 0x00, 0x80, 0x00,
+    0x00, 0x00, 0x80, 0x00,
+    0x00, 0x00, 0x80, 0x00,
+    0x00, 0x00, 0x80, 0x00,
+    0x00, 0x00, 0x80, 0x00,
+    0x00, 0x00, 0x80, 0x00,/* STAR 32x32 = 7.0 */
+
+      /* TYPE = CIRC */
+
+    0x38,
+    0x44,
+    0x82,
+    0x82,
+    0x82,
+    0x44,
+    0x38,/* CIRC 7x7 = 1.0 */
+
+    0x3c,0x00,
+    0x42,0x00,
+    0x81,0x00,
+    0x81,0x00,
+    0x81,0x00,
+    0x81,0x00,
+    0x42,0x00,
+    0x3c,0x00,
+    0x00,0x00,/*CIRC 9x9 = 1.5 */
+
+    0x3e, 0x00,
+    0x41, 0x00,
+    0x81, 0x80,
+    0x80,0x80,
+    0x80,0x80,
+    0x80,0x80,
+    0x81, 0x80,
+    0x41, 0x00,
+    0x3e,0x00,/* CIRC 9x9 = 2.0 */
+
+    0x1f,0x00,
+    0x20,0x80,
+    0x40,0x40,
+    0x80,0x20,
+    0x80,0x20,
+    0x80,0x20,
+    0x80,0x20,
+    0x80,0x20,
+    0x40,0x40,
+    0x20,0x80,
+    0x1f,0x00,/* CIRC 11x11 = 2.5 */
+
+    0x0f,0x80,
+    0x10,0x40,
+    0x20,0x20,
+    0x40,0x10,
+    0x80,0x08,
+    0x80,0x08,
+    0x80,0x08,
+    0x80,0x08,
+    0x80,0x08,
+    0x40,0x10,
+    0x20,0x20,
+    0x10,0x40,
+    0x0f,0x80,/* CIRC 13x13 = 3.0 */
+
+    0x07,0xc0,
+    0x18,0x30,
+    0x20,0x08,
+    0x40,0x04,
+    0x40,0x04,
+    0x80,0x02,
+    0x80,0x02,
+    0x80,0x02,
+    0x80,0x02,
+    0x80,0x02,
+    0x40,0x04,
+    0x40,0x04,
+    0x20,0x08,
+    0x18,0x30,
+    0x07,0xc0,/* CIRC 15x15 = 3.5 */
+
+    0x03,0xe0, 0x00,
+    0x0c,0x18, 0x00,
+    0x10,0x04, 0x00,
+    0x20,0x02, 0x00,
+    0x40,0x01, 0x00,
+    0x40,0x01, 0x00,
+    0x80,0x00, 0x80,
+    0x80,0x00, 0x80,
+    0x80,0x00, 0x80,
+    0x80,0x00, 0x80,
+    0x80,0x00, 0x80,
+    0x40,0x01, 0x00,
+    0x40,0x01, 0x00,
+    0x20,0x02, 0x00,
+    0x10,0x04, 0x00,
+    0x0c,0x18, 0x00,
+    0x03,0xe0, 0x00,/* CIRC 17x17 = 4.0 */
+
+    0x03,0xf8, 0x00,
+    0x0e,0x0e, 0x00,
+    0x18,0x03, 0x00,
+    0x20,0x00, 0x80,
+    0x60,0x00, 0xc0,
+    0x40,0x00, 0x40,
+    0xc0,0x00, 0x60,
+    0x80,0x00, 0x20,
+    0x80,0x00, 0x20,
+    0x80,0x00, 0x20,
+    0x80,0x00, 0x20,
+    0x80,0x00, 0x20,
+    0xc0,0x00, 0x60,
+    0x40,0x00, 0x40,
+    0x60,0x00, 0xc0,
+    0x20,0x00, 0x80,
+    0x18,0x03, 0x00,
+    0x0e,0x0e, 0x00,
+    0x03,0xf8, 0x00,/* CIRC 19x19 = 4.5 */
+
+    0x01,0xfc, 0x00,
+    0x06,0x03, 0x00,
+    0x08,0x00, 0x80,
+    0x10,0x00, 0x40,
+    0x20,0x00, 0x20,
+    0x40,0x00, 0x10,
+    0x40,0x00, 0x10,
+    0x80,0x00, 0x08,
+    0x80,0x00, 0x08,
+    0x80,0x00, 0x08,
+    0x80,0x00, 0x08,
+    0x80,0x00, 0x08,
+    0x80,0x00, 0x08,
+    0x80,0x00, 0x08,
+    0x40,0x00, 0x10,
+    0x40,0x00, 0x10,
+    0x20,0x00, 0x20,
+    0x10,0x00, 0x40,
+    0x08,0x00, 0x80,
+    0x06,0x03, 0x00,
+    0x01,0xfc, 0x00,/* CIRC 21x21 = 5.0 */
+
+    0x00,0xfe, 0x00,
+    0x03,0x01, 0x80,
+    0x0c,0x00, 0x60,
+    0x18,0x00, 0x30,
+    0x30,0x00, 0x18,
+    0x20,0x00, 0x08,
+    0x40,0x00, 0x04,
+    0x40,0x00, 0x04,
+    0x80,0x00, 0x02,
+    0x80,0x00, 0x02,
+    0x80,0x00, 0x02,
+    0x80,0x00, 0x02,
+    0x80,0x00, 0x02,
+    0x80,0x00, 0x02,
+    0x80,0x00, 0x02,
+    0x40,0x00, 0x04,
+    0x40,0x00, 0x04,
+    0x20,0x00, 0x08,
+    0x30,0x00, 0x18,
+    0x18,0x00, 0x30,
+    0x0c,0x00, 0x60,
+    0x03,0x01, 0x80,
+    0x00,0xfe, 0x00,/* CIRC 23x23 = 5.5 */
+
+    0x00,0x7f, 0x00,0x00,
+    0x01,0x80, 0xc0,0x00,
+    0x06,0x00, 0x30,0x00,
+    0x08,0x00, 0x08,0x00,
+    0x10,0x00, 0x04,0x00,
+    0x20,0x00, 0x02,0x00,
+    0x20,0x00, 0x02,0x00,
+    0x40,0x00, 0x01,0x00,
+    0x40,0x00, 0x01,0x00,
+    0x80,0x00, 0x00,0x80,
+    0x80,0x00, 0x00,0x80,
+    0x80,0x00, 0x00,0x80,
+    0x80,0x00, 0x00,0x80,
+    0x80,0x00, 0x00,0x80,
+    0x80,0x00, 0x00,0x80,
+    0x80,0x00, 0x00,0x80,
+    0x40,0x00, 0x01,0x00,
+    0x40,0x00, 0x01,0x00,
+    0x20,0x00, 0x02,0x00,
+    0x20,0x00, 0x02,0x00,
+    0x10,0x00, 0x04,0x00,
+    0x08,0x00, 0x08,0x00,
+    0x06,0x00, 0x30,0x00,
+    0x01,0x80, 0xc0,0x00,
+    0x00,0x7f, 0x00,0x00,/* CIRC 25x25 = 6.0 */
+
+    0x00,0x3f, 0x80,0x00,
+    0x01,0xc0, 0x70,0x00,
+    0x03,0x00, 0x18,0x00,
+    0x0c,0x00, 0x06,0x00,
+    0x18,0x00, 0x03,0x00,
+    0x10,0x00, 0x01,0x00,
+    0x20,0x00, 0x00,0x80,
+    0x60,0x00, 0x00,0xc0,
+    0x40,0x00, 0x00,0x40,
+    0x40,0x00, 0x00,0x40,
+    0x80,0x00, 0x00,0x20,
+    0x80,0x00, 0x00,0x20,
+    0x80,0x00, 0x00,0x20,
+    0x80,0x00, 0x00,0x20,
+    0x80,0x00, 0x00,0x20,
+    0x80,0x00, 0x00,0x20,
+    0x80,0x00, 0x00,0x20,
+    0x40,0x00, 0x00,0x40,
+    0x40,0x00, 0x00,0x40,
+    0x60,0x00, 0x00,0xc0,
+    0x20,0x00, 0x00,0x80,
+    0x10,0x00, 0x01,0x00,
+    0x18,0x00, 0x03,0x00,
+    0x0c,0x00, 0x06,0x00,
+    0x03,0x00, 0x18,0x00,
+    0x01,0xc0, 0x70,0x00,
+    0x00,0x3f, 0x80,0x00,/* CIRC 27x27 = 6.5 */
+
+    0x00,0x1f, 0xc0,0x00,
+    0x00,0xe0, 0x38,0x00,
+    0x01,0x00, 0x04,0x00,
+    0x06,0x00, 0x03,0x00,
+    0x08,0x00, 0x00,0x80,
+    0x10,0x00, 0x00,0x40,
+    0x10,0x00, 0x00,0x40,
+    0x20,0x00, 0x00,0x20,
+    0x40,0x00, 0x00,0x10,
+    0x40,0x00, 0x00,0x10,
+    0x40,0x00, 0x00,0x10,
+    0x80,0x00, 0x00,0x08,
+    0x80,0x00, 0x00,0x08,
+    0x80,0x00, 0x00,0x08,
+    0x80,0x00, 0x00,0x08,
+    0x80,0x00, 0x00,0x08,
+    0x80,0x00, 0x00,0x08,
+    0x80,0x00, 0x00,0x08,
+    0x40,0x00, 0x00,0x10,
+    0x40,0x00, 0x00,0x10,
+    0x40,0x00, 0x00,0x10,
+    0x20,0x00, 0x00,0x20,
+    0x10,0x00, 0x00,0x40,
+    0x10,0x00, 0x00,0x40,
+    0x08,0x00, 0x00,0x80,
+    0x06,0x00, 0x03,0x00,
+    0x01,0x00, 0x04,0x00,
+    0x00,0xe0, 0x38,0x00,
+    0x00,0x1f, 0xc0,0x00, /* CIRC 29x29 = 7.0 */
+
+      /* TYPE = CROSS */
+
+    0x82,
+    0x44,
+    0x28,
+    0x10,
+    0x28,
+    0x44,
+    0x82,/* CROSS 7x7 = 1.0 */
+
+    0x80,0x80,
+    0x41,0x00,
+    0x22,0x00,
+    0x14,0x00,
+    0x08,0x00,
+    0x14,0x00,
+    0x22,0x00,
+    0x41,0x00,
+    0x80,0x80,/* CROSS 9x9 = 1.5 */
+
+    0x80,0x20,
+    0x40,0x40,
+    0x20,0x80,
+    0x11,0x00,
+    0x0a,0x00,
+    0x04,0x00,
+    0x0a,0x00,
+    0x11,0x00,
+    0x20,0x80,
+    0x40,0x40,
+    0x80,0x20,/* CROSS 11x11 = 2.0 */
+
+    0x80,0x08,
+    0x40,0x10,
+    0x20,0x20,
+    0x10,0x40,
+    0x08,0x80,
+    0x05,0x00,
+    0x02,0x00,
+    0x05,0x00,
+    0x08,0x80,
+    0x10,0x40,
+    0x20,0x20,
+    0x40,0x10,
+    0x80,0x08,/* CROSS 13x13 = 2.5 */
+
+    0x80,0x02,
+    0x40,0x04,
+    0x20,0x08,
+    0x10,0x10,
+    0x08,0x20,
+    0x04,0x40,
+    0x02,0x80,
+    0x01,0x00,
+    0x02,0x80,
+    0x04,0x40,
+    0x08,0x20,
+    0x10,0x10,
+    0x20,0x08,
+    0x40,0x04,
+    0x80,0x02,/* CROSS 15x15 = 3.0 */
+
+    0x80,0x00, 0x80,
+    0x40,0x01, 0x00,
+    0x20,0x02, 0x00,
+    0x10,0x04, 0x00,
+    0x08,0x08, 0x00,
+    0x04,0x10, 0x00,
+    0x02,0x20, 0x00,
+    0x01,0x40, 0x00,
+    0x00,0x80, 0x00,
+    0x01,0x40, 0x00,
+    0x02,0x20, 0x00,
+    0x04,0x10, 0x00,
+    0x08,0x08, 0x00,
+    0x10,0x04, 0x00,
+    0x20,0x02, 0x00,
+    0x40,0x01, 0x00,
+    0x80,0x00, 0x80,/* CROSS 17x17 = 3.5 */
+
+    0x80,0x00, 0x20,
+    0x40,0x00, 0x40,
+    0x20,0x00, 0x80,
+    0x10,0x01, 0x00,
+    0x08,0x02, 0x00,
+    0x04,0x04, 0x00,
+    0x02,0x08, 0x00,
+    0x01,0x10, 0x00,
+    0x00,0xa0, 0x00,
+    0x00,0x40, 0x00,
+    0x00,0xa0, 0x00,
+    0x01,0x10, 0x00,
+    0x02,0x08, 0x00,
+    0x04,0x04, 0x00,
+    0x08,0x02, 0x00,
+    0x10,0x01, 0x00,
+    0x20,0x00, 0x80,
+    0x40,0x00, 0x40,
+    0x80,0x00, 0x20,/* CROSS 19x19 = 4.0 */
+
+    0x80,0x00, 0x08,
+    0x40,0x00, 0x10,
+    0x20,0x00, 0x20,
+    0x10,0x00, 0x40,
+    0x08,0x00, 0x80,
+    0x04,0x01, 0x00,
+    0x02,0x02, 0x00,
+    0x01,0x04, 0x00,
+    0x00,0x88, 0x00,
+    0x00,0x50, 0x00,
+    0x00,0x20, 0x00,
+    0x00,0x50, 0x00,
+    0x00,0x88, 0x00,
+    0x01,0x04, 0x00,
+    0x02,0x02, 0x00,
+    0x04,0x01, 0x00,
+    0x08,0x00, 0x80,
+    0x10,0x00, 0x40,
+    0x20,0x00, 0x20,
+    0x40,0x00, 0x10,
+    0x80,0x00, 0x08,/* CROSS 21x21 = 4.5 */
+
+    0x80,0x00, 0x02,
+    0x40,0x00, 0x04,
+    0x20,0x00, 0x08,
+    0x10,0x00, 0x10,
+    0x08,0x00, 0x20,
+    0x04,0x00, 0x40,
+    0x02,0x00, 0x80,
+    0x01,0x01, 0x00,
+    0x00,0x82, 0x00,
+    0x00,0x44, 0x00,
+    0x00,0x28, 0x00,
+    0x00,0x10, 0x00,
+    0x00,0x28, 0x00,
+    0x00,0x44, 0x00,
+    0x00,0x82, 0x00,
+    0x01,0x01, 0x00,
+    0x02,0x00, 0x80,
+    0x04,0x00, 0x40,
+    0x08,0x00, 0x20,
+    0x10,0x00, 0x10,
+    0x20,0x00, 0x08,
+    0x40,0x00, 0x04,
+    0x80,0x00, 0x02,/* CROSS 23x23 = 5.0 */
+
+    0x80,0x00, 0x00,0x80,
+    0x40,0x00, 0x01,0x00,
+    0x20,0x00, 0x02,0x00,
+    0x10,0x00, 0x04,0x00,
+    0x08,0x00, 0x08,0x00,
+    0x04,0x00, 0x10,0x00,
+    0x02,0x00, 0x20,0x00,
+    0x01,0x00, 0x40,0x00,
+    0x00,0x80, 0x80,0x00,
+    0x00,0x41, 0x00,0x00,
+    0x00,0x22, 0x00,0x00,
+    0x00,0x14, 0x00,0x00,
+    0x00,0x08, 0x00,0x00,
+    0x00,0x14, 0x00,0x00,
+    0x00,0x22, 0x00,0x00,
+    0x00,0x41, 0x00,0x00,
+    0x00,0x80, 0x80,0x00,
+    0x01,0x00, 0x40,0x00,
+    0x02,0x00, 0x20,0x00,
+    0x04,0x00, 0x10,0x00,
+    0x08,0x00, 0x08,0x00,
+    0x10,0x00, 0x04,0x00,
+    0x20,0x00, 0x02,0x00,
+    0x40,0x00, 0x01,0x00,
+    0x80,0x00, 0x00,0x80,/* CROSS 25x25 = 5.5 */
+
+    0x80,0x00, 0x00,0x20,
+    0x40,0x00, 0x00,0x40,
+    0x20,0x00, 0x00,0x80,
+    0x10,0x00, 0x01,0x00,
+    0x08,0x00, 0x02,0x00,
+    0x04,0x00, 0x04,0x00,
+    0x02,0x00, 0x08,0x00,
+    0x01,0x00, 0x10,0x00,
+    0x00,0x80, 0x20,0x00,
+    0x00,0x40, 0x40,0x00,
+    0x00,0x20, 0x80,0x00,
+    0x00,0x11, 0x00,0x00,
+    0x00,0x0a, 0x00,0x00,
+    0x00,0x04, 0x00,0x00,
+    0x00,0x0a, 0x00,0x00,
+    0x00,0x11, 0x00,0x00,
+    0x00,0x20, 0x80,0x00,
+    0x00,0x40, 0x40,0x00,
+    0x00,0x80, 0x20,0x00,
+    0x01,0x00, 0x10,0x00,
+    0x02,0x00, 0x08,0x00,
+    0x04,0x00, 0x04,0x00,
+    0x08,0x00, 0x02,0x00,
+    0x10,0x00, 0x01,0x00,
+    0x20,0x00, 0x00,0x80,
+    0x40,0x00, 0x00,0x40,
+    0x80,0x00, 0x00,0x20,/* CROSS 27x27 = 6.0 */
+
+    0x00,0x00, 0x00,0x00,
+    0x00,0x00, 0x00,0x00,
+    0x20,0x00, 0x00,0x04,
+    0x10,0x00, 0x00,0x08,
+    0x08,0x00, 0x00,0x10,
+    0x04,0x00, 0x00,0x20,
+    0x02,0x00, 0x00,0x40,
+    0x01,0x00, 0x00,0x80,
+    0x00,0x80, 0x01,0x00,
+    0x00,0x40, 0x02,0x00,
+    0x00,0x20, 0x04,0x00,
+    0x00,0x10, 0x08,0x00,
+    0x00,0x08, 0x10,0x00,
+    0x00,0x04, 0x20,0x00,
+    0x00,0x02, 0x40,0x00,
+    0x00,0x01, 0x80,0x00,
+    0x00,0x01, 0x80,0x00,
+    0x00,0x02, 0x40,0x00,
+    0x00,0x04, 0x20,0x00,
+    0x00,0x08, 0x10,0x00,
+    0x00,0x10, 0x08,0x00,
+    0x00,0x20, 0x04,0x00,
+    0x00,0x40, 0x02,0x00,
+    0x00,0x80, 0x01,0x00,
+    0x01,0x00, 0x00,0x80,
+    0x02,0x00, 0x00,0x40, 
+    0x04,0x00, 0x00,0x20,
+    0x08,0x00, 0x00,0x10,
+    0x10,0x00, 0x00,0x08,
+    0x20,0x00, 0x00,0x04,
+    0x00,0x00, 0x00,0x00,
+    0x00,0x00, 0x00,0x00,/* CROSS 32x32 = 6.5 */
+
+    0x00,0x00, 0x00,0x00,
+    0x40,0x00, 0x00,0x02,
+    0x20,0x00, 0x00,0x04,
+    0x10,0x00, 0x00,0x08,
+    0x08,0x00, 0x00,0x10,
+    0x04,0x00, 0x00,0x20,
+    0x02,0x00, 0x00,0x40,
+    0x01,0x00, 0x00,0x80,
+    0x00,0x80, 0x01,0x00,
+    0x00,0x40, 0x02,0x00,
+    0x00,0x20, 0x04,0x00,
+    0x00,0x10, 0x08,0x00,
+    0x00,0x08, 0x10,0x00,
+    0x00,0x04, 0x20,0x00,
+    0x00,0x02, 0x40,0x00,
+    0x00,0x01, 0x80,0x00,
+    0x00,0x01, 0x80,0x00,
+    0x00,0x02, 0x40,0x00,
+    0x00,0x04, 0x20,0x00,
+    0x00,0x08, 0x10,0x00,
+    0x00,0x10, 0x08,0x00,
+    0x00,0x20, 0x04,0x00,
+    0x00,0x40, 0x02,0x00, 
+    0x00,0x80, 0x01,0x00,
+    0x01,0x00, 0x00,0x80,
+    0x02,0x00, 0x00,0x40,
+    0x04,0x00, 0x00,0x20,
+    0x08,0x00, 0x00,0x10,
+    0x10,0x00, 0x00,0x08,
+    0x20,0x00, 0x00,0x04,
+    0x40,0x00, 0x00,0x02,
+    0x00,0x00, 0x00,0x00/* CROSS 32x32 = 7.0 */
+};
+
+/*----------------------------------------------------------------------*/
+
+//TsmInitAttributes
+void OpenGl_Display::InitAttributes ()
+{
+  // Return if already initialized
+  if (myLinestyleBase) return;
+
+  myLinestyleBase = glGenLists(5);
+
+  /* Line */
+
+  glNewList( (GLuint)myLinestyleBase+(GLuint)Aspect_TOL_DASH, GL_COMPILE );
+  glLineStipple(1,  DASH_LS );
+  glEndList();
+
+  glNewList( (GLuint)myLinestyleBase+(GLuint)Aspect_TOL_DOT, GL_COMPILE );
+  glLineStipple(1,  DOT_LS );
+  glEndList();
+
+  glNewList( (GLuint)myLinestyleBase+(GLuint)Aspect_TOL_DOTDASH, GL_COMPILE );
+  glLineStipple(1,  DASH_DOT_LS );
+  glEndList();
+
+  glNewList( (GLuint)myLinestyleBase+(GLuint)Aspect_TOL_USERDEFINED, GL_COMPILE );
+  glLineStipple(1,  DASH_DDOT_LS );
+  glEndList();
+
+  /* FSXXX
+  * GL_POLYGON_STIPPLE
+  * need 32x32 stipple patterns
+  */
+  const int nbi = sizeof(myInteriors)/(32*sizeof(unsigned int));
+  myPatternBase = glGenLists(TEL_HS_USER_DEF_START);
+  int i;
+  for( i = 1; i < TEL_HS_USER_DEF_START; i++ )
+  {
+    glNewList( (GLuint)myPatternBase + i, GL_COMPILE );
+       glPolygonStipple((const GLubyte *) (myInteriors[i<nbi? i : 0]));
+    glEndList();
+  }
+
+  glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
+
+  myMarkerBase = glGenLists (60);
+  int j;
+  for( i = 1; i < TEL_NB_OF_LISTS; i++ )
+    for( j = 0; j < TEL_NO_OF_SIZES; j++ )
+    {           
+      const Tfloat w = arrPMFontInfo[i][j].width;
+      const Tfloat h = arrPMFontInfo[i][j].height;
+      const Tint offset = arrPMFontInfo[i][j].offset;
+
+      glNewList( (const GLuint)(arrPMFontInfo[i][j].str[0] + myMarkerBase), GL_COMPILE );
+      glBitmap( (GLsizei)w, (GLsizei)h, (GLfloat)(0.5f * w), (GLfloat)(0.5f * h), 0.f, 0.f, (const GLubyte *) &myMarkerRaster[offset] );
+      glEndList();
+    }
+}
+
+/*----------------------------------------------------------------------*/
+
+#define TEL_PM_START_SIZE 1.F
+#define TEL_PM_END_SIZE   7.F
+
+//TelGetStringForPM
+const char * OpenGl_Display::GetStringForMarker (const Aspect_TypeOfMarker AType, const Tfloat AVal) const
+{
+  const int atype = (int)(( AType > Aspect_TOM_O_X )? Aspect_TOM_X : AType);
+
+  const float index = ( float )(TEL_NO_OF_SIZES-1) * (AVal - ( float )TEL_PM_START_SIZE ) / ( float )(TEL_PM_END_SIZE - TEL_PM_START_SIZE);
+  int id = (int)(index + 0.5F);
+  if (id < 0) id = 0;
+  else if (id >= TEL_NO_OF_SIZES) id = TEL_NO_OF_SIZES-1;
+
+  return arrPMFontInfo[atype][id].str;
+}
+
+/*----------------------------------------------------------------------*/
+
+void OpenGl_Display::SetBaseForMarker () const
+{
+  glListBase( (const GLuint) myMarkerBase );
+}
+
+/*----------------------------------------------------------------------*/
+
+void OpenGl_Display::SetTypeOfLine (const Aspect_TypeOfLine AType) const
+{
+  if (AType != Aspect_TOL_SOLID)
+  {
+    glCallList((GLuint)myLinestyleBase+(GLuint)AType);
+    glEnable( GL_LINE_STIPPLE );
+#ifdef HAVE_GL2PS
+    gl2psEnable( GL2PS_LINE_STIPPLE );
+#endif
+  }
+  else
+  {
+    glDisable( GL_LINE_STIPPLE );
+#ifdef HAVE_GL2PS
+    gl2psDisable( GL2PS_LINE_STIPPLE );
+#endif
+  }
+}
+
+/*----------------------------------------------------------------------*/
+
+void OpenGl_Display::SetTypeOfHatch (const int AType) const
+{
+  if (AType)
+  {
+    glCallList((GLuint)myPatternBase+(GLuint)AType);
+    glEnable( GL_POLYGON_STIPPLE );
+  }
+  else
+    glDisable( GL_POLYGON_STIPPLE );
+}
+
+/*----------------------------------------------------------------------*/
diff --git a/src/OpenGl/OpenGl_Element.hxx b/src/OpenGl/OpenGl_Element.hxx
new file mode 100644 (file)
index 0000000..e10510e
--- /dev/null
@@ -0,0 +1,23 @@
+// File:      OpenGl_Element.hxx
+// Created:   5 August 2011
+// Author:    Sergey ZERCHANINOV
+// Copyright: OPEN CASCADE 2011
+
+#ifndef OpenGl_Element_Header
+#define OpenGl_Element_Header
+
+#include <OpenGl_Workspace.hxx>
+
+class OpenGl_Element
+{
+ public:
+  OpenGl_Element () {}
+  virtual ~OpenGl_Element () {}
+
+  virtual void Render (const Handle(OpenGl_Workspace) &AWorkspace) const = 0;
+
+ public:
+  IMPLEMENT_MEMORY_OPERATORS
+};
+
+#endif //OpenGl_Element_Header
diff --git a/src/OpenGl/OpenGl_ExtFBO.hxx b/src/OpenGl/OpenGl_ExtFBO.hxx
new file mode 100644 (file)
index 0000000..eb6ae7b
--- /dev/null
@@ -0,0 +1,68 @@
+// File:      OpenGl_ExtVBO.hxx
+// Created:   26 January 2012
+// Author:    Kirill GAVRILOV
+// Copyright: OPEN CASCADE 2012
+
+#ifndef _OpenGl_ExtFBO_H__
+#define _OpenGl_ExtFBO_H__
+
+#if (defined(_WIN32) || defined(__WIN32__))
+  #include <windows.h>
+#endif
+#include <GL/gl.h>
+
+//! FBO is part of OpenGL since 2.0
+struct OpenGl_ExtFBO
+{
+  #ifndef GL_FRAMEBUFFER_EXT
+    #define GL_FRAMEBUFFER_EXT 0x8D40
+  #endif
+  #ifndef GL_COLOR_ATTACHMENT0_EXT
+    #define GL_COLOR_ATTACHMENT0_EXT 0x8CE0
+  #endif
+  #ifndef GL_FRAMEBUFFER_COMPLETE_EXT
+    #define GL_FRAMEBUFFER_COMPLETE_EXT 0x8CD5
+  #endif
+  #ifndef GL_RENDERBUFFER_EXT
+    #define GL_RENDERBUFFER_EXT 0x8D41
+  #endif
+  #ifndef GL_DEPTH_ATTACHMENT_EXT
+    #define GL_DEPTH_ATTACHMENT_EXT 0x8D00
+  #endif
+
+public:
+
+  typedef void (APIENTRY *glGenFramebuffersEXT_t) (GLsizei n, GLuint* ids);
+  typedef void (APIENTRY *glDeleteFramebuffersEXT_t) (GLsizei n, GLuint* ids);
+  typedef void (APIENTRY *glBindFramebufferEXT_t) (GLenum target, GLuint id);
+  typedef void (APIENTRY *glFramebufferTexture2DEXT_t) (GLenum target, GLenum attachmentPoint,
+                                                        GLenum textureTarget, GLuint textureId,
+                                                        GLint level);
+  typedef GLenum (APIENTRY *glCheckFramebufferStatusEXT_t) (GLenum target);
+  typedef void (APIENTRY *glGenRenderbuffersEXT_t) (GLsizei n, GLuint* ids);
+  typedef void (APIENTRY *glDeleteRenderbuffersEXT_t) (GLsizei n, GLuint* ids);
+  typedef void (APIENTRY *glBindRenderbufferEXT_t) (GLenum target, GLuint id);
+  typedef void (APIENTRY *glRenderbufferStorageEXT_t) (GLenum target, GLenum internalFormat,
+                                                       GLsizei width, GLsizei height);
+
+  typedef void (APIENTRY *glFramebufferRenderbufferEXT_t) (GLenum target,
+                                                           GLenum attachmentPoint,
+                                                           GLenum renderbufferTarget,
+                                                           GLuint renderbufferId);
+
+public:
+
+  glGenFramebuffersEXT_t         glGenFramebuffersEXT;
+  glDeleteFramebuffersEXT_t      glDeleteFramebuffersEXT;
+  glBindFramebufferEXT_t         glBindFramebufferEXT;
+  glFramebufferTexture2DEXT_t    glFramebufferTexture2DEXT;
+  glCheckFramebufferStatusEXT_t  glCheckFramebufferStatusEXT;
+  glGenRenderbuffersEXT_t        glGenRenderbuffersEXT;
+  glDeleteRenderbuffersEXT_t     glDeleteRenderbuffersEXT;
+  glBindRenderbufferEXT_t        glBindRenderbufferEXT;
+  glRenderbufferStorageEXT_t     glRenderbufferStorageEXT;
+  glFramebufferRenderbufferEXT_t glFramebufferRenderbufferEXT;
+
+};
+
+#endif // _OpenGl_ExtFBO_H__
diff --git a/src/OpenGl/OpenGl_Extension.cxx b/src/OpenGl/OpenGl_Extension.cxx
deleted file mode 100755 (executable)
index a1b7b28..0000000
+++ /dev/null
@@ -1,231 +0,0 @@
-/*
-* Fonction
-* ~~~~~~~~
-*   Gestion des extensions sous OpenGL
-*
-*
-* Attention:
-* ~~~~~~~~~~~
-*  Ce package a ete teste sur SGI, OSF, SUN,  HP et WNT.
-*
-* Remarques:
-* ~~~~~~~~~~~
-*  Le InitExtensionGLX permet d'initialiser le display. Ceci est necessaire
-*  pour travailler sur les extensions de GLX. On ne peut appeler QueryExtensionGLX
-*  si on n'a pas fait cette manip.
-*  Par contre QueryExtension gere les extensions a GL,  on n'a pas besoin du
-*  Display.
-*
-*  Pour l'instant on ne gere pas les extensions a GLU et a WGL.
-*
-* Historique des modifications
-* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-*   14-10-97: FMN ; creation
-*   23-10-97: FMN ; ajout gestion glx
-*   04-11-97: FMN ; Gestion des differentes versions GLX
-*   19-11-97: FMN ; Ajout GetCurrentDisplay
-*   04-12-97: FMN ; Ajout supportsOneDotOne
-*   22-07-98: FMN ; InitExtensionGLX n'est execute qu'une fois
-*   28-07-98: FMN ; Renomme theDisplay en mytheDisplay
-*/
-/*----------------------------------------------------------------------*/
-
-/*----------------------------------------------------------------------*/
-/*
-* Includes
-*/
-
-#include <stdio.h>
-#include <stdlib.h> 
-#include <string.h>
-
-#include <OpenGl_Extension.hxx>
-
-#define XDEBUG 
-
-/*----------------------------------------------------------------------*/
-/*
-* Types definis
-*/
-
-
-/*----------------------------------------------------------------------*/
-/*
-* Variables statiques
-*/
-
-static Display *mytheDisplay = NULL;
-static int  screen_num;
-static int  GLXmajor, GLXminor;
-static int  GLmajor, GLminor;
-
-static GLboolean flag_InitExtensionGLX = GL_FALSE;
-
-static GLboolean OneDotOne = GL_FALSE;
-static GLboolean initOneDotOne = GL_FALSE;
-
-/*----------------------------------------------------------------------*/
-/*
-* Fonctions publiques 
-*/
-
-/*----------------------------------------------------------------------*/
-extern GLboolean CheckExtension(char *extName, const char *extString)
-{
-  /*
-  ** Search for extName in the extensions string.  Use of strstr()
-  ** is not sufficient because extension names can be prefixes of
-  ** other extension names.  Could use strtok() but the constant
-  ** string returned by glGetString can be in read-only memory.
-  */
-  char *p = (char *)extString;
-  char *end;
-  int extNameLen;
-
-  extNameLen = strlen(extName);
-  end = p + strlen(p);
-
-  while (p < end) {
-    int n = strcspn(p, " ");
-    if ((extNameLen == n) && (strncmp(extName, p, n) == 0)) {
-      return GL_TRUE;
-    }
-    p += (n + 1);
-  }
-  return GL_FALSE;
-}
-
-extern GLboolean InitExtensionGLX(Display *display)
-{
-#ifndef WNT 
-
-  int dontcare; /* for returned arguments we don't care about */
-
-  if (display == NULL) return GL_FALSE;
-
-  if (!flag_InitExtensionGLX)
-  {       
-    /* does the server know about OpenGL & GLX? */
-    if(!XQueryExtension(display, "GLX", &dontcare, &dontcare, &dontcare)) {
-#ifdef DEBUG
-      fprintf(stderr,"This system doesn't appear to support OpenGL\n");
-#endif /* DEBUG */
-      return GL_FALSE;
-    }  
-
-    /* find the glx version */
-    if(glXQueryVersion(display, &GLXmajor, &GLXminor)) {
-#ifdef DEBUG
-      printf("GLX Version: %d.%d\n", GLXmajor, GLXminor);
-#endif /* DEBUG */
-    } else {
-#ifdef DEBUG
-      fprintf(stderr, "Error: glXQueryVersion() failed.\n");
-#endif /* DEBUG */
-      return GL_FALSE;
-    }
-
-    /* get screen number */
-    screen_num = DefaultScreen(display);
-
-    flag_InitExtensionGLX = GL_TRUE;
-    mytheDisplay = display;
-
-  } /* (!flag_InitExtensionGLX) */
-
-  return GL_TRUE;
-
-#else
-
-  return GL_FALSE;
-
-#endif /* WNT */
-}
-
-/*----------------------------------------------------------------------*/
-extern GLboolean QueryExtensionGLX(char *extName)
-{
-  GLboolean result = GL_FALSE;
-
-#ifdef GLX_VERSION_1_1
-  if (flag_InitExtensionGLX)
-  {
-    if ( GLXminor > 1 || GLXmajor > 1 ) /* GLX_VERSION_1_2 */
-    {
-      /* Certaines extensions sont par defaut dans la version 1.2 */
-      if (strcmp(extName,"GLX_EXT_import_context")) return GL_TRUE;
-      result = CheckExtension(extName, glXQueryExtensionsString(mytheDisplay, screen_num));
-    }
-    else if( GLXminor > 0 || GLXmajor > 1 ) /* GLX_VERSION_1_1 */
-    {
-      result = CheckExtension(extName, glXQueryExtensionsString(mytheDisplay, screen_num));
-    }
-  }
-#endif    
-#ifdef DEBUG
-  printf("QueryExtensionGLX: %s %d", extName, result);
-#endif 
-  return result;
-}
-
-/*----------------------------------------------------------------------*/
-extern Display *GetCurrentDisplay(void)
-{
-#ifdef DEBUG
-  printf("GetCurrentDisplay %x \n", mytheDisplay);
-#endif 
-  return mytheDisplay;  
-}
-
-/*----------------------------------------------------------------------*/
-extern GLboolean QueryExtension(char *extName)
-{
-  GLboolean result = GL_FALSE;
-
-  if (supportsOneDotOne()) /* GL_VERSION_1_1 ou more */
-  {
-    /* Certaines extensions sont par defaut dans la version 1.1 */
-    /* Certain extensions are the defaut in version 1.1 */
-    if ((strcmp(extName,"GL_EXT_vertex_array")) ||  
-      (strcmp(extName,"GL_EXT_polygon_offset")) ||  
-      (strcmp(extName,"GL_EXT_blend_logic_op")) ||  
-      (strcmp(extName,"GL_EXT_texture"))    ||
-      (strcmp(extName,"GL_EXT_copy_texture")) ||
-      (strcmp(extName,"GL_EXT_subtexture")) ||  
-      (strcmp(extName,"GL_EXT_texture_object"))) 
-      result =  GL_TRUE;  
-    else  
-      result = CheckExtension(extName, (char *)glGetString(GL_EXTENSIONS)); 
-  }
-  else  /* GL_VERSION_1_0 */
-  {
-    result = CheckExtension(extName, (char *)glGetString(GL_EXTENSIONS)); 
-  }
-
-#ifdef DEBUG
-  printf("QueryExtension: %s %d \n", extName, result);
-#endif 
-  return result;
-}
-/*----------------------------------------------------------------------*/
-
-extern GLboolean supportsOneDotOne(void)
-{
-  const GLubyte *version;
-
-  if (!initOneDotOne)
-  {
-    version = glGetString(GL_VERSION);
-    if(sscanf((const char *)version, "%d.%d", &GLmajor, &GLminor) == 2)
-    {
-      OneDotOne = (GLmajor>=1 && GLminor >=1);
-    }
-    initOneDotOne = GL_TRUE;
-  }
-#ifdef DEBUG
-  printf("GL Version: %d.%d\n", GLmajor, GLminor);
-#endif /* DEBUG */
-  return OneDotOne;
-}
-
-/*----------------------------------------------------------------------*/
diff --git a/src/OpenGl/OpenGl_Extension.hxx b/src/OpenGl/OpenGl_Extension.hxx
deleted file mode 100755 (executable)
index c12912a..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * Fonction
- * ~~~~~~~~
- *   Gestion des extensions sous OpenGL
- *
- *
- * Attention:
- * ~~~~~~~~~~~
- *  Ce package a ete teste sur SGI, OSF, SUN,  HP et WNT.
- *
- * Remarques:
- * ~~~~~~~~~~~
- *  Le InitExtensionGLX permet d'initialiser le display. Ceci est necessaire
- *  pour travailler sur les extensions de GLX. On ne peut appeler QueryExtensionGLX
- *  si on n'a pas fait cette manip.
- *  Par contre QueryExtension gere les extensions a GL,  on n'a pas besoin du
- *  Display.
- *
- *  Pour l'instant on ne gere pas les extensions a GLU et a WGL.
- *
- * Historique des modifications
- * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- *   14-10-97: FMN ; Creation
- *   23-10-97: FMN ; Ajout gestion glx
- *   19-11-97: FMN ; Ajout GetCurrentDisplay
- *   04-12-97: FMN ; Ajout supportsOneDotOne
- *   19-06-98: FMN ; Portage Optimizer (C++)
- */
-/*----------------------------------------------------------------------*/
-
-#ifndef _OPENGL_EXTENSION_H__
-#define _OPENGL_EXTENSION_H__
-
-/*----------------------------------------------------------------------*/
-/*
- * Includes
- */
-
-#if defined(WNT) && !defined(HAVE_NO_DLL)
-# ifdef __OpenGl_DLL
-#  define EXPORT __declspec(dllexport)
-# else
-#  define EXPORT
-# endif  /* DLL */
-# ifdef STRICT
-#  undef STRICT
-# endif
-# define STRICT
-# include <windows.h>
-#else
-# define EXPORT
-#endif  /* WNT */
-
-#include <GL/gl.h>
-#include <GL/glu.h>
-
-#ifdef WNT
-# include <windows.h>
-# ifndef Display
-# define Display char
-# endif  /* Display */
-#else
-# include <GL/glx.h>
-#endif /* WNT */
-
-
-#ifdef GL_VERSION_1_1
-#define GL_EXT_vertex_array                 1
-#define GL_EXT_polygon_offset               1
-#define GL_EXT_blend_logic_op               1
-#define GL_EXT_texture                      1
-#define GL_EXT_copy_texture                 1
-#define GL_EXT_subtexture                   1
-#define GL_EXT_texture_object               1
-#endif /* GL_VERSION_1_1 */
-
-
-#ifndef  GLU_VERSION_1_2
-#define GLUtesselator    GLUtriangulatorObj
-#define GLU_TESS_BEGIN   100100
-#define GLU_TESS_VERTEX  100101
-#define GLU_TESS_END     100102
-#define GLU_TESS_ERROR   100103
-#define GLU_TESS_COMBINE 100105
-#endif
-
-#define INVALID_EXT_FUNCTION_PTR 0xffffffff
-/* 
- * Contournement temporaire glPolygoneOffsetEXT 
- * La syntaxe change entre OpenGL 1.0 et OpenGL 1.1
- */
-#if defined (__sun) || defined (__osf__) || defined (__hp)
-#define glPolygonOffsetEXT(a, b) glPolygonOffset(a, b)
-#endif
-#if defined (__sun) 
-#define GL_POLYGON_OFFSET_EXT   GL_POLYGON_OFFSET_FILL            
-#endif
-
-#ifdef WNT
-#define glPolygonOffsetEXT(a, b) glPolygonOffset(a, b)
-#define GL_POLYGON_OFFSET_EXT   GL_POLYGON_OFFSET_FILL            
-#endif /* WNT */
-
-#if defined (__sun) || defined (__osf__) || defined (__hp) || defined (__sgi) 
-#else 
-typedef void (APIENTRY * PFNGLBLENDEQUATIONEXTPROC) (GLenum mode);
-#endif
-
-/*----------------------------------------------------------------------*/
-/*
- * Prototypes
- */
-
-/*
- * Points d'entree Public du module 
- */
-
-
-extern GLboolean InitExtensionGLX(Display *display);
-extern GLboolean QueryExtensionGLX(char *extName);
-
-extern GLboolean QueryExtension(char *extName);
-
-extern Display *GetCurrentDisplay(void);
-
-extern GLboolean supportsOneDotOne(void);
-
-extern GLboolean CheckExtension(char *extName, const char *extString);
-
-
-/* Methods defined in OpenGl_GraphicDriver.cxx */
-
-EXPORT GLboolean OpenGl_QueryExtensionGLX (const char *extName);
-
-EXPORT GLboolean OpenGl_QueryExtension    (const char *extName);
-
-/*----------------------------------------------------------------------*/
-
-#endif /* _OPENGL_EXTENSION_H__ */
index fba0cb7..11437c8 100644 (file)
@@ -1,15 +1,13 @@
+// File:      OpenGl_FrameBuffer.cxx
+// Author:    Kirill GAVRILOV
+// Copyright: OPEN CASCADE 2011
+
 #include <OpenGl_FrameBuffer.hxx>
 
 #ifdef DEB
   #include <iostream>
 #endif
 
-#ifndef WNT
-  #define glGetProcAddress( x )  glXGetProcAddress( (const GLubyte*) x )
-#else
-  #define glGetProcAddress( x )  wglGetProcAddress( x )
-#endif
-
 static inline bool isOddNumber (const GLsizei theNumber)
 {
   return theNumber & 0x01;
@@ -39,43 +37,6 @@ static inline GLsizei getPowerOfTwo (const GLsizei theNumber,
   return theThreshold;
 }
 
-Standard_Boolean OpenGl_FrameBuffer::AreFBOFunctionsValid()
-{
-  return glGenFramebuffersEXT != NULL
-      && glDeleteFramebuffersEXT != NULL
-      && glBindFramebufferEXT != NULL
-      && glFramebufferTexture2DEXT != NULL
-      && glCheckFramebufferStatusEXT != NULL
-      && glGenRenderbuffersEXT != NULL
-      && glBindRenderbufferEXT != NULL
-      && glDeleteRenderbuffersEXT != NULL
-      && glRenderbufferStorageEXT != NULL
-      && glFramebufferRenderbufferEXT != NULL;
-}
-
-Standard_Boolean OpenGl_FrameBuffer::InitFBOFunctions()
-{
-  if (AreFBOFunctionsValid())
-  {
-    return Standard_True;
-  }
-  if (CheckExtension ((char *)"GL_EXT_framebuffer_object", (const char *)glGetString (GL_EXTENSIONS)))
-  {
-    glGenFramebuffersEXT         = (glGenFramebuffersEXT_t)        glGetProcAddress ("glGenFramebuffersEXT");
-    glDeleteFramebuffersEXT      = (glDeleteFramebuffersEXT_t)     glGetProcAddress ("glDeleteFramebuffersEXT");
-    glBindFramebufferEXT         = (glBindFramebufferEXT_t)        glGetProcAddress ("glBindFramebufferEXT");
-    glFramebufferTexture2DEXT    = (glFramebufferTexture2DEXT_t)   glGetProcAddress ("glFramebufferTexture2DEXT");
-    glCheckFramebufferStatusEXT  = (glCheckFramebufferStatusEXT_t) glGetProcAddress ("glCheckFramebufferStatusEXT");
-    glGenRenderbuffersEXT        = (glGenRenderbuffersEXT_t)       glGetProcAddress ("glGenRenderbuffersEXT");
-    glDeleteRenderbuffersEXT     = (glDeleteRenderbuffersEXT_t)    glGetProcAddress ("glDeleteRenderbuffersEXT");
-    glBindRenderbufferEXT        = (glBindRenderbufferEXT_t)       glGetProcAddress ("glBindRenderbufferEXT");
-    glRenderbufferStorageEXT     = (glRenderbufferStorageEXT_t)    glGetProcAddress ("glRenderbufferStorageEXT");
-    glFramebufferRenderbufferEXT = (glFramebufferRenderbufferEXT_t)glGetProcAddress ("glFramebufferRenderbufferEXT");
-    return AreFBOFunctionsValid();
-  }
-  return Standard_False;
-}
-
 OpenGl_FrameBuffer::OpenGl_FrameBuffer (GLint theTextureFormat)
 : mySizeX (0),
   mySizeY (0),
@@ -84,26 +45,17 @@ OpenGl_FrameBuffer::OpenGl_FrameBuffer (GLint theTextureFormat)
   myTextFormat (theTextureFormat),
   myGlTextureId (NO_TEXTURE),
   myGlFBufferId (NO_FRAMEBUFFER),
-  myGlDepthRBId (NO_RENDERBUFFER),
-  glGenFramebuffersEXT (NULL),
-  glDeleteFramebuffersEXT (NULL),
-  glBindFramebufferEXT (NULL),
-  glFramebufferTexture2DEXT (NULL),
-  glCheckFramebufferStatusEXT (NULL),
-  glGenRenderbuffersEXT (NULL),
-  glDeleteRenderbuffersEXT (NULL),
-  glBindRenderbufferEXT (NULL),
-  glRenderbufferStorageEXT (NULL),
-  glFramebufferRenderbufferEXT (NULL)
+  myGlDepthRBId (NO_RENDERBUFFER)
 {
   //
 }
 
-Standard_Boolean OpenGl_FrameBuffer::Init (GLsizei theViewportSizeX,
+Standard_Boolean OpenGl_FrameBuffer::Init (const Handle(OpenGl_Context)& theGlContext,
+                                           GLsizei theViewportSizeX,
                                            GLsizei theViewportSizeY,
                                            GLboolean toForcePowerOfTwo)
 {
-  if (!InitFBOFunctions())
+  if (theGlContext->extFBO == NULL)
   {
   #ifdef DEB
     std::cerr << "OpenGl_FrameBuffer, FBO extension not supported!\n";
@@ -112,7 +64,7 @@ Standard_Boolean OpenGl_FrameBuffer::Init (GLsizei theViewportSizeX,
   }
 
   // clean up previous state
-  Release();
+  Release (theGlContext);
 
   // upscale width/height if numbers are odd
   if (toForcePowerOfTwo)
@@ -133,41 +85,41 @@ Standard_Boolean OpenGl_FrameBuffer::Init (GLsizei theViewportSizeX,
   myVPSizeY = theViewportSizeY;
 
   // Create the texture (will be used as color buffer)
-  if (!InitTrashTexture())
+  if (!InitTrashTexture (theGlContext))
   {
     if (!isPowerOfTwo (mySizeX) || !isPowerOfTwo (mySizeY))
     {
-      return Init (theViewportSizeX, theViewportSizeY, GL_TRUE);
+      return Init (theGlContext, theViewportSizeX, theViewportSizeY, GL_TRUE);
     }
-    Release();
+    Release (theGlContext);
     return Standard_False;
   }
 
   // Create RenderBuffer (will be used as depth buffer)
-  glGenRenderbuffersEXT (1, &myGlDepthRBId);
-  glBindRenderbufferEXT (GL_RENDERBUFFER_EXT, myGlDepthRBId);
-  glRenderbufferStorageEXT (GL_RENDERBUFFER_EXT, GL_DEPTH_COMPONENT, mySizeX, mySizeY);
+  theGlContext->extFBO->glGenRenderbuffersEXT (1, &myGlDepthRBId);
+  theGlContext->extFBO->glBindRenderbufferEXT (GL_RENDERBUFFER_EXT, myGlDepthRBId);
+  theGlContext->extFBO->glRenderbufferStorageEXT (GL_RENDERBUFFER_EXT, GL_DEPTH_COMPONENT, mySizeX, mySizeY);
 
   // Build FBO and setup it as texture
-  glGenFramebuffersEXT (1, &myGlFBufferId);
-  glBindFramebufferEXT (GL_FRAMEBUFFER_EXT, myGlFBufferId);
+  theGlContext->extFBO->glGenFramebuffersEXT (1, &myGlFBufferId);
+  theGlContext->extFBO->glBindFramebufferEXT (GL_FRAMEBUFFER_EXT, myGlFBufferId);
   glEnable (GL_TEXTURE_2D);
   glBindTexture (GL_TEXTURE_2D, myGlTextureId);
-  glFramebufferTexture2DEXT (GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, myGlTextureId, 0);
-  glFramebufferRenderbufferEXT (GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, GL_RENDERBUFFER_EXT, myGlFBufferId);
-  if (glCheckFramebufferStatusEXT (GL_FRAMEBUFFER_EXT) != GL_FRAMEBUFFER_COMPLETE_EXT)
+  theGlContext->extFBO->glFramebufferTexture2DEXT (GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, myGlTextureId, 0);
+  theGlContext->extFBO->glFramebufferRenderbufferEXT (GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, GL_RENDERBUFFER_EXT, myGlFBufferId);
+  if (theGlContext->extFBO->glCheckFramebufferStatusEXT (GL_FRAMEBUFFER_EXT) != GL_FRAMEBUFFER_COMPLETE_EXT)
   {
     if (!isPowerOfTwo (mySizeX) || !isPowerOfTwo (mySizeY))
     {
-      return Init (theViewportSizeX, theViewportSizeY, GL_TRUE);
+      return Init (theGlContext, theViewportSizeX, theViewportSizeY, GL_TRUE);
     }
-    Release();
+    Release (theGlContext);
     return Standard_False;
   }
 
-  UnbindBuffer();
+  UnbindBuffer (theGlContext);
   UnbindTexture();
-  glBindRenderbufferEXT (GL_RENDERBUFFER_EXT, NO_RENDERBUFFER);
+  theGlContext->extFBO->glBindRenderbufferEXT (GL_RENDERBUFFER_EXT, NO_RENDERBUFFER);
 
   #ifdef DEB
     std::cerr << "OpenGl_FrameBuffer, created FBO " << mySizeX << "x" << mySizeY
@@ -176,12 +128,19 @@ Standard_Boolean OpenGl_FrameBuffer::Init (GLsizei theViewportSizeX,
   return Standard_True;
 }
 
-void OpenGl_FrameBuffer::Release()
+void OpenGl_FrameBuffer::Release (const Handle(OpenGl_Context)& theGlContext)
 {
   if (IsValidDepthBuffer())
   {
-    glDeleteRenderbuffersEXT (1, &myGlDepthRBId);
-    myGlDepthRBId = NO_RENDERBUFFER;
+    if (!theGlContext.IsNull() && theGlContext->extFBO != NULL)
+    {
+      theGlContext->extFBO->glDeleteRenderbuffersEXT (1, &myGlDepthRBId);
+      myGlDepthRBId = NO_RENDERBUFFER;
+    }
+    else
+    {
+      std::cerr << "OpenGl_FrameBuffer::Release() called with invalid OpenGl_Context!\n";
+    }
   }
   if (IsValidTexture())
   {
@@ -191,8 +150,15 @@ void OpenGl_FrameBuffer::Release()
   mySizeX = mySizeY = myVPSizeX = myVPSizeY = 0;
   if (IsValidFrameBuffer())
   {
-    glDeleteFramebuffersEXT (1, &myGlFBufferId);
-    myGlFBufferId = NO_FRAMEBUFFER;
+    if (!theGlContext.IsNull() && theGlContext->extFBO != NULL)
+    {
+      theGlContext->extFBO->glDeleteFramebuffersEXT (1, &myGlFBufferId);
+      myGlFBufferId = NO_FRAMEBUFFER;
+    }
+    else
+    {
+      std::cerr << "OpenGl_FrameBuffer::Release() called with invalid OpenGl_Context!\n";
+    }
   }
 }
 
@@ -210,7 +176,7 @@ Standard_Boolean OpenGl_FrameBuffer::IsProxySuccess() const
   return aTestParamX != 0 && aTestParamY != 0;
 }
 
-Standard_Boolean OpenGl_FrameBuffer::InitTrashTexture()
+Standard_Boolean OpenGl_FrameBuffer::InitTrashTexture (const Handle(OpenGl_Context)& theGlContext)
 {
   // Check texture size is fit dimension maximum
   GLint aMaxTexDim = 2048;
@@ -234,7 +200,7 @@ Standard_Boolean OpenGl_FrameBuffer::InitTrashTexture()
 
   if (!IsProxySuccess())
   {
-    Release();
+    Release (theGlContext);
     return Standard_False;
   }
 
index 153d690..156b7a5 100644 (file)
@@ -1,37 +1,15 @@
+// File:      OpenGl_FrameBuffer.hxx
+// Author:    Kirill GAVRILOV
+// Copyright: OPEN CASCADE 2011
+
 #ifndef OPENGL_FRAME_BUFFER_H
 #define OPENGL_FRAME_BUFFER_H
 
-#include <OpenGl_Extension.hxx>
+#include <OpenGl_Context.hxx>
 
 #include <Standard_Boolean.hxx>
 #include <InterfaceGraphic.hxx>
 
-#ifndef GL_FRAMEBUFFER_EXT
-  #define GL_FRAMEBUFFER_EXT 0x8D40
-#endif
-
-#ifndef GL_COLOR_ATTACHMENT0_EXT
-  #define GL_COLOR_ATTACHMENT0_EXT 0x8CE0
-#endif
-
-#ifndef GL_FRAMEBUFFER_COMPLETE_EXT
-  #define GL_FRAMEBUFFER_COMPLETE_EXT 0x8CD5
-#endif
-
-#ifndef GL_RENDERBUFFER_EXT
-  #define GL_RENDERBUFFER_EXT 0x8D41
-#endif
-
-#ifndef GL_DEPTH_ATTACHMENT_EXT
-  #define GL_DEPTH_ATTACHMENT_EXT 0x8D00
-#endif
-
-#ifdef WNT
-  #define GL_API_ENTRY APIENTRY
-#else
-  #define GL_API_ENTRY
-#endif
-
 class OpenGl_FrameBuffer
 {
 
@@ -44,31 +22,11 @@ public:
 
 public:
 
-  typedef void (GL_API_ENTRY *glGenFramebuffersEXT_t) (GLsizei n, GLuint* ids);
-  typedef void (GL_API_ENTRY *glDeleteFramebuffersEXT_t) (GLsizei n, GLuint* ids);
-  typedef void (GL_API_ENTRY *glBindFramebufferEXT_t) (GLenum target, GLuint id);
-  typedef void (GL_API_ENTRY *glFramebufferTexture2DEXT_t) (GLenum target, GLenum attachmentPoint,
-                                                            GLenum textureTarget, GLuint textureId,
-                                                            GLint level);
-  typedef GLenum (GL_API_ENTRY *glCheckFramebufferStatusEXT_t) (GLenum target);
-  typedef void (GL_API_ENTRY *glGenRenderbuffersEXT_t) (GLsizei n, GLuint* ids);
-  typedef void (GL_API_ENTRY *glDeleteRenderbuffersEXT_t) (GLsizei n, GLuint* ids);
-  typedef void (GL_API_ENTRY *glBindRenderbufferEXT_t) (GLenum target, GLuint id);
-  typedef void (GL_API_ENTRY *glRenderbufferStorageEXT_t) (GLenum target, GLenum internalFormat,
-                                                           GLsizei width, GLsizei height);
-
-  typedef void (GL_API_ENTRY *glFramebufferRenderbufferEXT_t) (GLenum target,
-                                                               GLenum attachmentPoint,
-                                                               GLenum renderbufferTarget,
-                                                               GLuint renderbufferId);
-
-public:
-
   OpenGl_FrameBuffer (GLint theTextureFormat = GL_RGBA8);
 
   virtual ~OpenGl_FrameBuffer()
   {
-    Release();
+    Release (Handle(OpenGl_Context)());
   }
 
   //! Texture width.
@@ -109,12 +67,13 @@ public:
   //!    current implementation will try to generate compatible FBO;
   //! 2) FBO rendering will be done in software mode (ForceWare 'hack');
   //! 3) FBO rendering will be incorrect (some obsolete Catalyst drivers).
-  Standard_Boolean Init (GLsizei theViewportSizeX,
+  Standard_Boolean Init (const Handle(OpenGl_Context)& theGlContext,
+                         GLsizei theViewportSizeX,
                          GLsizei theViewportSizeY,
                          GLboolean toForcePowerOfTwo = GL_FALSE);
 
   //! Release GL objects
-  void Release();
+  void Release (const Handle(OpenGl_Context)& theGlContext);
 
   //! Setup viewport to render into FBO
   void SetupViewport()
@@ -131,15 +90,15 @@ public:
   }
 
   //! Bind frame buffer (to render into the texture).
-  void BindBuffer()
+  void BindBuffer (const Handle(OpenGl_Context)& theGlContext)
   {
-    glBindFramebufferEXT (GL_FRAMEBUFFER_EXT, myGlFBufferId);
+    theGlContext->extFBO->glBindFramebufferEXT (GL_FRAMEBUFFER_EXT, myGlFBufferId);
   }
 
   //! Unbind frame buffer.
-  void UnbindBuffer()
+  void UnbindBuffer (const Handle(OpenGl_Context)& theGlContext)
   {
-    glBindFramebufferEXT (GL_FRAMEBUFFER_EXT, NO_FRAMEBUFFER);
+    theGlContext->extFBO->glBindFramebufferEXT (GL_FRAMEBUFFER_EXT, NO_FRAMEBUFFER);
   }
 
   //! Bind the texture.
@@ -162,7 +121,7 @@ private:
   Standard_Boolean IsProxySuccess() const;
 
   //! Generate texture with undefined data
-  Standard_Boolean InitTrashTexture();
+  Standard_Boolean InitTrashTexture (const Handle(OpenGl_Context)& theGlContext);
 
   Standard_Boolean IsValidTexture() const
   {
@@ -179,9 +138,6 @@ private:
     return myGlTextureId != NO_RENDERBUFFER;
   }
 
-  Standard_Boolean AreFBOFunctionsValid();
-  Standard_Boolean InitFBOFunctions();
-
 private:
 
   GLsizei      mySizeX; // texture width
@@ -193,18 +149,6 @@ private:
   GLuint myGlFBufferId; // FBO object ID
   GLuint myGlDepthRBId; // RenderBuffer object for depth ID
 
-  // functions
-  glGenFramebuffersEXT_t glGenFramebuffersEXT;
-  glDeleteFramebuffersEXT_t glDeleteFramebuffersEXT;
-  glBindFramebufferEXT_t glBindFramebufferEXT;
-  glFramebufferTexture2DEXT_t glFramebufferTexture2DEXT;
-  glCheckFramebufferStatusEXT_t glCheckFramebufferStatusEXT;
-  glGenRenderbuffersEXT_t glGenRenderbuffersEXT;
-  glDeleteRenderbuffersEXT_t glDeleteRenderbuffersEXT;
-  glBindRenderbufferEXT_t glBindRenderbufferEXT;
-  glRenderbufferStorageEXT_t glRenderbufferStorageEXT;
-  glFramebufferRenderbufferEXT_t glFramebufferRenderbufferEXT;
-
 };
 
 #endif //OPENGL_FRAME_BUFFER_H
similarity index 62%
rename from src/OpenGl/OpenGl_graduatedtrihedron.cxx
rename to src/OpenGl/OpenGl_GraduatedTrihedron.cxx
index 64f6533..2f8c8bc 100644 (file)
@@ -1,10 +1,9 @@
-// File:      OpenGl_graduatedtrihedron.cxx
-// Created:   6 March 2011
+// File:      OpenGl_GraduatedTrihedron.cxx
+// Created:   20 September 2011
 // Author:    Sergey ZERCHANINOV
-// Copyright: OPEN CASCADE SA 2011
+// Copyright: OPEN CASCADE 2011
 
 #include <OpenGl_tgl_all.hxx>
-#include <OpenGl_graduatedtrihedron.hxx>
 
 #include <stddef.h>
 #include <stdio.h>
 #include <InterfaceGraphic_Aspect.hxx>
 #include <InterfaceGraphic_Visual3d.hxx>
 
-#include <OpenGl_tgl_funcs.hxx>
-#include <OpenGl_tgl_subrs.hxx>
-#include <OpenGl_TextRender.hxx>
-
 #ifdef HAVE_CONFIG_H
 #include <config.h>
 #endif
 #include <string.h>
 #endif
 
-struct TEL_GRADUATEDTRIHEDRON_DATA
-{
-  int WsId;
-  wchar_t *xname, *yname, *zname;
-  unsigned char xdrawname, ydrawname, zdrawname;
-  unsigned char xdrawvalues, ydrawvalues, zdrawvalues;
-  unsigned char drawgrid;
-  unsigned char drawaxes;
-  unsigned int nbx, nby, nbz;
-  int xoffset, yoffset, zoffset;
-  int xaxisoffset, yaxisoffset, zaxisoffset;
-  unsigned char xdrawtickmarks, ydrawtickmarks, zdrawtickmarks;
-  unsigned int xtickmarklength, ytickmarklength, ztickmarklength;
-  float gridcolor[3];
-  float xnamecolor[3];
-  float ynamecolor[3];
-  float znamecolor[3];
-  float xcolor[3];
-  float ycolor[3];
-  float zcolor[3];
-  char* fontOfNames;
-  OSD_FontAspect styleOfNames;
-  int sizeOfNames;
-  char* fontOfValues;
-  OSD_FontAspect styleOfValues;
-  int sizeOfValues;
-  minMaxValuesCallback cbCubicAxes;
-  void* ptrVisual3dView;
-  IMPLEMENT_MEMORY_OPERATORS
-};
-typedef TEL_GRADUATEDTRIHEDRON_DATA* tel_graduatedtrihedron_data;
-
-/* Graduated trihedron data */
-static int nbWsIds = 0; /* Number of the views (size of the arrays below */
-static tel_graduatedtrihedron_data* graduatedTrihedronData = 0; /* The array contains graduated trihedron data of all views */
-
-/* Bounding box */
-float xmin = 0.0f, ymin = 0.0f, zmin = 0.0f, xmax = 100.0f, ymax = 100.0f, zmax = 100.0f;
+#include <OpenGl_Workspace.hxx>
+#include <OpenGl_View.hxx>
+#include <OpenGl_GraduatedTrihedron.hxx>
+#include <OpenGl_AspectLine.hxx>
 
-static void copyData(const Graphic3d_CGraduatedTrihedron *fromData, TEL_GRADUATEDTRIHEDRON_DATA* toData)
-{
-  int len;
+IMPLEMENT_STANDARD_HANDLE(OpenGl_GraduatedTrihedron,MMgt_TShared)
+IMPLEMENT_STANDARD_RTTIEXT(OpenGl_GraduatedTrihedron,MMgt_TShared)
 
-  /* Names of axes */
-  /* X-name */
-  len = fromData->xname.Length();
-  if (len)
-  {
-    Standard_ExtString iname = fromData->xname.ToExtString();
-    toData->xname = new wchar_t[len+1];
-    len = 0; while (toData->xname[len] = (wchar_t)(iname[len])) len++;
-  }
-  else
-    toData->xname = NULL;
-  /* Y-name */
-  len = fromData->yname.Length();
-  if (len)
-  {
-    Standard_ExtString iname = fromData->yname.ToExtString();
-    toData->yname = new wchar_t[len+1];
-    len = 0; while (toData->yname[len] = (wchar_t)(iname[len])) len++;
-  }
-  else
-    toData->yname = NULL;
-  /* Z-name */
-  len = fromData->zname.Length();
-  if (len)
-  {
-    Standard_ExtString iname = fromData->zname.ToExtString();
-    toData->zname = new wchar_t[len+1];
-    len = 0; while (toData->zname[len] = (wchar_t)(iname[len])) len++;
-  }
-  else
-    toData->zname = NULL;
-  /* Draw names */
-  toData->xdrawname = fromData->xdrawname;
-  toData->ydrawname = fromData->ydrawname; 
-  toData->zdrawname = fromData->zdrawname;
-  /* Draw values */
-  toData->xdrawvalues = fromData->xdrawvalues; 
-  toData->ydrawvalues = fromData->ydrawvalues; 
-  toData->zdrawvalues = fromData->zdrawvalues;
-  /* Draw grid */
-  toData->drawgrid = fromData->drawgrid;
-  /* Draw axes */
-  toData->drawaxes = fromData->drawaxes;
-  /* Number of splits along axes */
-  toData->nbx = fromData->nbx; 
-  toData->nby = fromData->nby; 
-  toData->nbz = fromData->nbz;
-  /* Offset for drawing values */
-  toData->xoffset = fromData->xoffset; 
-  toData->yoffset = fromData->yoffset; 
-  toData->zoffset = fromData->zoffset;
-  /* Offset for drawing names of axes */
-  toData->xaxisoffset = fromData->xaxisoffset;
-  toData->yaxisoffset = fromData->yaxisoffset; 
-  toData->zaxisoffset = fromData->zaxisoffset;
-  /* Draw tickmarks */
-  toData->xdrawtickmarks = fromData->xdrawtickmarks; 
-  toData->ydrawtickmarks = fromData->ydrawtickmarks; 
-  toData->zdrawtickmarks = fromData->zdrawtickmarks;
-  /* Length of tickmarks */
-  toData->xtickmarklength = fromData->xtickmarklength; 
-  toData->ytickmarklength = fromData->ytickmarklength; 
-  toData->ztickmarklength = fromData->ztickmarklength;
-  /* Grid color */
-  toData->gridcolor[0] = (float) fromData->gridcolor.Red();
-  toData->gridcolor[1] = (float) fromData->gridcolor.Green();
-  toData->gridcolor[2] = (float) fromData->gridcolor.Blue();
-  /* X name color */
-  toData->xnamecolor[0] = (float) fromData->xnamecolor.Red();
-  toData->xnamecolor[1] = (float) fromData->xnamecolor.Green();
-  toData->xnamecolor[2] = (float) fromData->xnamecolor.Blue();
-  /* Y name color */
-  toData->ynamecolor[0] = (float) fromData->ynamecolor.Red();
-  toData->ynamecolor[1] = (float) fromData->ynamecolor.Green();
-  toData->ynamecolor[2] = (float) fromData->ynamecolor.Blue();
-  /* Z name color */
-  toData->znamecolor[0] = (float) fromData->znamecolor.Red();
-  toData->znamecolor[1] = (float) fromData->znamecolor.Green();
-  toData->znamecolor[2] = (float) fromData->znamecolor.Blue();
-  /* X color of axis and values */
-  toData->xcolor[0] = (float) fromData->xcolor.Red();
-  toData->xcolor[1] = (float) fromData->xcolor.Green();
-  toData->xcolor[2] = (float) fromData->xcolor.Blue();
-  /* Y color of axis and values */
-  toData->ycolor[0] = (float) fromData->ycolor.Red();
-  toData->ycolor[1] = (float) fromData->ycolor.Green();
-  toData->ycolor[2] = (float) fromData->ycolor.Blue();
-  /* Z color of axis and values */
-  toData->zcolor[0] = (float) fromData->zcolor.Red();
-  toData->zcolor[1] = (float) fromData->zcolor.Green();
-  toData->zcolor[2] = (float) fromData->zcolor.Blue();
-  /* Font name of names of axes: Courier, Arial, ... */
-  len = fromData->fontOfNames.Length();
-  toData->fontOfNames = new char[len+1];
-  if (len)
-    strcpy(toData->fontOfNames, fromData->fontOfNames.ToCString());
-  else
-    toData->fontOfNames[0] = L'\0';
-  /* Style of names of axes: OSD_FA_Regular, OSD_FA_Bold, ... */
-  toData->styleOfNames = fromData->styleOfNames;
-  /* Size of names of axes: 8, 10, 12, 14, ... */
-  toData->sizeOfNames = fromData->sizeOfNames;
-  /* Font name of values: Courier, Arial, ... */
-  len = fromData->fontOfValues.Length();
-  toData->fontOfValues = new char[len+1];
-  if (len)
-    strcpy(toData->fontOfValues, fromData->fontOfValues.ToCString());
-  else
-    toData->fontOfValues[0] = L'\0';
-  /* Style of values: OSD_FA_Regular, OSD_FA_Bold, ... */
-  toData->styleOfValues = fromData->styleOfValues;
-  /* Size of values: 8, 10, 12, 14, ... */
-  toData->sizeOfValues = fromData->sizeOfValues;
-  /* Callback - updater of boundary box */
-  toData->cbCubicAxes = fromData->cbCubicAxes;
-  toData->ptrVisual3dView = fromData->ptrVisual3dView;
-}
-
-static void freeData()
-{
-  if (nbWsIds)
-  {
-    int i = 0;
-    tel_graduatedtrihedron_data gtdata;
-    for (i = 0; i < nbWsIds; i++)
-    {
-      gtdata = graduatedTrihedronData[i];
-
-      // Names of axes
-      if (gtdata->xname)
-        delete[] gtdata->xname;
-      if (gtdata->yname)
-        delete[] gtdata->yname;
-      if (gtdata->zname)
-        delete[] gtdata->zname;
-
-      // Fonts
-      if (gtdata->fontOfNames)
-        delete[] gtdata->fontOfNames;
-      if (gtdata->fontOfValues)
-        delete[] gtdata->fontOfValues;
-
-      delete gtdata;
-    }
-    delete graduatedTrihedronData;
-    graduatedTrihedronData = 0;
-    nbWsIds = 0;
-  }
-}
+const OpenGl_AspectLine myDefaultAspectLine;
 
-static int getGraduatedTrihedronDataIndex(int WsId)
-{
-  int i = 0;
-  for (; i < nbWsIds; i++)
-  {
-    if (graduatedTrihedronData[i]->WsId == WsId)
-      return i;
-  }
-  return -1;
-}
+/* Bounding box */
+float xmin = 0.0f, ymin = 0.0f, zmin = 0.0f, xmax = 100.0f, ymax = 100.0f, zmax = 100.0f;
 
 /* Normal of the view (not normalized!) */
 static float getNormal(float* normal) 
 {
-       GLint viewport[4];
-       GLdouble model_matrix[16], proj_matrix[16];
-       double x1, y1, z1, x2, y2, z2, x3, y3, z3;
-    double dx1, dy1, dz1, dx2, dy2, dz2, width;
-
-       glGetDoublev(GL_MODELVIEW_MATRIX,  model_matrix);
-       glGetDoublev(GL_PROJECTION_MATRIX, proj_matrix);
-       glGetIntegerv(GL_VIEWPORT, viewport);
-
-       gluUnProject(viewport[0], viewport[1], 0., model_matrix, proj_matrix, viewport, &x1, &y1, &z1);
-       gluUnProject(viewport[0] + viewport[2], viewport[1], 0., model_matrix, proj_matrix, viewport, &x2, &y2, &z2);
-       gluUnProject(viewport[0], viewport[1] + viewport[3], 0., model_matrix, proj_matrix, viewport, &x3, &y3, &z3);
-
-    /* Normal out of user is p1p3^p1p2 */
-    dx1 = x3 - x1; dy1 = y3 - y1; dz1 = z3 - z1;
-    dx2 = x2 - x1; dy2 = y2 - y1; dz2 = z2 - z1;
-    normal[0] = (float) (dy1 * dz2 - dz1 * dy2);
-       normal[1] = (float) (dz1 * dx2 - dx1 * dz2);
-       normal[2] = (float) (dx1 * dy2 - dy1 * dx2);
-
-    /* Distance corresponding to 1 pixel */
-    width = sqrt(dx2 * dx2 + dy2 * dy2 + dz2 * dz2);
-    return (float) width / (float) viewport[2];
+  GLint viewport[4];
+  GLdouble model_matrix[16], proj_matrix[16];
+
+  glGetDoublev(GL_MODELVIEW_MATRIX,  model_matrix);
+  glGetDoublev(GL_PROJECTION_MATRIX, proj_matrix);
+  glGetIntegerv(GL_VIEWPORT, viewport);
+
+  double x1, y1, z1, x2, y2, z2, x3, y3, z3;
+  gluUnProject(viewport[0], viewport[1], 0., model_matrix, proj_matrix, viewport, &x1, &y1, &z1);
+  gluUnProject(viewport[0] + viewport[2], viewport[1], 0., model_matrix, proj_matrix, viewport, &x2, &y2, &z2);
+  gluUnProject(viewport[0], viewport[1] + viewport[3], 0., model_matrix, proj_matrix, viewport, &x3, &y3, &z3);
+
+  /* Normal out of user is p1p3^p1p2 */
+  const double dx1 = x3 - x1;
+  const double dy1 = y3 - y1;
+  const double dz1 = z3 - z1;
+  const double dx2 = x2 - x1;
+  const double dy2 = y2 - y1;
+  const double dz2 = z2 - z1;
+  normal[0] = (float) (dy1 * dz2 - dz1 * dy2);
+  normal[1] = (float) (dz1 * dx2 - dx1 * dz2);
+  normal[2] = (float) (dx1 * dy2 - dy1 * dx2);
+
+  /* Distance corresponding to 1 pixel */
+  const float width = (float) sqrt(dx2 * dx2 + dy2 * dy2 + dz2 * dz2);
+  return width / (float) viewport[2];
 }
 
 static float getDistance2Corner(float* normal, float* center, float x, float y, float z)
@@ -314,11 +121,10 @@ static char getFarestCorner(float d000, float d100, float d010, float d001,
     return 8; /* d111 */
 }
 
-static void drawText(const wchar_t* text, char* font, OSD_FontAspect style, int size, float x, float y, float z)
+static void drawText(const Handle(OpenGl_Workspace) &AWorkspace, const wchar_t* text, const char* font, OSD_FontAspect style, int size, float x, float y, float z)
 {
-  OpenGl_TextRender* textRenderer = OpenGl_TextRender::instance();
-  const GLuint fontBase = textRenderer->FindFont((Tchar*) font, style, (float) size);
-  textRenderer->RenderText(text, fontBase, 0, x, y, z);
+  AWorkspace->FindFont(font, style, size);
+  AWorkspace->RenderText(text, 0, x, y, z);
 
 /* 4 OCC 6.3.1 and older:
     GLuint fontBase;
@@ -392,90 +198,138 @@ static void drawArrow(float x1, float y1, float z1,
     glEnd();
 }
 
-TStatus call_graduatedtrihedron_display(int WsId, const Graphic3d_CGraduatedTrihedron &data)
+OpenGl_GraduatedTrihedron::OpenGl_GraduatedTrihedron (const Graphic3d_CGraduatedTrihedron &AData)
+: myXName(NULL), myYName(NULL), myZName(NULL),
+  myDrawXName(AData.xdrawname), myDrawYName(AData.ydrawname), myDrawZName(AData.zdrawname),
+  myDrawXValues(AData.xdrawvalues), myDrawYValues(AData.ydrawvalues), myDrawZValues(AData.zdrawvalues),
+  myDrawGrid(AData.drawgrid), myDrawAxes(AData.drawaxes),
+  myNbX(AData.nbx), myNbY(AData.nby), myNbZ(AData.nbz),
+  myXOffset(AData.xoffset), myYOffset(AData.yoffset), myZOffset(AData.zoffset),
+  myXAxisOffset(AData.xaxisoffset), myYAxisOffset(AData.yaxisoffset), myZAxisOffset(AData.zaxisoffset),
+  myDrawXTickmarks(AData.xdrawtickmarks), myDrawYTickmarks(AData.ydrawtickmarks), myDrawZTickmarks(AData.zdrawtickmarks),
+  myXTickmarkLength(AData.xtickmarklength), myYTickmarkLength(AData.ytickmarklength), myZTickmarkLength(AData.ztickmarklength),
+  myFontOfNames(NULL),
+  myStyleOfNames(AData.styleOfNames),
+  mySizeOfNames(AData.sizeOfNames),
+  myFontOfValues(NULL),
+  myStyleOfValues(AData.styleOfValues),
+  mySizeOfValues(AData.sizeOfValues),
+  myCbCubicAxes(AData.cbCubicAxes),
+  myPtrVisual3dView(AData.ptrVisual3dView)
 {
-  /* Initialize data for a new view */
-  int index = getGraduatedTrihedronDataIndex(WsId);
-  if (index == -1)
+  /* Names of axes */
+  /* X-name */
+  int len = AData.xname.Length();
+  if (len)
   {
-    /* Extend array for +1 */
-    tel_graduatedtrihedron_data* newGraduatedTrihedronData = new tel_graduatedtrihedron_data[nbWsIds+1];
-
-    /* Copy existing contents */
-    int i;
-    for (i = 0; i < nbWsIds; i++)
-      newGraduatedTrihedronData[i] = graduatedTrihedronData[i];
-
-    /* Add new item */
-    index = nbWsIds++;
-    newGraduatedTrihedronData[index] = new TEL_GRADUATEDTRIHEDRON_DATA;
-    newGraduatedTrihedronData[index]->WsId = WsId;
-
-    /* Switch to new array */
-    delete graduatedTrihedronData;
-    graduatedTrihedronData = newGraduatedTrihedronData;
+    Standard_ExtString iname = AData.xname.ToExtString();
+    wchar_t *xname = new wchar_t[len+1];
+    len = 0; while (xname[len] = (wchar_t)(iname[len])) len++;
+    myXName = xname;
   }
-  copyData(&data, graduatedTrihedronData[index]);
-  return call_graduatedtrihedron_redraw(WsId);
-}
-
-TStatus call_graduatedtrihedron_erase(int WsId)
-{
-  int index = getGraduatedTrihedronDataIndex(WsId);
-  if (index == -1)
-    return TSuccess; /* Nothing to remove */
-
-  /* If trihedron is displayed only in one view, just free the array and set nbWsIds equal to 0. */
-  if (nbWsIds == 1)
+  /* Y-name */
+  len = AData.yname.Length();
+  if (len)
   {
-    freeData();
-    return TSuccess;
+    Standard_ExtString iname = AData.yname.ToExtString();
+    wchar_t *yname = new wchar_t[len+1];
+    len = 0; while (yname[len] = (wchar_t)(iname[len])) len++;
+    myYName = yname;
   }
-
-  /* Reduce array for -1 */
-  tel_graduatedtrihedron_data* newGraduatedTrihedronData = new tel_graduatedtrihedron_data[nbWsIds-1];
-
-  /* Copy existing contents */
-  int i, j;
-  for (i = 0, j = 0; i < nbWsIds; i++)
+  /* Z-name */
+  len = AData.zname.Length();
+  if (len)
   {
-    if (graduatedTrihedronData[i]->WsId != WsId)
-      newGraduatedTrihedronData[j++] = graduatedTrihedronData[i];
+    Standard_ExtString iname = AData.zname.ToExtString();
+    wchar_t *zname = new wchar_t[len+1];
+    len = 0; while (zname[len] = (wchar_t)(iname[len])) len++;
+    myZName = zname;
   }
-  nbWsIds--;
-
-  /* Switch to new array */
-  delete graduatedTrihedronData;
-  graduatedTrihedronData = newGraduatedTrihedronData;
-
-  return TSuccess;
+  /* Grid color */
+  myGridColor[0] = (float) AData.gridcolor.Red();
+  myGridColor[1] = (float) AData.gridcolor.Green();
+  myGridColor[2] = (float) AData.gridcolor.Blue();
+  /* X name color */
+  myXNameColor[0] = (float) AData.xnamecolor.Red();
+  myXNameColor[1] = (float) AData.xnamecolor.Green();
+  myXNameColor[2] = (float) AData.xnamecolor.Blue();
+  /* Y name color */
+  myYNameColor[0] = (float) AData.ynamecolor.Red();
+  myYNameColor[1] = (float) AData.ynamecolor.Green();
+  myYNameColor[2] = (float) AData.ynamecolor.Blue();
+  /* Z name color */
+  myZNameColor[0] = (float) AData.znamecolor.Red();
+  myZNameColor[1] = (float) AData.znamecolor.Green();
+  myZNameColor[2] = (float) AData.znamecolor.Blue();
+  /* X color of axis and values */
+  myXColor[0] = (float) AData.xcolor.Red();
+  myXColor[1] = (float) AData.xcolor.Green();
+  myXColor[2] = (float) AData.xcolor.Blue();
+  /* Y color of axis and values */
+  myYColor[0] = (float) AData.ycolor.Red();
+  myYColor[1] = (float) AData.ycolor.Green();
+  myYColor[2] = (float) AData.ycolor.Blue();
+  /* Z color of axis and values */
+  myZColor[0] = (float) AData.zcolor.Red();
+  myZColor[1] = (float) AData.zcolor.Green();
+  myZColor[2] = (float) AData.zcolor.Blue();
+  /* Font name of names of axes: Courier, Arial, ... */
+  len = AData.fontOfNames.Length();
+  char *fontOfNames = new char[len+1];
+  if (len)
+    strcpy(fontOfNames, AData.fontOfNames.ToCString());
+  else
+    fontOfNames[0] = '\0';
+  myFontOfNames = fontOfNames;
+  /* Font name of values: Courier, Arial, ... */
+  len = AData.fontOfValues.Length();
+  char *fontOfValues = new char[len+1];
+  if (len)
+    strcpy(fontOfValues, AData.fontOfValues.ToCString());
+  else
+    fontOfValues[0] = '\0';
+  myFontOfValues = fontOfValues;
 }
 
-TStatus call_graduatedtrihedron_redraw(int WsId)
+OpenGl_GraduatedTrihedron::~OpenGl_GraduatedTrihedron ()
 {
-  /* Get index of the trihedron data */
-  int index = getGraduatedTrihedronDataIndex(WsId);
-  if (index == -1)
-    return TFailure;
+  // Names of axes
+  if (myXName)
+    delete[] myXName;
+  if (myYName)
+    delete[] myYName;
+  if (myZName)
+    delete[] myZName;
+
+  // Fonts
+  if (myFontOfNames)
+    delete[] myFontOfNames;
+  if (myFontOfValues)
+    delete[] myFontOfValues;
+}
 
-  tel_graduatedtrihedron_data data = graduatedTrihedronData[index];
+//call_graduatedtrihedron_redraw
+void OpenGl_GraduatedTrihedron::Render (const Handle(OpenGl_Workspace) &AWorkspace) const
+{
+  const OpenGl_AspectLine *oldAspectLine = AWorkspace->SetAspectLine(&myDefaultAspectLine);
+  AWorkspace->AspectLine(Standard_True);
 
   /* Update boundary box */
-  if (data->cbCubicAxes)
-    data->cbCubicAxes(data->ptrVisual3dView);
+  if (myCbCubicAxes)
+    myCbCubicAxes(myPtrVisual3dView);
 
   /* Disable lighting for lines */
   GLboolean light = glIsEnabled(GL_LIGHTING);
   if (light)
     glDisable(GL_LIGHTING);
-    
+
   /* Find the farest point of bounding box */
 
   /* Get normal of the view out of user. */
   /* Also, the method return distance corresponding to 1 pixel */
   float normal[3];
   float dpix = getNormal(normal);
-    
+
   /* Normalize normal */
   float d = sqrtf(normal[0] * normal[0] + normal[1] * normal[1] + normal[2] * normal[2]);
   normal[0] /= d;
@@ -790,9 +644,9 @@ TStatus call_graduatedtrihedron_redraw(int WsId)
   float step, dx, dy, dz;
 
   /* Grid */
-  if (data->drawgrid)
+  if (myDrawGrid)
   {
-    glColor3fv(data->gridcolor);
+    glColor3fv(myGridColor);
     glBegin(GL_LINES);
     /* Boundary grid-lines */
     if (LX1draw == 1)
@@ -844,11 +698,11 @@ TStatus call_graduatedtrihedron_redraw(int WsId)
 
     /* Intermediate grid-lines */
     /* X-Grid lines */
-    if (data->nbx > 0)
+    if (myNbX > 0)
     {
-      i = data->drawaxes ? 1 : 0;
-      step = fabsf(LX1[3] - LX1[0]) / (float) data->nbx;
-      while (i < data->nbx)
+      i = myDrawAxes ? 1 : 0;
+      step = fabsf(LX1[3] - LX1[0]) / (float) myNbX;
+      while (i < myNbX)
       {
         glBegin(GL_LINE_STRIP);
         glVertex3f(LX1[0] + i * step, LX1[1], LX1[2]);
@@ -859,11 +713,11 @@ TStatus call_graduatedtrihedron_redraw(int WsId)
       }
     }
     /* Y-Grid lines */
-    if (data->nby > 0)
+    if (myNbY > 0)
     {
-      i = data->drawaxes ? 1 : 0;
-      step = fabsf(LY1[4] - LY1[1]) / (float) data->nby;
-      while (i < data->nby)
+      i = myDrawAxes ? 1 : 0;
+      step = fabsf(LY1[4] - LY1[1]) / (float) myNbY;
+      while (i < myNbY)
       {
         glBegin(GL_LINE_STRIP);
         glVertex3f(LY1[0], LY1[1] + i * step, LY1[2]);
@@ -874,11 +728,11 @@ TStatus call_graduatedtrihedron_redraw(int WsId)
       }
     }
     /* Z-Grid lines */
-    if (data->nbz > 0)
+    if (myNbZ > 0)
     {
-      i = data->drawaxes ? 1 : 0;
-      step = fabsf(LZ1[5] - LZ1[2]) / (float) data->nbz;
-      while (i < data->nbz)
+      i = myDrawAxes ? 1 : 0;
+      step = fabsf(LZ1[5] - LZ1[2]) / (float) myNbZ;
+      while (i < myNbZ)
       {
         glBegin(GL_LINE_STRIP);
         glVertex3f(LZ1[0], LZ1[1], LZ1[2] + i * step);
@@ -891,18 +745,18 @@ TStatus call_graduatedtrihedron_redraw(int WsId)
   }
 
   /* Axes (arrows) */
-  if (data->drawaxes)
+  if (myDrawAxes)
   {
     /* X-axis */
-    glColor3fv(data->xcolor);
+    glColor3fv(myXColor);
     drawArrow(xmin, ymin, zmin, xmax, ymin, zmin, normal[0], normal[1], normal[2]);
 
     /* Y-axis */
-    glColor3fv(data->ycolor);
+    glColor3fv(myYColor);
     drawArrow(xmin, ymin, zmin, xmin, ymax, zmin, normal[0], normal[1], normal[2]);
 
     /* Z-axis */
-    glColor3fv(data->zcolor);
+    glColor3fv(myZColor);
     drawArrow(xmin, ymin, zmin, xmin, ymin, zmax, normal[0], normal[1], normal[2]);
   }
 
@@ -910,7 +764,7 @@ TStatus call_graduatedtrihedron_redraw(int WsId)
   char textValue[128];
   wchar_t wtextValue[128];
 
-  if (data->xdrawname || data->xdrawvalues)
+  if (myDrawXName || myDrawXValues)
   {
     /* Middle point of the first X-axis */
     m1[0] = 0.5f * (LX1[0] + LX1[3]);
@@ -937,51 +791,51 @@ TStatus call_graduatedtrihedron_redraw(int WsId)
     m2[2] = dpix * dz;
 
     /* Name of X-axis */
-    if (data->xdrawname)
+    if (myDrawXName)
     {
-      glColor3fv(data->xnamecolor);
-      offset = data->xaxisoffset + data->xtickmarklength;
-      drawText(data->xname, data->fontOfNames, data->styleOfNames, data->sizeOfNames, 
+      glColor3fv(myXNameColor);
+      offset = myXAxisOffset + myXTickmarkLength;
+      drawText(AWorkspace, myXName, myFontOfNames, myStyleOfNames, mySizeOfNames, 
                m1[0], m1[1] + offset * m2[1], m1[2] + offset * m2[2]);
     }
 
     /* X-values */
-    if (data->xdrawvalues && data->nbx > 0)
+    if (myDrawXValues && myNbX > 0)
     {
-      glColor3fv(data->xcolor);
+      glColor3fv(myXColor);
 
       i = 0;
-      step = fabsf(LX1[3] - LX1[0]) / (float) data->nbx;
-      offset = data->xoffset + data->xtickmarklength;
-      while (i <= data->nbx)
+      step = fabsf(LX1[3] - LX1[0]) / (float) myNbX;
+      offset = myXOffset + myXTickmarkLength;
+      while (i <= myNbX)
       {
         sprintf(textValue, "%g", LX1[0] + i * step);
         j = 0; while (wtextValue[j] = textValue[j]) j++;
-        drawText(wtextValue, data->fontOfValues, data->styleOfValues, data->sizeOfValues, 
+        drawText(AWorkspace, wtextValue, myFontOfValues, myStyleOfValues, mySizeOfValues, 
                  LX1[0] + i * step, m1[1] + offset * m2[1], m1[2] + offset * m2[2]);
         i++;
       }
     }
 
     /* X-tickmark */
-    if (data->xdrawtickmarks && data->nbx > 0)
+    if (myDrawXTickmarks && myNbX > 0)
     {
-      glColor3fv(data->gridcolor);
+      glColor3fv(myGridColor);
 
       i = 0;
-      step = fabsf(LX1[3] - LX1[0]) / (float) data->nbx;
-      while (i <= data->nbx)
+      step = fabsf(LX1[3] - LX1[0]) / (float) myNbX;
+      while (i <= myNbX)
       {
         glBegin(GL_LINES);
-        glVertex3f(LX1[0] + i * step, m1[1],                                 m1[2]);
-        glVertex3f(LX1[0] + i * step, m1[1] + data->xtickmarklength * m2[1], m1[2] + data->xtickmarklength * m2[2]);
+        glVertex3f(LX1[0] + i * step, m1[1],                             m1[2]);
+        glVertex3f(LX1[0] + i * step, m1[1] + myXTickmarkLength * m2[1], m1[2] + myXTickmarkLength * m2[2]);
         glEnd();
         i++;
       }
     }
   }
 
-  if (data->ydrawname || data->ydrawvalues)
+  if (myDrawYName || myDrawYValues)
   {
     /* Middle point of the first Y-axis */
     m1[0] = 0.5f * (LY1[0] + LY1[3]);
@@ -1009,51 +863,51 @@ TStatus call_graduatedtrihedron_redraw(int WsId)
     m2[2] = dpix * dz;
 
     /* Name of Y-axis */
-    if (data->ydrawname)
+    if (myDrawYName)
     {
-      glColor3fv(data->ynamecolor);
-      offset = data->yaxisoffset + data->ytickmarklength;
-      drawText(data->yname, data->fontOfNames, data->styleOfNames, data->sizeOfNames, 
+      glColor3fv(myYNameColor);
+      offset = myYAxisOffset + myYTickmarkLength;
+      drawText(AWorkspace, myYName, myFontOfNames, myStyleOfNames, mySizeOfNames, 
                m1[0] + offset * m2[0], m1[1], m1[2] + offset * m2[2]);
     }
 
     /* Y-values */
-    if (data->ydrawvalues && data->nby > 0)
+    if (myDrawYValues && myNbY > 0)
     {
-      glColor3fv(data->ycolor);
+      glColor3fv(myYColor);
 
       i = 0;
-      step = fabsf(LY1[4] - LY1[1]) / (float) data->nby;
-      offset = data->yoffset + data->ytickmarklength;
-      while (i <= data->nby)
+      step = fabsf(LY1[4] - LY1[1]) / (float) myNbY;
+      offset = myYOffset + myYTickmarkLength;
+      while (i <= myNbY)
       {
         sprintf(textValue, "%g", LY1[1] + i * step);
         j = 0; while (wtextValue[j] = textValue[j]) j++;
-        drawText(wtextValue, data->fontOfValues, data->styleOfValues, data->sizeOfValues, 
+        drawText(AWorkspace, wtextValue, myFontOfValues, myStyleOfValues, mySizeOfValues, 
                  m1[0] + offset * m2[0], LY1[1] + i * step, m1[2] + offset * m2[2]);
         i++;
       }
     }
 
     /* Y-tickmark */
-    if (data->ydrawtickmarks && data->nby > 0)
+    if (myDrawYTickmarks && myNbY > 0)
     {
-      glColor3fv(data->gridcolor);
+      glColor3fv(myGridColor);
 
       i = 0;
-      step = fabsf(LY1[4] - LY1[1]) / (float) data->nby;
-      while (i <= data->nby)
+      step = fabsf(LY1[4] - LY1[1]) / (float) myNbY;
+      while (i <= myNbY)
       {
         glBegin(GL_LINES);
-        glVertex3f(m1[0],                                 LY1[1] + i * step, m1[2]);
-        glVertex3f(m1[0] + data->ytickmarklength * m2[0], LY1[1] + i * step, m1[2] + data->ytickmarklength * m2[2]);
+        glVertex3f(m1[0],                             LY1[1] + i * step, m1[2]);
+        glVertex3f(m1[0] + myYTickmarkLength * m2[0], LY1[1] + i * step, m1[2] + myYTickmarkLength * m2[2]);
         glEnd();
         i++;
       }
     }
   }
 
-  if (data->zdrawname || data->zdrawvalues)
+  if (myDrawZName || myDrawZValues)
   {
     /* Middle point of the first Z-axis */
     m1[0] = 0.5f * (LZ1[0] + LZ1[3]);
@@ -1081,44 +935,44 @@ TStatus call_graduatedtrihedron_redraw(int WsId)
     m2[1] = dpix * dy;
 
     /* Name of Z-axis */
-    if (data->zdrawname)
+    if (myDrawZName)
     {
-      glColor3fv(data->znamecolor);
-      offset = data->zaxisoffset + data->ztickmarklength;
-      drawText(data->zname, data->fontOfNames, data->styleOfNames, data->sizeOfNames, 
+      glColor3fv(myZNameColor);
+      offset = myZAxisOffset + myZTickmarkLength;
+      drawText(AWorkspace, myZName, myFontOfNames, myStyleOfNames, mySizeOfNames, 
                m1[0] + offset * m2[0], m1[1] + offset * m2[1], m1[2]);
     }
 
     /* Z-values */
-    if (data->zdrawvalues && data->nbz > 0)
+    if (myDrawZValues && myNbZ > 0)
     {
-      glColor3fv(data->zcolor);
+      glColor3fv(myZColor);
 
       i = 0;
-      step = fabsf(LZ1[5] - LZ1[2]) / (float) data->nbz;
-      offset = data->zoffset + data->ztickmarklength;
-      while (i <= data->nbz)
+      step = fabsf(LZ1[5] - LZ1[2]) / (float) myNbZ;
+      offset = myZOffset + myZTickmarkLength;
+      while (i <= myNbZ)
       {
         sprintf(textValue, "%g", LZ1[2] + i * step);
         j = 0; while (wtextValue[j] = textValue[j]) j++;
-        drawText(wtextValue, data->fontOfValues, data->styleOfValues, data->sizeOfValues, 
+        drawText(AWorkspace, wtextValue, myFontOfValues, myStyleOfValues, mySizeOfValues, 
                  m1[0] + offset * m2[0], m1[1] + offset * m2[1], LZ1[2] + i * step);
         i++;
       }
     }
 
     /* Z-tickmark */
-    if (data->zdrawtickmarks && data->nbz > 0)
+    if (myDrawZTickmarks && myNbZ > 0)
     {
-      glColor3fv(data->gridcolor);
+      glColor3fv(myGridColor);
 
       i = 0;
-      step = fabsf(LZ1[5] - LZ1[2]) / (float) data->nbz;
-      while (i <= data->nbz)
+      step = fabsf(LZ1[5] - LZ1[2]) / (float) myNbZ;
+      while (i <= myNbZ)
       {
         glBegin(GL_LINES);
-        glVertex3f(m1[0],                                 m1[1],                                LZ1[2] + i * step);
-        glVertex3f(m1[0] + data->ztickmarklength * m2[0], m1[1] + data->ztickmarklength * m2[1], LZ1[2] + i * step);
+        glVertex3f(m1[0],                             m1[1],                             LZ1[2] + i * step);
+        glVertex3f(m1[0] + myZTickmarkLength * m2[0], m1[1] + myZTickmarkLength * m2[1], LZ1[2] + i * step);
         glEnd();
         i++;
       }
@@ -1128,22 +982,18 @@ TStatus call_graduatedtrihedron_redraw(int WsId)
   /* Activate the lighting if it was turned off by this method call */
   if (light)
     glEnable(GL_LIGHTING);
-    
-  return TSuccess;
+
+  AWorkspace->SetAspectLine(oldAspectLine);
 }
 
-TStatus call_graduatedtrihedron_minmaxvalues(const float xMin,
-                                             const float yMin,
-                                             const float zMin,
-                                             const float xMax,
-                                             const float yMax,
-                                             const float zMax)
+//call_graduatedtrihedron_minmaxvalues
+void OpenGl_GraduatedTrihedron::SetMinMax (const Standard_ShortReal xMin, const Standard_ShortReal yMin, const Standard_ShortReal zMin,
+                                          const Standard_ShortReal xMax, const Standard_ShortReal yMax, const Standard_ShortReal zMax)
 {
-    xmin = xMin;
-    ymin = yMin;
-    zmin = zMin;
-    xmax = xMax;
-    ymax = yMax;
-    zmax = zMax;
-    return TSuccess;
+  xmin = xMin;
+  ymin = yMin;
+  zmin = zMin;
+  xmax = xMax;
+  ymax = yMax;
+  zmax = zMax;
 }
diff --git a/src/OpenGl/OpenGl_GraduatedTrihedron.hxx b/src/OpenGl/OpenGl_GraduatedTrihedron.hxx
new file mode 100644 (file)
index 0000000..00dfbce
--- /dev/null
@@ -0,0 +1,64 @@
+// File:      OpenGl_GraduatedTrihedron.hxx
+// Created:   20 September 2011
+// Author:    Sergey ZERCHANINOV
+// Copyright: OPEN CASCADE 2011
+
+#ifndef _OpenGl_GraduatedTrihedron_Header
+#define _OpenGl_GraduatedTrihedron_Header
+
+#include <Handle_OpenGl_GraduatedTrihedron.hxx>
+
+#include <Graphic3d_CGraduatedTrihedron.hxx>
+
+class OpenGl_View;
+
+class OpenGl_GraduatedTrihedron : public MMgt_TShared
+{
+ public:
+  OpenGl_GraduatedTrihedron (const Graphic3d_CGraduatedTrihedron &AData);
+  virtual ~OpenGl_GraduatedTrihedron ();
+
+  static void SetMinMax (const Standard_ShortReal xMin, const Standard_ShortReal yMin, const Standard_ShortReal zMin,
+                         const Standard_ShortReal xMax, const Standard_ShortReal yMax, const Standard_ShortReal zMax);
+
+  void Render (const Handle(OpenGl_Workspace) &AWorkspace) const;
+
+  // Type definition
+  //
+  DEFINE_STANDARD_RTTI(OpenGl_GraduatedTrihedron)
+
+ protected:
+
+  const wchar_t *myXName;
+  const wchar_t *myYName;
+  const wchar_t *myZName;
+  unsigned char myDrawXName, myDrawYName, myDrawZName;
+  unsigned char myDrawXValues, myDrawYValues, myDrawZValues;
+  unsigned char myDrawGrid;
+  unsigned char myDrawAxes;
+  unsigned int myNbX, myNbY, myNbZ;
+  int myXOffset, myYOffset, myZOffset;
+  int myXAxisOffset, myYAxisOffset, myZAxisOffset;
+  unsigned char myDrawXTickmarks, myDrawYTickmarks, myDrawZTickmarks;
+  unsigned int myXTickmarkLength, myYTickmarkLength, myZTickmarkLength;
+  float myGridColor[3];
+  float myXNameColor[3];
+  float myYNameColor[3];
+  float myZNameColor[3];
+  float myXColor[3];
+  float myYColor[3];
+  float myZColor[3];
+  const char *myFontOfNames;
+  OSD_FontAspect myStyleOfNames;
+  int mySizeOfNames;
+  const char* myFontOfValues;
+  OSD_FontAspect myStyleOfValues;
+  int mySizeOfValues;
+  minMaxValuesCallback myCbCubicAxes;
+  void* myPtrVisual3dView;
+
+ public:
+  IMPLEMENT_MEMORY_OPERATORS
+};
+
+#endif //_OpenGl_GraduatedTrihedron_Header
diff --git a/src/OpenGl/OpenGl_GraphicDriver.cdl b/src/OpenGl/OpenGl_GraphicDriver.cdl
deleted file mode 100755 (executable)
index d36bb1f..0000000
+++ /dev/null
@@ -1,1337 +0,0 @@
---
--- File:    OpenGl_GraphicDriver.cdl
--- Created: Mardi 28 janvier 1997
--- Author:  CAL
--- Modified:
---              07-10-99 : EUG : Degeneration support (G003)
---                               Add DegenerateStructure() and
---                                   SetBackFacingModel() methods.
---      16-06-2000 : ATS,SPK : G005 : PARRAY method
---      17/08/00 ; THA ; Thomas HARTL <t-hartl@muenchen.matra-dtv.fr>
---              -> Add Print methods (works only under Windows).
---      27/03/02 ; GG  ; RIC120302 Add new method Begin(Aspect_Display)
---      23/12/02 ; SAV Added methods to set background image
---              20/01/09 ; ABD : Integration support of system fonts (using FTGL and FreeType)
---
---
----Copyright:   MatraDatavision 1997
---
-
-class GraphicDriver from OpenGl inherits GraphicDriver from Graphic3d
-
-    ---Version:
-
-    ---Purpose: This class allows the definition of an opengl graphic
-    --      driver
-
-    ---Keywords: OpenGl
-
-    ---Warning:
-    ---References:
-
-uses
-
-    Array1OfInteger     from TColStd,
-    Array1OfReal        from TColStd,
-    Array2OfReal        from TColStd,
-
-    ExtendedString      from TCollection,
-
-    NameOfColor         from Quantity,
-    Color              from Quantity,
-    PlaneAngle          from Quantity,
-
-    AlienImage          from AlienImage,
-
-    Array1OfEdge        from Aspect,
-    CLayer2d            from Aspect,
-    TypeOfTriedronEcho  from Aspect,
-    TypeOfTriedronPosition  from Aspect,
-    Handle              from Aspect,
-    Display             from Aspect,
-    PrintAlgo           from Aspect,
-
-    AspectLine3d        from Graphic3d,
-    AspectMarker3d      from Graphic3d,
-    AspectText3d        from Graphic3d,
-    AspectFillArea3d    from Graphic3d,
-    HorizontalTextAlignment from Graphic3d,
-    CBitFields20        from Graphic3d,
-    CGroup              from Graphic3d,
-    CPick               from Graphic3d,
-    CStructure          from Graphic3d,
-    CView               from Graphic3d,
-    CRawBufferData      from Image,
-    Structure           from Graphic3d,
-    TextPath            from Graphic3d,
-    TypeOfComposition   from Graphic3d,
-    TypeOfPolygon       from Graphic3d,
-    TypeOfPrimitive     from Graphic3d,
-    Vector              from Graphic3d,
-    Array1OfVertex      from Graphic3d,
-    Array2OfVertex      from Graphic3d,
-    Vertex              from Graphic3d,
-    Array1OfVertexC     from Graphic3d,
-    Array2OfVertexC     from Graphic3d,
-    VertexC             from Graphic3d,
-    Array1OfVertexN     from Graphic3d,
-    Array2OfVertexN     from Graphic3d,
-    VertexN             from Graphic3d,
-    Array1OfVertexNC    from Graphic3d,
-    Array2OfVertexNC    from Graphic3d,
-    VertexNC            from Graphic3d,
-    VerticalTextAlignment   from Graphic3d,
-    CInitTexture        from Graphic3d,
-    TypeOfTexture       from Graphic3d,
-    VertexNT            from Graphic3d,
-    Array1OfVertexNT    from Graphic3d,
-    Array2OfVertexNT    from Graphic3d,
-    PrimitiveArray      from Graphic3d,
-    PtrFrameBuffer      from Graphic3d,
-    FillMethod          from Aspect,
-    GradientFillMethod  from Aspect,
-    HArray1OfByte       from TColStd,
-    ExportFormat        from Graphic3d,
-    SortType            from Graphic3d,
-    HArray1OfReal       from TColStd,
-    CUserDraw           from Graphic3d,
-    NListOfHAsciiString from Graphic3d,
-    FontAspect          from OSD,
-    CGraduatedTrihedron from Graphic3d
-is
-
-    Create ( AShrName   : CString from Standard )
-        returns mutable GraphicDriver from OpenGl;
-
-    -------------------------
-    -- Category: Init methods
-    -------------------------
-    DefaultTextHeight( me )
-        returns ShortReal from Standard
-         is redefined  static;
-
-    Begin ( me          : mutable;
-            ADisplay    : CString from Standard )
-        returns Boolean from Standard
-        is redefined static;
-    ---Purpose: call_togl_begin
-
-    Begin ( me          : mutable;
-            ADisplay    : Display from Aspect )
-        returns Boolean from Standard
-        is redefined static;
-    ---Purpose: call_togl_begin_display
-
-    End ( me    : mutable )
-        is redefined static;
-    ---Purpose: call_togl_end
-
-    ----------------------------
-    -- Category: Inquire methods
-    ----------------------------
-
-    InquireLightLimit ( me  : mutable )
-        returns Integer from Standard
-        is redefined static;
-    ---Purpose: call_togl_inquirelight
-
-    InquireMat ( me     : mutable;
-                 ACView : CView from Graphic3d;
-                 AMatO  : out Array2OfReal from TColStd;
-                 AMatM  : out Array2OfReal from TColStd )
-        is redefined static;
-    ---Purpose: call_togl_inquiremat
-
-    InquirePlaneLimit ( me  : mutable )
-        returns Integer from Standard
-        is redefined static;
-    ---Purpose: call_togl_inquireplane
-
-    InquireViewLimit ( me   : mutable )
-        returns Integer from Standard
-        is redefined static;
-    ---Purpose: call_togl_inquireview
-
-    InquireTextureAvailable ( me    : mutable )
-        returns Boolean from Standard
-        is redefined static;
-    ---Purpose: Returns Standard_True if texture is
-    --      supported by the graphic driver
-
-    ------------------------------
-    -- Category: Highlight methods
-    ------------------------------
-
-    Blink ( me          : mutable;
-            ACStructure : CStructure from Graphic3d;
-            Create      : Boolean from Standard )
-        is redefined static;
-    ---Purpose: call_togl_blink
-
-    BoundaryBox ( me            : mutable;
-                  ACStructure   : CStructure from Graphic3d;
-                  Create        : Boolean from Standard )
-        is redefined static;
-    ---Purpose: call_togl_boundarybox
-
-    HighlightColor ( me             : mutable;
-                     ACStructure    : CStructure from Graphic3d;
-                     R              : ShortReal from Standard;
-                     G              : ShortReal from Standard;
-                     B              : ShortReal from Standard;
-                     Create         : Boolean from Standard )
-        is redefined static;
-    ---Purpose: call_togl_highlightcolor
-
-    NameSetStructure ( me           : mutable;
-                       ACStructure  : CStructure from Graphic3d )
-        is redefined static;
-    ---Purpose: call_togl_namesetstructure
-
-    -------------------------------------
-    -- Category: Group management methods
-    -------------------------------------
-
-    ClearGroup ( me         : mutable;
-                 ACGroup    : CGroup from Graphic3d )
-        is redefined static;
-    ---Purpose: call_togl_cleargroup
-
-    CloseGroup ( me     : mutable;
-             ACGroup    : CGroup from Graphic3d )
-        is redefined static;
-    ---Purpose: call_togl_closegroup
-
-    FaceContextGroup ( me       : mutable;
-                       ACGroup  : CGroup from Graphic3d;
-                       NoInsert : Integer from Standard )
-        is redefined static;
-    ---Purpose: call_togl_facecontextgroup
-
-    Group ( me      : mutable;
-            ACGroup : in out CGroup from Graphic3d )
-        is redefined static;
-    ---Purpose: call_togl_group
-
-    LineContextGroup ( me       : mutable;
-                       ACGroup  : CGroup from Graphic3d;
-                       NoInsert : Integer from Standard )
-        is redefined static;
-    ---Purpose: call_togl_linecontextgroup
-
-    MarkerContextGroup ( me         : mutable;
-                         ACGroup    : CGroup from Graphic3d;
-                         NoInsert   : Integer from Standard )
-        is redefined static;
-    ---Purpose: call_togl_markercontextgroup
-
-    MarkerContextGroup ( me          : mutable;
-                         ACGroup     : CGroup from Graphic3d;
-                         NoInsert    : Integer from Standard;
-                         AMarkWidth  : Integer from Standard;
-                         AMarkHeight : Integer from Standard;
-                         ATexture    : HArray1OfByte from TColStd )
-        is redefined static;
-    ---Purpose: call_togl_markercontextgroup
-
-
-    OpenGroup ( me      : mutable;
-                ACGroup : CGroup from Graphic3d )
-        is redefined static;
-    ---Purpose: call_togl_opengroup
-
-    RemoveGroup ( me        : mutable;
-                  ACGroup   : CGroup from Graphic3d )
-        is redefined static;
-    ---Purpose: call_togl_removegroup
-
-    TextContextGroup ( me       : mutable;
-                       ACGroup  : CGroup from Graphic3d;
-                       NoInsert : Integer from Standard )
-        is redefined static;
-    ---Purpose: call_togl_textcontextgroup
-
-    -----------------------------------------
-    -- Category: Structure management methods
-    -----------------------------------------
-
-    ClearStructure ( me     : mutable;
-             ACStructure    : CStructure from Graphic3d )
-        is redefined static;
-    ---Purpose: call_togl_clearstructure
-
-    Connect ( me        : mutable;
-              AFather   : CStructure from Graphic3d;
-              ASon      : CStructure from Graphic3d )
-        is redefined static;
-    ---Purpose: call_togl_connect
-
-    ContextStructure ( me           : mutable;
-                       ACStructure  : CStructure from Graphic3d )
-        is redefined static;
-    ---Purpose: call_togl_contextstructure
-
-    Disconnect ( me         : mutable;
-                 AFather    : CStructure from Graphic3d;
-                 ASon       : CStructure from Graphic3d )
-        is redefined static;
-    ---Purpose: call_togl_disconnect
-
-    DisplayStructure ( me           : mutable;
-                       ACView       : CView from Graphic3d;
-                       ACStructure  : CStructure from Graphic3d;
-                       APriority    : Integer from Standard )
-        is redefined static;
-    ---Purpose: call_togl_displaystructure
-
-    EraseStructure ( me             : mutable;
-                     ACView         : CView from Graphic3d;
-                     ACStructure    : CStructure from Graphic3d )
-        is redefined static;
-    ---Purpose: call_togl_erasestructure
-
-    RemoveStructure ( me            : mutable;
-                      ACStructure   : CStructure from Graphic3d )
-        is redefined static;
-    ---Purpose: call_togl_removestructure
-
-    Structure ( me          : mutable;
-                ACStructure : in out CStructure from Graphic3d )
-        is redefined static;
-    ---Purpose: call_togl_structure
-
-    --------------------------------
-    -- Category: Exploration methods
-    --------------------------------
-
-    DumpGroup ( me      : mutable;
-                ACGroup : CGroup from Graphic3d )
-        is redefined static;
-    ---Purpose: call_togl_structure_exploration
-
-    DumpStructure ( me          : mutable;
-