summaryrefslogtreecommitdiff
path: root/graphics/OpenCASCADE/opencascade-6.3.0sp6.diff
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/OpenCASCADE/opencascade-6.3.0sp6.diff')
-rw-r--r--graphics/OpenCASCADE/opencascade-6.3.0sp6.diff6563
1 files changed, 0 insertions, 6563 deletions
diff --git a/graphics/OpenCASCADE/opencascade-6.3.0sp6.diff b/graphics/OpenCASCADE/opencascade-6.3.0sp6.diff
deleted file mode 100644
index b192e9e32e..0000000000
--- a/graphics/OpenCASCADE/opencascade-6.3.0sp6.diff
+++ /dev/null
@@ -1,6563 +0,0 @@
-diff -Naur OpenCASCADE6.3.0/ros/config.h.in OpenCASCADE6.3.0sp6/ros/config.h.in
---- OpenCASCADE6.3.0/ros/config.h.in 2008-09-02 11:27:00.000000000 +0200
-+++ OpenCASCADE6.3.0sp6/ros/config.h.in 2009-05-29 09:01:37.000000000 +0200
-@@ -87,6 +87,9 @@
- /* Define to 1 if you have the <libc.h> header file. */
- #undef HAVE_LIBC_H
-
-+/* Define to 1 if you have the `dl' library (-ldl). */
-+#undef HAVE_LIBDL
-+
- /* Define to 1 if you have the `pthread' library (-lpthread). */
- #undef HAVE_LIBPTHREAD
-
-diff -Naur OpenCASCADE6.3.0/ros/configure.in OpenCASCADE6.3.0sp6/ros/configure.in
---- OpenCASCADE6.3.0/ros/configure.in 2008-09-09 17:49:10.000000000 +0200
-+++ OpenCASCADE6.3.0sp6/ros/configure.in 2009-05-29 09:01:37.000000000 +0200
-@@ -67,6 +67,12 @@
- CSF_ThreadLibs_LIB=-lpthread
- AC_SUBST(CSF_ThreadLibs_LIB)
-
-+#-----------------------------------------------------------------------------
-+# dl library is required
-+#-----------------------------------------------------------------------------
-+AC_CHECK_LIB([dl],[dlopen],[],[AC_MSG_ERROR([dl library is required])])
-+CSF_SOCKETLibs_LIB=-ldl
-+
- #------------------------------------------------------------------------------
- # Get Tcl and TK configuration information from tclConfig.sh.
- #------------------------------------------------------------------------------
-@@ -102,12 +108,15 @@
- LDFLAGS="$LDFLAGS -lstdc++";;
- SunOS*) CXXFLAGS="$CXXFLAGS -Usun -DSOLARIS -instances=static"
- CFLAGS="$CFLAGS -Usun -DSOLARIS -instances=static"
-- LDFLAGS="$LDFLAGS -instances=static";;
-+ LDFLAGS="$LDFLAGS -instances=static"
-+ CSF_SOCKETLibs_LIB="-lnsl ${CSF_SOCKETLibs_LIB}";;
- OSF1*) CXXFLAGS="$CXXFLAGS -DDECOSF1 -D__USE_STD_IOSTREAM -D_RWSTD_NO_EXCEPTIONS"
- CFLAGS="$CFLAGS -std1 -DDECOSF1"
- LD=$CXX;;
- *) ;;
- esac
-+AC_SUBST(CSF_SOCKETLibs_LIB)
-+
- AC_SUBST(platform)
- AC_LANG([C++])
-
-@@ -370,32 +379,6 @@
- fi
- AM_CONDITIONAL( HAVE_GL, [test "xyes" = "x$HAVE_GL"] )
-
--#---------------------------------------------------------------------
--#
--# Check for DPS libraries
--#
--#
--#---------------------------------------------------------------------
--CSF_dpsLibs_INCLUDES="$X_INCLUDE"
--CSF_dpsLibs_LIB="$X_LIBS"
--if test "xno" = "x$HAVE_X11"; then
-- HAVE_DPS=no
--else
-- AC_CHECK_HEADER( [DPS/dpsXclient.h], [HAVE_DPS_INC=yes], [HAVE_DPS_INC=no] )
-- AC_CHECK_LIB( [dps], [DPSInitialize], [HAVE_DPS_LIB=yes], [HAVE_DPS_LIB=no] )
-- HAVE_DPS=yes
-- if test "xno" = "x$HAVE_DPS_INC"; then
-- HAVE_DPS=no
-- AC_MSG_NOTICE("Specify CPPFLAGS=-I<dps_include_dir> to enable DPS support")
-- fi
-- if test "xno" = "x$HAVE_DPS_LIB"; then
-- HAVE_DPS=no
-- AC_MSG_NOTICE("Specify LDFLAGS=-L<dps_lib_dir> to enable DPS support")
-- else
-- CSF_dpsLibs_LIB="$CSF_dpsLibs_LIB -ldps"
-- fi
--fi
--
- CFLAGS="$CFLAGS_save"
- CXXFLAGS="$CXXFLAGS_save"
- CPPFLAGS="$CPPFLAGS_save"
-@@ -632,7 +615,6 @@
- AC_SUBST(LDFLAGS)
-
-
--CSF_SOCKETLibs_LIB=""
- CSF_XwLibs_LIB="$X_LIBS"
-
- AC_SUBST(CSF_SOCKETLibs_LIB)
-diff -Naur OpenCASCADE6.3.0/ros/drv/BRepMesh/BRepMesh_FastDiscret.jxx OpenCASCADE6.3.0sp6/ros/drv/BRepMesh/BRepMesh_FastDiscret.jxx
---- OpenCASCADE6.3.0/ros/drv/BRepMesh/BRepMesh_FastDiscret.jxx 2008-09-09 17:59:57.000000000 +0200
-+++ OpenCASCADE6.3.0sp6/ros/drv/BRepMesh/BRepMesh_FastDiscret.jxx 2009-04-09 11:54:11.000000000 +0200
-@@ -25,9 +25,6 @@
- #ifndef _BRepMesh_ListOfVertex_HeaderFile
- #include <BRepMesh_ListOfVertex.hxx>
- #endif
--#ifndef _TColStd_ListOfReal_HeaderFile
--#include <TColStd_ListOfReal.hxx>
--#endif
- #ifndef _BRepMesh_Classifier_HeaderFile
- #include <BRepMesh_Classifier.hxx>
- #endif
-diff -Naur OpenCASCADE6.3.0/ros/drv/IntPatch/IntPatch_Intersection_0.cxx OpenCASCADE6.3.0sp6/ros/drv/IntPatch/IntPatch_Intersection_0.cxx
---- OpenCASCADE6.3.0/ros/drv/IntPatch/IntPatch_Intersection_0.cxx 2008-09-09 18:02:29.000000000 +0200
-+++ OpenCASCADE6.3.0sp6/ros/drv/IntPatch/IntPatch_Intersection_0.cxx 2009-04-09 11:54:18.000000000 +0200
-@@ -75,6 +75,9 @@
- #ifndef _IntPatch_TheRLineOfIntersection_HeaderFile
- #include <IntPatch_TheRLineOfIntersection.hxx>
- #endif
-+#ifndef _IntPatch_TheALineToWLineOfIntersection_HeaderFile
-+#include <IntPatch_TheALineToWLineOfIntersection.hxx>
-+#endif
- #ifndef _IntPatch_TheArcFunctionOfIntersection_HeaderFile
- #include <IntPatch_TheArcFunctionOfIntersection.hxx>
- #endif
-@@ -144,9 +147,6 @@
- #ifndef _IntPatch_PrmPrmIntersection_T3BitsOfThePPIntOfIntersection_HeaderFile
- #include <IntPatch_PrmPrmIntersection_T3BitsOfThePPIntOfIntersection.hxx>
- #endif
--#ifndef _IntPatch_TheALineToWLineOfIntersection_HeaderFile
--#include <IntPatch_TheALineToWLineOfIntersection.hxx>
--#endif
- #ifndef _IntPatch_TheLineConstructorOfIntersection_HeaderFile
- #include <IntPatch_TheLineConstructorOfIntersection.hxx>
- #endif
-@@ -192,6 +192,8 @@
- #define IntPatch_TheWLine_hxx <IntPatch_TheWLineOfIntersection.hxx>
- #define IntPatch_TheRLine IntPatch_TheRLineOfIntersection
- #define IntPatch_TheRLine_hxx <IntPatch_TheRLineOfIntersection.hxx>
-+#define IntPatch_TheALineToWLine IntPatch_TheALineToWLineOfIntersection
-+#define IntPatch_TheALineToWLine_hxx <IntPatch_TheALineToWLineOfIntersection.hxx>
- #define IntPatch_TheArcFunction IntPatch_TheArcFunctionOfIntersection
- #define IntPatch_TheArcFunction_hxx <IntPatch_TheArcFunctionOfIntersection.hxx>
- #define IntPatch_TheSOnBounds IntPatch_TheSOnBoundsOfIntersection
-@@ -272,8 +274,6 @@
- #define IntPatch_ThePWalkingInterOfThePPInt_hxx <IntPatch_ThePWalkingInterOfThePPIntOfIntersection.hxx>
- #define IntPatch_PrmPrmIntersection_T3BitsOfThePPInt IntPatch_PrmPrmIntersection_T3BitsOfThePPIntOfIntersection
- #define IntPatch_PrmPrmIntersection_T3BitsOfThePPInt_hxx <IntPatch_PrmPrmIntersection_T3BitsOfThePPIntOfIntersection.hxx>
--#define IntPatch_TheALineToWLine IntPatch_TheALineToWLineOfIntersection
--#define IntPatch_TheALineToWLine_hxx <IntPatch_TheALineToWLineOfIntersection.hxx>
- #define IntPatch_TheLineConstructor IntPatch_TheLineConstructorOfIntersection
- #define IntPatch_TheLineConstructor_hxx <IntPatch_TheLineConstructorOfIntersection.hxx>
- #define Handle_IntPatch_SequenceNodeOfSequenceOfPoint Handle_IntPatch_SequenceNodeOfSequenceOfPointOfIntersection
-diff -Naur OpenCASCADE6.3.0/ros/inc/Aspect_GraphicCallbackProc.hxx OpenCASCADE6.3.0sp6/ros/inc/Aspect_GraphicCallbackProc.hxx
---- OpenCASCADE6.3.0/ros/inc/Aspect_GraphicCallbackProc.hxx 2003-05-30 18:55:57.000000000 +0200
-+++ OpenCASCADE6.3.0sp6/ros/inc/Aspect_GraphicCallbackProc.hxx 2009-10-03 01:00:46.000000000 +0200
-@@ -15,6 +15,13 @@
- #define OCC_REDRAW_WINDOWAREA 2
- #define OCC_REDRAW_BITMAP 3
-
-+/*
-+ This flag, when bitwise OR`ed with the "reason" value,
-+ informs the callback that it is called before redrawing the overlayer .
-+ Otherwise, the callback is invoked after the overlayer is redrawn.
-+*/
-+#define OCC_PRE_OVERLAY 0x8000
-+
- typedef struct {
- int reason;
- int wsID;
-diff -Naur OpenCASCADE6.3.0/ros/inc/BRepFill_Sweep.hxx OpenCASCADE6.3.0sp6/ros/inc/BRepFill_Sweep.hxx
---- OpenCASCADE6.3.0/ros/inc/BRepFill_Sweep.hxx 2008-09-09 17:59:36.000000000 +0200
-+++ OpenCASCADE6.3.0sp6/ros/inc/BRepFill_Sweep.hxx 2009-10-03 01:00:51.000000000 +0200
-@@ -28,6 +28,15 @@
- #ifndef _Standard_Real_HeaderFile
- #include <Standard_Real.hxx>
- #endif
-+#ifndef _GeomFill_ApproxStyle_HeaderFile
-+#include <GeomFill_ApproxStyle.hxx>
-+#endif
-+#ifndef _GeomAbs_Shape_HeaderFile
-+#include <GeomAbs_Shape.hxx>
-+#endif
-+#ifndef _Standard_Integer_HeaderFile
-+#include <Standard_Integer.hxx>
-+#endif
- #ifndef _TopoDS_Shape_HeaderFile
- #include <TopoDS_Shape.hxx>
- #endif
-@@ -52,15 +61,6 @@
- #ifndef _BRepFill_TransitionStyle_HeaderFile
- #include <BRepFill_TransitionStyle.hxx>
- #endif
--#ifndef _GeomFill_ApproxStyle_HeaderFile
--#include <GeomFill_ApproxStyle.hxx>
--#endif
--#ifndef _GeomAbs_Shape_HeaderFile
--#include <GeomAbs_Shape.hxx>
--#endif
--#ifndef _Standard_Integer_HeaderFile
--#include <Standard_Integer.hxx>
--#endif
- class BRepFill_LocationLaw;
- class BRepFill_SectionLaw;
- class TopTools_HArray2OfShape;
-@@ -136,7 +136,7 @@
- //! Degmax : The maximum degree in v requiered on the surface <br>
- //! Segmax : The maximum number of span in v requiered on <br>
- //! the surface. <br>
--Standard_EXPORT void Build(const BRepFill_TransitionStyle Transition = BRepFill_Modified,const GeomFill_ApproxStyle Approx = GeomFill_Location,const GeomAbs_Shape Continuity = GeomAbs_C2,const Standard_Integer Degmax = 10,const Standard_Integer Segmax = 30) ;
-+Standard_EXPORT void Build(const BRepFill_TransitionStyle Transition = BRepFill_Modified,const GeomFill_ApproxStyle Approx = GeomFill_Location,const GeomAbs_Shape Continuity = GeomAbs_C2,const Standard_Integer Degmax = 11,const Standard_Integer Segmax = 30) ;
-
- //! Say if the Shape is Build. <br>
- Standard_EXPORT Standard_Boolean IsDone() const;
-@@ -176,10 +176,13 @@
- //
-
-
--Standard_EXPORT Standard_Boolean BuildWire(const BRepFill_TransitionStyle Transition,const GeomFill_ApproxStyle Approx,const GeomAbs_Shape Continuity,const Standard_Integer Degmax,const Standard_Integer Segmax) ;
-+Standard_EXPORT Standard_Boolean CorrectApproxParameters() ;
-+
-+
-+Standard_EXPORT Standard_Boolean BuildWire(const BRepFill_TransitionStyle Transition) ;
-
-
--Standard_EXPORT Standard_Boolean BuildShell(const BRepFill_TransitionStyle Transition,const Standard_Integer Vf,const Standard_Integer Vl,const GeomFill_ApproxStyle Approx,const GeomAbs_Shape Continuity,const Standard_Integer Degmax,const Standard_Integer Segmax,const Standard_Real ExtendFirst = 0.0,const Standard_Real ExtendLast = 0.0) ;
-+Standard_EXPORT Standard_Boolean BuildShell(const BRepFill_TransitionStyle Transition,const Standard_Integer Vf,const Standard_Integer Vl,const Standard_Real ExtendFirst = 0.0,const Standard_Real ExtendLast = 0.0) ;
-
-
- Standard_EXPORT void PerformCorner(const Standard_Integer Index,const BRepFill_TransitionStyle Transition,const Handle(TopTools_HArray2OfShape)& Bounds) ;
-@@ -204,6 +207,10 @@
- Standard_Real myTolAngular;
- Standard_Real myAngMin;
- Standard_Real myAngMax;
-+GeomFill_ApproxStyle myApproxStyle;
-+GeomAbs_Shape myContinuity;
-+Standard_Integer myDegmax;
-+Standard_Integer mySegmax;
- TopoDS_Shape myShape;
- Handle_BRepFill_LocationLaw myLoc;
- Handle_BRepFill_SectionLaw mySec;
-diff -Naur OpenCASCADE6.3.0/ros/inc/BRepMesh_FastDiscret.hxx OpenCASCADE6.3.0sp6/ros/inc/BRepMesh_FastDiscret.hxx
---- OpenCASCADE6.3.0/ros/inc/BRepMesh_FastDiscret.hxx 2008-09-09 17:59:57.000000000 +0200
-+++ OpenCASCADE6.3.0sp6/ros/inc/BRepMesh_FastDiscret.hxx 2009-10-03 01:00:52.000000000 +0200
-@@ -105,7 +105,6 @@
- class Geom2d_Curve;
- class TopoDS_Vertex;
- class BRepMesh_ListOfVertex;
--class TColStd_ListOfReal;
- class BRepMesh_Classifier;
- class TColStd_ListOfInteger;
- class BRepMesh_Delaun;
-@@ -285,9 +284,6 @@
- Standard_EXPORT void Add(const TopoDS_Vertex& theVert,const TopoDS_Face& face,const Handle(BRepAdaptor_HSurface)& S) ;
-
-
--Standard_EXPORT void InternalVerticesForRectangle(const Handle(BRepAdaptor_HSurface)& caro,BRepMesh_ListOfVertex& inter,const TColStd_ListOfReal& u1pars,const TColStd_ListOfReal& u2pars,const TColStd_ListOfReal& v1pars,const TColStd_ListOfReal& v2pars) ;
--
--
- Standard_EXPORT void InternalVertices(const Handle(BRepAdaptor_HSurface)& caro,BRepMesh_ListOfVertex& inter,const Standard_Real defedge,const BRepMesh_Classifier& classifier) ;
-
-
-diff -Naur OpenCASCADE6.3.0/ros/inc/IntPatch_Intersection.hxx OpenCASCADE6.3.0sp6/ros/inc/IntPatch_Intersection.hxx
---- OpenCASCADE6.3.0/ros/inc/IntPatch_Intersection.hxx 2008-09-09 18:02:29.000000000 +0200
-+++ OpenCASCADE6.3.0sp6/ros/inc/IntPatch_Intersection.hxx 2009-10-03 01:02:19.000000000 +0200
-@@ -85,6 +85,7 @@
- class IntPatch_TheALineOfIntersection;
- class IntPatch_TheWLineOfIntersection;
- class IntPatch_TheRLineOfIntersection;
-+class IntPatch_TheALineToWLineOfIntersection;
- class IntPatch_TheArcFunctionOfIntersection;
- class IntPatch_TheSOnBoundsOfIntersection;
- class IntPatch_ThePathPointOfTheSOnBoundsOfIntersection;
-@@ -108,7 +109,6 @@
- class IntPatch_TheInterfPolyhedronOfThePPIntOfIntersection;
- class IntPatch_ThePWalkingInterOfThePPIntOfIntersection;
- class IntPatch_PrmPrmIntersection_T3BitsOfThePPIntOfIntersection;
--class IntPatch_TheALineToWLineOfIntersection;
- class IntPatch_TheLineConstructorOfIntersection;
- class IntSurf_ListOfPntOn2S;
- class IntPatch_Line;
-@@ -260,6 +260,8 @@
- #define IntPatch_TheWLine_hxx <IntPatch_TheWLineOfIntersection.hxx>
- #define IntPatch_TheRLine IntPatch_TheRLineOfIntersection
- #define IntPatch_TheRLine_hxx <IntPatch_TheRLineOfIntersection.hxx>
-+#define IntPatch_TheALineToWLine IntPatch_TheALineToWLineOfIntersection
-+#define IntPatch_TheALineToWLine_hxx <IntPatch_TheALineToWLineOfIntersection.hxx>
- #define IntPatch_TheArcFunction IntPatch_TheArcFunctionOfIntersection
- #define IntPatch_TheArcFunction_hxx <IntPatch_TheArcFunctionOfIntersection.hxx>
- #define IntPatch_TheSOnBounds IntPatch_TheSOnBoundsOfIntersection
-@@ -340,8 +342,6 @@
- #define IntPatch_ThePWalkingInterOfThePPInt_hxx <IntPatch_ThePWalkingInterOfThePPIntOfIntersection.hxx>
- #define IntPatch_PrmPrmIntersection_T3BitsOfThePPInt IntPatch_PrmPrmIntersection_T3BitsOfThePPIntOfIntersection
- #define IntPatch_PrmPrmIntersection_T3BitsOfThePPInt_hxx <IntPatch_PrmPrmIntersection_T3BitsOfThePPIntOfIntersection.hxx>
--#define IntPatch_TheALineToWLine IntPatch_TheALineToWLineOfIntersection
--#define IntPatch_TheALineToWLine_hxx <IntPatch_TheALineToWLineOfIntersection.hxx>
- #define IntPatch_TheLineConstructor IntPatch_TheLineConstructorOfIntersection
- #define IntPatch_TheLineConstructor_hxx <IntPatch_TheLineConstructorOfIntersection.hxx>
- #define Handle_IntPatch_SequenceNodeOfSequenceOfPoint Handle_IntPatch_SequenceNodeOfSequenceOfPointOfIntersection
-@@ -392,6 +392,8 @@
- #undef IntPatch_TheWLine_hxx
- #undef IntPatch_TheRLine
- #undef IntPatch_TheRLine_hxx
-+#undef IntPatch_TheALineToWLine
-+#undef IntPatch_TheALineToWLine_hxx
- #undef IntPatch_TheArcFunction
- #undef IntPatch_TheArcFunction_hxx
- #undef IntPatch_TheSOnBounds
-@@ -472,8 +474,6 @@
- #undef IntPatch_ThePWalkingInterOfThePPInt_hxx
- #undef IntPatch_PrmPrmIntersection_T3BitsOfThePPInt
- #undef IntPatch_PrmPrmIntersection_T3BitsOfThePPInt_hxx
--#undef IntPatch_TheALineToWLine
--#undef IntPatch_TheALineToWLine_hxx
- #undef IntPatch_TheLineConstructor
- #undef IntPatch_TheLineConstructor_hxx
- #undef Handle_IntPatch_SequenceNodeOfSequenceOfPoint
-diff -Naur OpenCASCADE6.3.0/ros/inc/IntPatch_PrmPrmIntersection.gxx OpenCASCADE6.3.0sp6/ros/inc/IntPatch_PrmPrmIntersection.gxx
---- OpenCASCADE6.3.0/ros/inc/IntPatch_PrmPrmIntersection.gxx 2008-07-18 16:59:37.000000000 +0200
-+++ OpenCASCADE6.3.0sp6/ros/inc/IntPatch_PrmPrmIntersection.gxx 2009-10-03 01:02:19.000000000 +0200
-@@ -32,14 +32,14 @@
- Standard_Real& u2,
- Standard_Real& v2);
-
--//xf
-+
- static
- void AdjustOnPeriodic(const TheSurface& Surf1,
- const TheSurface& Surf2,
- IntPatch_SequenceOfLine& aSLin);
--//xt
-+
- //==================================================================================
--// function : Constructor
-+// function :
- // purpose :
- //==================================================================================
- IntPatch_PrmPrmIntersection::IntPatch_PrmPrmIntersection(): done(Standard_False)
-@@ -1677,8 +1677,7 @@
- }
- }
- }
-- //--printf("\n\n1 Dist3[0]=%5.5g,u3[0]=%5.5g,v3[0]=%5.5g , Dist3[1]=%5.5g,u3[1]=%5.5g,v3[1]=%5.5g ,Dist3[2]=%5.5g,u3[2]=%5.5g,v3[2]=%5.5g\n",
-- //-- Dist3[0],u3[0],v3[0] , Dist3[1],u3[1],v3[1] ,Dist3[2],u3[2],v3[2]);
-+ //
- Standard_Real U1_3 = (u3[0]+u3[1]+u3[2])/3.0;
- Standard_Real V1_3 = (v3[0]+v3[1]+v3[2])/3.0;
-
-@@ -1712,8 +1711,7 @@
- }
- }
- }
-- //printf("\n2 Dist3[0]=%5.5g,u3[0]=%5.5g,v3[0]=%5.5g , Dist3[1]=%5.5g,u3[1]=%5.5g,v3[1]=%5.5g ,Dist3[2]=%5.5g,u3[2]=%5.5g,v3[2]=%5.5g\n",
-- // Dist3[0],u3[0],v3[0] , Dist3[1],u3[1],v3[1] ,Dist3[2],u3[2],v3[2]);
-+ //
- Standard_Real U2_3 = (u3[0]+u3[1]+u3[2])/3.0;
- Standard_Real V2_3 = (v3[0]+v3[1]+v3[2])/3.0;
-
-@@ -1725,7 +1723,6 @@
- }
- }
- while(ok);
-- //-- cout<<"\n *** "<<Compt<<" Points de *1 ** 2* ds la grille UVP"<<ComptTrouve<<endl; Compt=0;
- }
-
- //==================================================================================
-@@ -1764,7 +1761,7 @@
- if (ClearFlag)
- SLin.Clear();
- // modified by NIZHNY-AMV Tue Oct 18 12:37:02 2005.END
--
-+ //
- //IntPolyh_Intersection Interference(Surf1,NbU1,NbV1,Surf2,NbU2,NbV2);
- // IntPolyh_Intersection Interference(Surf1, anUpars1, aVpars1,
- // Surf2, anUpars2, aVpars2);
-@@ -1775,15 +1772,16 @@
- pInterference = new IntPolyh_Intersection(Surf1,NbU1,NbV1,Surf2,NbU2,NbV2);
- }
- else {
-- pInterference = new IntPolyh_Intersection( Surf1, anUpars1, aVpars1,
-+ pInterference = new IntPolyh_Intersection(Surf1, anUpars1, aVpars1,
- Surf2, anUpars2, aVpars2 );
- }
- if ( !pInterference ) {
- done = Standard_False;
- return;
- }
-+ //
- IntPolyh_Intersection& Interference = *pInterference;
--
-+ //
- done = Interference.IsDone();
- if( !done ) {
- if ( pInterference ) {
-@@ -1792,7 +1790,7 @@
- }
- return;
- }
--
-+
- Standard_Real Deflection2 = Deflection*Deflection;
- Standard_Integer nbLigSec = Interference.NbSectionLines();
- Standard_Integer nbTanZon = Interference.NbTangentZones();
-@@ -1828,11 +1826,18 @@
- }
- }
- } while(triok==Standard_False);
--
-+ //
- for( ls = 1; ls <= nbLigSec; ls++) {
-- Standard_Integer nbp = Interference.NbPointsInLine(TabL[ls]);
-- Standard_Integer *TabPtDep = new Standard_Integer [nbp+1];
-- Standard_Integer ilig;
-+ Standard_Integer nbp, ilig, *TabPtDep;
-+ //
-+ nbp = Interference.NbPointsInLine(TabL[ls]);
-+ //modified by NIZNHY-PKV Fri Sep 5 15:19:28 2008f
-+ if (!nbp) {
-+ continue;
-+ }
-+ //modified by NIZNHY-PKV Fri Sep 5 15:19:31 2008t
-+ TabPtDep = new Standard_Integer [nbp+1];
-+ //
- for( ilig = 1; ilig <= nbp; ilig++ )
- TabPtDep[ilig]=0;
-
-@@ -1864,9 +1869,8 @@
- Standard_Integer nbps2 = (nbp>3)? (nbp/2) : 1;
- Standard_Integer NombreDePointsDeDepartDuCheminement = 0;
- Standard_Boolean lignetrouvee=Standard_False;
-- // const Standard_Integer NbDePointsDeDepartDuChmLimit = 3;
- const Standard_Integer NbDePointsDeDepartDuChmLimit = 5;
--
-+ //
- do {
- NombreDePointsDeDepartDuCheminement++;
- switch (NombreDePointsDeDepartDuCheminement) {
-@@ -1891,7 +1895,7 @@
- nbps2 = NombreDePointsDeDepartDuCheminement-3;
- NombreDePointsDeDepartDuCheminement++;
- }
--
-+ //
- if(TabPtDep[nbps2] == 0) {
- TabPtDep[nbps2] = 1;
- Interference.GetLinePoint(TabL[ls],nbps2,_x,_y,_z,U1,V1,U2,V2,incidence);
-@@ -1966,7 +1970,6 @@
- Standard_Boolean bPWIsDone;
- Standard_Integer iPWNbPoints, aNbPointsVer;
- Standard_Real aD11, aD12, aD21, aD22, aDx;
--
- //
- bPWIsDone=PW.IsDone();
- //xt
-@@ -2023,12 +2026,8 @@
- }
- }
- }
--// if(Point3dDebut.Distance(verPointDebut.Value()) <= TolTangency) {
--// if(Point3dFin.Distance(verPointFin.Value()) <= TolTangency)
--// RejetLigne = Standard_True;
--// }
- }
--
-+ //
- if(!RejetLigne) {
- IntSurf_TypeTrans trans1,trans2;
- Standard_Real locu,locv;
-@@ -2227,10 +2226,9 @@
- delete [] TabL;
-
- }// if nbLigSec >= 1
--
-- //xf
-+ //
- AdjustOnPeriodic(Surf1, Surf2, SLin);
-- //xt
-+ //
-
- //--------------------------------------------------------------------
- //-- Calcul des parametres approches a partir des Zones De Tangence --
-diff -Naur OpenCASCADE6.3.0/ros/inc/InterfaceGraphic_tgl_all.h OpenCASCADE6.3.0sp6/ros/inc/InterfaceGraphic_tgl_all.h
---- OpenCASCADE6.3.0/ros/inc/InterfaceGraphic_tgl_all.h 2003-02-04 07:34:21.000000000 +0100
-+++ OpenCASCADE6.3.0sp6/ros/inc/InterfaceGraphic_tgl_all.h 2009-10-03 01:02:23.000000000 +0200
-@@ -9,11 +9,16 @@
- #ifndef INTERFACEGRAPHIC_TGL_ALL_H
- #define INTERFACEGRAPHIC_TGL_ALL_H
-
--typedef int Tint;
--typedef float Tfloat;
--typedef char Tchar;
--typedef char Tbool;
--typedef unsigned int Tuint;
-+typedef int Tint;
-+typedef float Tfloat;
-+/* PCD 04/07/07 */
-+typedef double Tdouble;
-+/* Tchar is treated as a signed char in visualization code,
-+therefore it should be made signed explicitly, as on Linux
-+-funsigned-char option is specified when building OCCT */
-+typedef signed char Tchar;
-+typedef char Tbool;
-+typedef unsigned int Tuint;
-
- #define TGL_SP 1
- #define TGL_DP 0
-@@ -37,6 +42,7 @@
- #define TNotDone 0
-
- typedef Tfloat Tmatrix3[4][4];
-+
- typedef enum
- {
- TPreConcatenate,
-diff -Naur OpenCASCADE6.3.0/ros/inc/WNT_Window.hxx OpenCASCADE6.3.0sp6/ros/inc/WNT_Window.hxx
---- OpenCASCADE6.3.0/ros/inc/WNT_Window.hxx 2008-09-09 18:08:22.000000000 +0200
-+++ OpenCASCADE6.3.0sp6/ros/inc/WNT_Window.hxx 2009-10-03 01:03:31.000000000 +0200
-@@ -104,6 +104,12 @@
- //! Warning: The position and size for the creation of the window <br>
- //! are defined in Device Screen Unit (DSU) <br>
- //! floating [0,1] space. <br>
-+//! <br>
-+//! As 3D view window is the main purpose of this class, <br>
-+//! and 3D view does not need its background to be drawn <br>
-+//! by the system, by default the window background is not drawn. <br>
-+//! This can be overridden by calling ClearFlags( WDF_NOERASEBKGRND ). <br>
-+//! See also WNT_WndProc.cxx and InterfaceGraphic_WNT.hxx. <br>
- class WNT_Window : public Aspect_Window {
-
- public:
-@@ -256,9 +262,13 @@
- Standard_EXPORT void SetPos(const Standard_Integer X,const Standard_Integer Y,const Standard_Integer X1,const Standard_Integer Y1) ;
-
- //! Sets user defined flags in the extra window data area. <br>
-+//! Supported flags WDF_* are listed in InterfaceGraphic_WNT.hxx <br>
-+//! In particular, the window backround can be turned off using this method. <br>
- Standard_EXPORT void SetFlags(const Standard_Integer aFlags) ;
-
- //! Reset specified flags in the extra window data area. <br>
-+//! Supported flags WDF_* are listed in InterfaceGraphic_WNT.hxx <br>
-+//! In particular, the window backround can be turned on using this method. <br>
- Standard_EXPORT void ResetFlags(const Standard_Integer aFlags) ;
-
- //! Returns the BackingStore capability for this Window. <br>
-diff -Naur OpenCASCADE6.3.0/ros/src/Aspect/Aspect_GraphicCallbackProc.hxx OpenCASCADE6.3.0sp6/ros/src/Aspect/Aspect_GraphicCallbackProc.hxx
---- OpenCASCADE6.3.0/ros/src/Aspect/Aspect_GraphicCallbackProc.hxx 2003-05-30 18:55:57.000000000 +0200
-+++ OpenCASCADE6.3.0sp6/ros/src/Aspect/Aspect_GraphicCallbackProc.hxx 2009-10-03 01:03:55.000000000 +0200
-@@ -15,6 +15,13 @@
- #define OCC_REDRAW_WINDOWAREA 2
- #define OCC_REDRAW_BITMAP 3
-
-+/*
-+ This flag, when bitwise OR`ed with the "reason" value,
-+ informs the callback that it is called before redrawing the overlayer .
-+ Otherwise, the callback is invoked after the overlayer is redrawn.
-+*/
-+#define OCC_PRE_OVERLAY 0x8000
-+
- typedef struct {
- int reason;
- int wsID;
-diff -Naur OpenCASCADE6.3.0/ros/src/BOPTools/BOPTools_Tools.cxx OpenCASCADE6.3.0sp6/ros/src/BOPTools/BOPTools_Tools.cxx
---- OpenCASCADE6.3.0/ros/src/BOPTools/BOPTools_Tools.cxx 2004-08-06 19:11:25.000000000 +0200
-+++ OpenCASCADE6.3.0sp6/ros/src/BOPTools/BOPTools_Tools.cxx 2009-10-03 01:03:55.000000000 +0200
-@@ -464,16 +464,27 @@
- //
- aNewSR=aSR;
- //
-+ //modified by NIZNHY-PKV Tue Feb 10 08:47:03 2009f
-+ aBC.Initialize(aE1);
-+ aCT=aBC.GetType();
-+ if (aCT==GeomAbs_Line) {
-+ return;
-+ }
-+ //modified by NIZNHY-PKV Tue Feb 10 08:47:06 2009t
-+ //
- dT=Precision::PConfusion();
- aTF=aSR.First();
- aTL=aSR.Last();
- //
-+ //modified by NIZNHY-PKV Tue Feb 10 08:47:39 2009f
-+ /*
- aBC.Initialize(aE1);
- aCT=aBC.GetType();
-+ */
-+ //modified by NIZNHY-PKV Tue Feb 10 08:47:43 2009t
- //
- aTolE1=BRep_Tool::Tolerance(aE1);
- aTolE2=BRep_Tool::Tolerance(aE2);
--
- //
- for(i=0; i<2; ++i) {
- aRes = 2.*(aTolE1 + aTolE2);
-diff -Naur OpenCASCADE6.3.0/ros/src/BOPTools/BOPTools_Tools3D_1.cxx OpenCASCADE6.3.0sp6/ros/src/BOPTools/BOPTools_Tools3D_1.cxx
---- OpenCASCADE6.3.0/ros/src/BOPTools/BOPTools_Tools3D_1.cxx 2008-05-08 15:08:45.000000000 +0200
-+++ OpenCASCADE6.3.0sp6/ros/src/BOPTools/BOPTools_Tools3D_1.cxx 2009-10-03 01:03:55.000000000 +0200
-@@ -106,7 +106,6 @@
- //
- aETol = BRep_Tool::Tolerance(aE);
- aFTol = BRep_Tool::Tolerance(aF);
-- //modified by NIZNHY-PKV Fri Mar 28 15:09:30 2008f
- // pkv NPAL19220
- GeomAdaptor_Surface aGAS(aS);
- aTS=aGAS.GetType();
-@@ -115,12 +114,10 @@
- aFTol=aETol;
- }
- }
-- //modified by NIZNHY-PKV Fri Mar 28 15:09:43 2008t
-- if( aETol > 1.e-5 && aFTol > 1.e-5 ) {
-- //modified by NIZNHY-PKV Fri Mar 28 15:09:52 2008f
-- //GeomAdaptor_Surface aGAS(aS);
-- //aTS=aGAS.GetType();
-- //modified by NIZNHY-PKV Fri Mar 28 15:10:01 2008t
-+ //modified by NIZNHY-PKV Thu Mar 19 14:15:15 2009f
-+ if( aETol > 1.e-5 || aFTol > 1.e-5 ) {
-+ //if( aETol > 1.e-5 && aFTol > 1.e-5 ) {
-+ //modified by NIZNHY-PKV Thu Mar 19 14:15:24 2009t
- //pkv/103/D7
- if(aTS!=GeomAbs_Sphere) {
- gp_Vec2d transVec( aDP );
-diff -Naur OpenCASCADE6.3.0/ros/src/BRep/BRep_Tool.cxx OpenCASCADE6.3.0sp6/ros/src/BRep/BRep_Tool.cxx
---- OpenCASCADE6.3.0/ros/src/BRep/BRep_Tool.cxx 2008-06-27 17:50:44.000000000 +0200
-+++ OpenCASCADE6.3.0sp6/ros/src/BRep/BRep_Tool.cxx 2009-10-03 01:03:55.000000000 +0200
-@@ -28,6 +28,7 @@
- #include <ElSLib.hxx>
- #include <Geom_Plane.hxx>
- #include <Geom_RectangularTrimmedSurface.hxx>
-+#include <Geom_OffsetSurface.hxx>
- #include <Geom_TrimmedCurve.hxx>
- #include <Geom2d_TrimmedCurve.hxx>
- #include <ProjLib_ProjectedCurve.hxx>
-@@ -41,6 +42,11 @@
- #include <Poly_Polygon2D.hxx>
- #include <Poly_PolygonOnTriangulation.hxx>
-
-+//modified by NIZNHY-PKV Fri Oct 17 14:13:29 2008f
-+static
-+ Standard_Boolean IsPlane(const Handle(Geom_Surface)& aS);
-+//modified by NIZNHY-PKV Fri Oct 17 14:13:33 2008t
-+//
- //=======================================================================
- //function : Surface
- //purpose : Returns the geometric surface of the face. Returns
-@@ -698,6 +704,12 @@
- const Handle(Geom_Surface)& S,
- const TopLoc_Location& L)
- {
-+ //modified by NIZNHY-PKV Fri Oct 17 12:16:58 2008f
-+ if (IsPlane(S)) {
-+ return Standard_False;
-+ }
-+ //modified by NIZNHY-PKV Fri Oct 17 12:16:54 2008t
-+ //
- TopLoc_Location l = L.Predivided(E.Location());
-
- // find the representation
-@@ -1496,13 +1508,11 @@
- Standard_NoSuchObject::Raise("BRep_Tool:: no parameters on surface");
- return gp_Pnt2d(0,0);
- }
--
- //=======================================================================
- //function : IsClosed
- //purpose : Returns <True> if S if flaged Closed, if S is a
- // Solid,Shell or Compound returns <True> is S has no free boundaries.
- //=======================================================================
--
- Standard_Boolean BRep_Tool::IsClosed(const TopoDS_Shape& S)
- {
- if (S.ShapeType() == TopAbs_SHELL || S.ShapeType() == TopAbs_SOLID ||
-@@ -1519,3 +1529,33 @@
- }
- return (S.Closed());
- }
-+
-+//modified by NIZNHY-PKV Fri Oct 17 14:09:58 2008 f
-+//=======================================================================
-+//function : IsPlane
-+//purpose :
-+//=======================================================================
-+Standard_Boolean IsPlane(const Handle(Geom_Surface)& aS)
-+{
-+ Standard_Boolean bRet;
-+ Handle(Geom_Plane) aGP;
-+ Handle(Geom_RectangularTrimmedSurface) aGRTS;
-+ Handle(Geom_OffsetSurface) aGOFS;
-+ //
-+ aGRTS=Handle(Geom_RectangularTrimmedSurface)::DownCast(aS);
-+ aGOFS=Handle(Geom_OffsetSurface)::DownCast(aS);
-+ //
-+ if(!aGOFS.IsNull()) {
-+ aGP=Handle(Geom_Plane)::DownCast(aGOFS->BasisSurface());
-+ }
-+ else if(!aGRTS.IsNull()) {
-+ aGP=Handle(Geom_Plane)::DownCast(aGRTS->BasisSurface());
-+ }
-+ else {
-+ aGP=Handle(Geom_Plane)::DownCast(aS);
-+ }
-+ //
-+ bRet=!aGP.IsNull();
-+ //
-+ return bRet;
-+}
-diff -Naur OpenCASCADE6.3.0/ros/src/BRepBuilderAPI/BRepBuilderAPI_Sewing.cxx OpenCASCADE6.3.0sp6/ros/src/BRepBuilderAPI/BRepBuilderAPI_Sewing.cxx
---- OpenCASCADE6.3.0/ros/src/BRepBuilderAPI/BRepBuilderAPI_Sewing.cxx 2006-08-11 19:00:41.000000000 +0200
-+++ OpenCASCADE6.3.0sp6/ros/src/BRepBuilderAPI/BRepBuilderAPI_Sewing.cxx 2009-10-03 08:33:16.000000000 +0200
-@@ -4331,11 +4331,17 @@
- Standard_Real first2d=0., last2d=0.,first2d1=0,last2d1=0.;
- Handle(Geom2d_Curve) c2d = BRep_Tool::CurveOnSurface(sec, fac, first2d, last2d);
- if (c2d.IsNull()) continue;
--
-+ Handle(Geom2d_Curve) c2d1;
- Standard_Boolean isSeam = BRep_Tool::IsClosed(sec,fac);
-+
-+ //gka - Convert to BSpline was commented because
-+ //it is not necessary to create BSpline instead of Lines or cIrcles.
-+ //Besides after conversion circles to BSpline
-+ //it is necessary to recompute parameters of cutting because paramerization of created
-+ //BSpline curve differs from parametrization of circle.
-
- // Convert pcurve to BSpline
-- Handle(Geom2d_BSplineCurve) c2dBSP,c2dBSP1;
-+ /*Handle(Geom2d_BSplineCurve) c2dBSP,c2dBSP1;
- if (c2d->IsKind(STANDARD_TYPE(Geom2d_BSplineCurve))) {
- c2dBSP = Handle(Geom2d_BSplineCurve)::DownCast(c2d);
- }
-@@ -4347,34 +4353,37 @@
- }
- else c2dBSP = Geom2dConvert::CurveToBSplineCurve(c2d);
- }
-- if (c2dBSP.IsNull()) continue;
-+ if (c2dBSP.IsNull()) continue;*/
- //gka fix for bug OCC12203 21.04.06 addition second curve for seam edges
-+
- if(isSeam)
- {
- TopoDS_Edge secRev = TopoDS::Edge(sec.Reversed());
-
-- Handle(Geom2d_Curve) c2d1 = BRep_Tool::CurveOnSurface(secRev, fac, first2d1, last2d1);
-+ c2d1 = BRep_Tool::CurveOnSurface(secRev, fac, first2d1, last2d1);
- if (c2d1.IsNull()) continue;
-- if (c2d1->IsKind(STANDARD_TYPE(Geom2d_BSplineCurve))) {
-+
-+ /*if (c2d1->IsKind(STANDARD_TYPE(Geom2d_BSplineCurve))) {
- c2dBSP1 = Handle(Geom2d_BSplineCurve)::DownCast(c2d1);
- }
- else {
- if (first > (c2d1->FirstParameter() + Precision::PConfusion()) ||
- last < (c2d1->LastParameter() - Precision::PConfusion())) {
- Handle(Geom2d_TrimmedCurve) TC = new Geom2d_TrimmedCurve(c2d1, first, last);
-- c2dBSP1 = Geom2dConvert::CurveToBSplineCurve(TC);
-+ //c2dBSP1 = Geom2dConvert::CurveToBSplineCurve(TC);
- }
-- else c2dBSP1 = Geom2dConvert::CurveToBSplineCurve(c2d);
-+ //else c2dBSP1 = Geom2dConvert::CurveToBSplineCurve(c2d);
-
-- }
-+ }*/
- }
-
-- first2d = c2dBSP->FirstParameter();
-+ /*first2d = c2dBSP->FirstParameter();
- last2d = c2dBSP->LastParameter();
-+
- if(!c2dBSP1.IsNull()) {
- first2d1 = c2dBSP1->FirstParameter();
- last2d1 = c2dBSP1->LastParameter();
-- }
-+ }*/
-
- // Update cutting sections
- Handle(Geom2d_Curve) c2dNew,c2d1New;
-@@ -4386,23 +4395,24 @@
- BRep_Tool::Range(edge, par1, par2);
-
- // Cut BSpline pcurve
-- try {
--
-- c2dNew = Handle(Geom2d_Curve)::DownCast(c2dBSP->Copy());
-- Handle(Geom2d_BSplineCurve)::DownCast(c2dNew)->Segment(Max(first2d,par1),Min(par2,last2d));
-- if(!c2dBSP1.IsNull()) {
-- c2d1New = Handle(Geom2d_Curve)::DownCast(c2dBSP1->Copy());
-- Handle(Geom2d_BSplineCurve)::DownCast(c2d1New)->Segment(Max(first2d1,par1),Min(par2,last2d1));
-+ // try {
-+ c2dNew = Handle(Geom2d_Curve)::DownCast(c2d->Copy());
-+ //c2dNew = Handle(Geom2d_Curve)::DownCast(c2dBSP->Copy());
-+ //Handle(Geom2d_BSplineCurve)::DownCast(c2dNew)->Segment(Max(first2d,par1),Min(par2,last2d));
-+ if(!c2d1.IsNull()) { //if(!c2dBSP1.IsNull()) {
-+ c2d1New = Handle(Geom2d_Curve)::DownCast(c2d1->Copy());
-+ //c2d1New = Handle(Geom2d_Curve)::DownCast(c2dBSP1->Copy());
-+ //Handle(Geom2d_BSplineCurve)::DownCast(c2d1New)->Segment(Max(first2d1,par1),Min(par2,last2d1));
- }
-- }
-- catch (Standard_Failure) {
-+ //}
-+ /*catch (Standard_Failure) {
- #ifdef DEB
- cout << "Exception in CreateSections: segment [" << par1 << "," << par2 << "]: ";
- Standard_Failure::Caught()->Print(cout); cout << endl;
- #endif
- Handle(Geom2d_TrimmedCurve) c2dT = new Geom2d_TrimmedCurve(c2dNew,Max(first2d,par1),Min(par2,last2d));
- c2dNew = c2dT;
-- }
-+ }*/
-
-
- if(!isSeam && c2d1New.IsNull())
-diff -Naur OpenCASCADE6.3.0/ros/src/BRepFill/BRepFill_CompatibleWires.cxx OpenCASCADE6.3.0sp6/ros/src/BRepFill/BRepFill_CompatibleWires.cxx
---- OpenCASCADE6.3.0/ros/src/BRepFill/BRepFill_CompatibleWires.cxx 2006-12-08 17:05:41.000000000 +0100
-+++ OpenCASCADE6.3.0sp6/ros/src/BRepFill/BRepFill_CompatibleWires.cxx 2009-10-03 01:03:56.000000000 +0200
-@@ -562,7 +562,38 @@
- }
- }
-
-+static void BuildConnectedEdges(const TopoDS_Wire& aWire,
-+ const TopoDS_Edge& StartEdge,
-+ const TopoDS_Vertex& StartVertex,
-+ TopTools_ListOfShape& ConnectedEdges)
-+{
-+ TopTools_IndexedDataMapOfShapeListOfShape MapVE;
-+ TopExp::MapShapesAndAncestors(aWire, TopAbs_VERTEX, TopAbs_EDGE, MapVE);
-+ TopoDS_Edge CurEdge = StartEdge;
-+ TopoDS_Vertex CurVertex = StartVertex;
-+ TopoDS_Vertex Origin, V1, V2;
-+ TopExp::Vertices(StartEdge, V1, V2);
-+ Origin = (V1.IsSame(StartVertex))? V2 : V1;
-
-+ for (;;)
-+ {
-+ TopTools_ListIteratorOfListOfShape itE( MapVE.FindFromKey(CurVertex) );
-+ for (; itE.More(); itE.Next())
-+ {
-+ TopoDS_Edge anEdge = TopoDS::Edge(itE.Value());
-+ if (!anEdge.IsSame(CurEdge))
-+ {
-+ ConnectedEdges.Append(anEdge);
-+ TopExp::Vertices(anEdge, V1, V2);
-+ CurVertex = (V1.IsSame(CurVertex))? V2 : V1;
-+ CurEdge = anEdge;
-+ break;
-+ }
-+ }
-+ if (CurVertex.IsSame(Origin))
-+ break;
-+ }
-+}
-
- //=======================================================================
- //function : BRepFill_CompatibleWires
-@@ -994,34 +1025,32 @@
-
- BRepLib_MakeWire MW;
-
-- for(anExp.Init(wire); anExp.More(); anExp.Next()) {
--
-- TopoDS_Edge ECur = anExp.Current();
-- TopoDS_Vertex VF,VL;
-- TopExp::Vertices(ECur,VF,VL,Standard_True);
-- Standard_Real U1 = BRep_Tool::Parameter(VF,ECur);
-- Standard_Real U2 = BRep_Tool::Parameter(VL,ECur);
-- BRepAdaptor_Curve Curve(ECur);
-- gp_Pnt PPs = Curve.Value(0.1*(U1+9*U2));
-- TopTools_ListIteratorOfListOfShape itF(MapVLV(VF)),itL(MapVLV(VL));
-- Standard_Integer rang = ideb;
-- while (rang < i) {
-- itF.Next();
-- itL.Next();
-- rang++;
-- }
-- TopoDS_Vertex V1 = TopoDS::Vertex(itF.Value()),
-- V2 = TopoDS::Vertex(itL.Value());
-- TopoDS_Edge Esol;
-- Standard_Real scalmax=0.;
-- BRepTools_WireExplorer anExp2;
--
-- for(anExp2.Init(TopoDS::Wire(myWork(i))); anExp2.More(); anExp2.Next()) {
--
-- TopoDS_Edge E = TopoDS::Edge(anExp2.Current());
-+ anExp.Init(wire);
-+ TopoDS_Edge ECur = anExp.Current();
-+ TopoDS_Vertex VF,VL;
-+ TopExp::Vertices(ECur,VF,VL,Standard_True);
-+ Standard_Real U1 = BRep_Tool::Parameter(VF,ECur);
-+ Standard_Real U2 = BRep_Tool::Parameter(VL,ECur);
-+ BRepAdaptor_Curve Curve(ECur);
-+ gp_Pnt PPs = Curve.Value(0.1*(U1+9*U2));
-+ TopTools_ListIteratorOfListOfShape itF(MapVLV(VF)),itL(MapVLV(VL));
-+ Standard_Integer rang = ideb;
-+ while (rang < i) {
-+ itF.Next();
-+ itL.Next();
-+ rang++;
-+ }
-+ TopoDS_Vertex V1 = TopoDS::Vertex(itF.Value()), V2 = TopoDS::Vertex(itL.Value());
-+ TopoDS_Edge Esol;
-+ Standard_Real scalmax=0.;
-+ TopoDS_Iterator itW( myWork(i) );
-+
-+ for(; itW.More(); itW.Next())
-+ {
-+ TopoDS_Edge E = TopoDS::Edge(itW.Value());
- TopoDS_Vertex VVF,VVL;
- TopExp::Vertices(E,VVF,VVL,Standard_True);
--
-+
- // tri des edges candidates
- Standard_Real scal1,scal2;
- if ( (V1.IsSame(VVF)&&V2.IsSame(VVL)) || (V2.IsSame(VVF)&&V1.IsSame(VVL)) ) {
-@@ -1055,17 +1084,59 @@
- scalmax = scal2;
- TopoDS_Shape aLocalShape = E.Reversed();
- Esol = TopoDS::Edge(aLocalShape);
--// Esol = TopoDS::Edge(E.Reversed());
- }
--
- }
-+ if (!Esol.IsNull())
-+ break;
- }
-- MW.Add(Esol);
-+ MW.Add(Esol);
-+
-+ TopTools_ListOfShape ConnectedEdges;
-+ BuildConnectedEdges( TopoDS::Wire(myWork(i)), Esol, V2, ConnectedEdges );
-+
-+ TopTools_ListIteratorOfListOfShape itCE(ConnectedEdges);
-+ for(; anExp.More(), itCE.More(); anExp.Next(), itCE.Next())
-+ {
-+ ECur = anExp.Current();
-+ TopExp::Vertices(ECur,VF,VL,Standard_True);
-+ U1 = BRep_Tool::Parameter(VF,ECur);
-+ U2 = BRep_Tool::Parameter(VL,ECur);
-+ Curve.Initialize(ECur);
-+ PPs = Curve.Value(0.1*(U1+9*U2));
-
-- }
-+ TopoDS_Edge E = TopoDS::Edge(itCE.Value());
-+ TopoDS_Vertex VVF,VVL;
-+ TopExp::Vertices(E,VVF,VVL,Standard_True);
-
-+ // tri des edges candidates
-+ Standard_Real scal1,scal2;
-+ U1 = BRep_Tool::Parameter(VVF,E);
-+ U2 = BRep_Tool::Parameter(VVL,E);
-+ Curve.Initialize(E);
-+ gp_Pnt PP1 = Curve.Value(0.1*(U1+9*U2));
-+ gp_Pnt PP2 = Curve.Value(0.1*(9*U1+U2));
-+
-+ for (rang=i;rang>ideb;rang--) {
-+ Transform(WithRotation, PP1,
-+ Pos->Value(rang), Axe->Value(rang),
-+ Pos->Value(rang-1), Axe->Value(rang-1), PP1);
-+ Transform(WithRotation, PP2,
-+ Pos->Value(rang), Axe->Value(rang),
-+ Pos->Value(rang-1), Axe->Value(rang-1), PP2);
-+ }
-+ gp_Vec Ns(Pos->Value(ideb),PPs);
-+ Ns = Ns.Normalized();
-+ gp_Vec N1(Pos->Value(ideb),PP1);
-+ N1 = N1.Normalized();
-+ gp_Vec N2(Pos->Value(ideb),PP2);
-+ N2 = N2.Normalized();
-+ scal1 = N1.Dot(Ns);
-+ scal2 = N2.Dot(Ns);
-+ if (scal2>scal1)
-+ E.Reverse();
-+ MW.Add(E);
-+ }
- myWork(i) = MW.Wire();
--
- }
-
- // sections bouclantes ?
-diff -Naur OpenCASCADE6.3.0/ros/src/BRepFill/BRepFill_Sweep.cdl OpenCASCADE6.3.0sp6/ros/src/BRepFill/BRepFill_Sweep.cdl
---- OpenCASCADE6.3.0/ros/src/BRepFill/BRepFill_Sweep.cdl 2003-05-30 18:54:10.000000000 +0200
-+++ OpenCASCADE6.3.0sp6/ros/src/BRepFill/BRepFill_Sweep.cdl 2009-10-03 01:03:56.000000000 +0200
-@@ -69,7 +69,7 @@
- Transition : TransitionStyle = BRepFill_Modified;
- Approx : ApproxStyle = GeomFill_Location;
- Continuity : Shape from GeomAbs = GeomAbs_C2;
-- Degmax : Integer = 10;
-+ Degmax : Integer = 11;
- Segmax : Integer = 30);
-
- ---Purpose: Build the Sweeep Surface
-@@ -87,19 +87,16 @@
- -- Segmax : The maximum number of span in v requiered on
- -- the surface.
-
-+ CorrectApproxParameters(me: in out)
-+ returns Boolean is private;
-+
- BuildWire(me : in out;
-- Transition : TransitionStyle;
-- Approx : ApproxStyle;
-- Continuity : Shape from GeomAbs;
-- Degmax, Segmax : Integer)
-+ Transition : TransitionStyle)
- returns Boolean is private;
-
- BuildShell(me : in out;
- Transition : TransitionStyle;
- Vf, Vl : Integer;
-- Approx : ApproxStyle;
-- Continuity : Shape from GeomAbs;
-- Degmax, Segmax : Integer;
- ExtendFirst : Real = 0.0;
- ExtendLast : Real = 0.0)
- returns Boolean is private;
-@@ -153,7 +150,11 @@
- myTol2d : Real;
- myTolAngular : Real;
- myAngMin : Real;
-- myAngMax : Real;
-+ myAngMax : Real;
-+ myApproxStyle : ApproxStyle from GeomFill;
-+ myContinuity : Shape from GeomAbs;
-+ myDegmax : Integer;
-+ mySegmax : Integer;
- myShape : Shape from TopoDS;
- myLoc : LocationLaw from BRepFill;
- mySec : SectionLaw from BRepFill;
-diff -Naur OpenCASCADE6.3.0/ros/src/BRepFill/BRepFill_Sweep.cxx OpenCASCADE6.3.0sp6/ros/src/BRepFill/BRepFill_Sweep.cxx
---- OpenCASCADE6.3.0/ros/src/BRepFill/BRepFill_Sweep.cxx 2007-02-09 18:14:09.000000000 +0100
-+++ OpenCASCADE6.3.0sp6/ros/src/BRepFill/BRepFill_Sweep.cxx 2009-10-03 01:03:56.000000000 +0200
-@@ -1667,6 +1667,11 @@
- SetTolerance(1.e-4);
- SetAngularControl();
- myAuxShape.Clear();
-+
-+ myApproxStyle = GeomFill_Location;
-+ myContinuity = GeomAbs_C2;
-+ myDegmax = 11;
-+ mySegmax = 30;
- }
-
- //=======================================================================
-@@ -1734,16 +1739,43 @@
- myAngMax = Min (MaxAngle, 6.28);
- }
-
-+///=======================================================================
-+//function : CorrectApproxParameters
-+//purpose :
-+//=======================================================================
-+ Standard_Boolean BRepFill_Sweep::CorrectApproxParameters()
-+{
-+ TopoDS_Wire thePath = myLoc->Wire();
-+ GeomAbs_Shape NewCont = myContinuity;
-+ Standard_Integer NewSegmax = mySegmax;
-+
-+ TopoDS_Iterator iter(thePath);
-+ for (; iter.More(); iter.Next())
-+ {
-+ TopoDS_Edge anEdge = TopoDS::Edge(iter.Value());
-+ BRepAdaptor_Curve aBAcurve(anEdge);
-+ GeomAbs_Shape aContinuity = aBAcurve.Continuity();
-+ Standard_Integer aNbInterv = aBAcurve.NbIntervals(GeomAbs_CN);
-+ if (aContinuity < NewCont)
-+ NewCont = aContinuity;
-+ if (aNbInterv > NewSegmax)
-+ NewSegmax = aNbInterv;
-+ }
-+
-+ Standard_Boolean Corrected = Standard_False;
-+ if (NewCont != myContinuity || NewSegmax != mySegmax)
-+ Corrected = Standard_True;
-+ myContinuity = NewCont;
-+ mySegmax = NewSegmax;
-+ return Corrected;
-+}
-+
- //=======================================================================
- //function : BuildWire
- //purpose : Construit un wire par balayage
- //======================================================================
-- Standard_Boolean
-- BRepFill_Sweep::BuildWire(const BRepFill_TransitionStyle Transition,
-- const GeomFill_ApproxStyle Approx,
-- const GeomAbs_Shape Continuity,
-- const Standard_Integer Degmax,
-- const Standard_Integer Segmax)
-+ Standard_Boolean BRepFill_Sweep::
-+ BuildWire(const BRepFill_TransitionStyle Transition)
- {
- Standard_Integer ipath, isec = 1;
- gp_Pnt P1;//, P2;
-@@ -1775,7 +1807,7 @@
- // Courbe par iso valeur
- GeomFill_Sweep Sweep(myLoc->Law(ipath), KPart);
- Sweep.SetTolerance(myTol3d, myBoundTol, myTol2d, myTolAngular);
-- Sweep.Build(mySec->Law(isec), Approx, Continuity, Degmax, Segmax);
-+ Sweep.Build(mySec->Law(isec), myApproxStyle, myContinuity, myDegmax, mySegmax);
- if (!Sweep.IsDone())
- return Standard_False;
- S = Sweep.Surface();
-@@ -1871,10 +1903,6 @@
- BuildShell(const BRepFill_TransitionStyle Transition,
- const Standard_Integer IFirst,
- const Standard_Integer ILast,
-- const GeomFill_ApproxStyle Approx,
-- const GeomAbs_Shape Continuity,
-- const Standard_Integer Degmax,
-- const Standard_Integer Segmax,
- const Standard_Real ExtendFirst,
- const Standard_Real ExtendLast)
- {
-@@ -1955,7 +1983,7 @@
- }
-
- for(isec=1; isec<=NbLaw; isec++) {
-- Sweep.Build(mySec->Law(isec), Approx, Continuity, Degmax, Segmax);
-+ Sweep.Build(mySec->Law(isec), myApproxStyle, myContinuity, myDegmax, mySegmax);
- if (!Sweep.IsDone())
- return Standard_False;
- TabS(isec,ipath) = Sweep.Surface();
-@@ -2448,9 +2476,16 @@
- const Standard_Integer Degmax,
- const Standard_Integer Segmax)
- {
-+ myApproxStyle = Approx;
-+ myContinuity = Continuity;
-+ myDegmax = Degmax;
-+ mySegmax = Segmax;
-+
-+ CorrectApproxParameters();
-+
- // Wire
-- if (mySec->IsVertex()) isDone = BuildWire(Transition, Approx, Continuity,
-- Degmax, Segmax);
-+ if (mySec->IsVertex()) isDone = BuildWire(Transition);
-+
- else { // Shell
- Standard_Integer NbTrous = myLoc->NbHoles(myTol3d),
- NbPath = myLoc->NbLaw(),
-@@ -2476,8 +2511,7 @@
- if (NbTrous==1) Extend = EvalExtrapol(1, Transition);
- isDone = BuildShell(Transition,
- 1, NbPath+1,
-- Approx, Continuity,
-- Degmax, Segmax, Extend, Extend);
-+ Extend, Extend);
- }
- else { // On le fait bout par bout
- Standard_Integer IFirst = 1, ILast;
-@@ -2487,8 +2521,6 @@
- else ILast = Trous->Value(ii);
- isDone = BuildShell(Transition,
- IFirst, ILast,
-- Approx, Continuity,
-- Degmax, Segmax,
- EvalExtrapol(IFirst, Transition),
- EvalExtrapol(ILast, Transition));
- if (IFirst>1) {
-diff -Naur OpenCASCADE6.3.0/ros/src/BRepMesh/BRepMesh_FastDiscret.cdl OpenCASCADE6.3.0sp6/ros/src/BRepMesh/BRepMesh_FastDiscret.cdl
---- OpenCASCADE6.3.0/ros/src/BRepMesh/BRepMesh_FastDiscret.cdl 2008-07-25 16:03:13.000000000 +0200
-+++ OpenCASCADE6.3.0sp6/ros/src/BRepMesh/BRepMesh_FastDiscret.cdl 2009-10-03 01:03:56.000000000 +0200
-@@ -145,16 +145,6 @@
- returns Boolean;
-
-
-- InternalVerticesForRectangle
-- (me : mutable;
-- caro : HSurface from BRepAdaptor;
-- inter : in out ListOfVertex from BRepMesh;
-- u1pars : ListOfReal from TColStd;
-- u2pars : ListOfReal from TColStd;
-- v1pars : ListOfReal from TColStd;
-- v2pars : ListOfReal from TColStd)
-- is static private;
--
- InternalVertices
- (me : mutable;
- caro : HSurface from BRepAdaptor;
-diff -Naur OpenCASCADE6.3.0/ros/src/BRepMesh/BRepMesh_FastDiscret.cxx OpenCASCADE6.3.0sp6/ros/src/BRepMesh/BRepMesh_FastDiscret.cxx
---- OpenCASCADE6.3.0/ros/src/BRepMesh/BRepMesh_FastDiscret.cxx 2008-08-15 15:54:05.000000000 +0200
-+++ OpenCASCADE6.3.0sp6/ros/src/BRepMesh/BRepMesh_FastDiscret.cxx 2009-10-03 01:03:56.000000000 +0200
-@@ -280,6 +280,7 @@
- TopTools_SequenceOfShape aShSeq;
-
- TopoDS_Iterator exW(face);
-+
- for (; exW.More(); exW.Next()) {
- const TopoDS_Shape& aWire = exW.Value();
- if (aWire.ShapeType() != TopAbs_WIRE)
-@@ -623,39 +624,14 @@
- myUParam.Clear(); myVParam.Clear();
-
- BRepMesh_IDMapOfNodeOfDataStructureOfDelaun aMoveNodes(myvemap.Extent());
-- //cout << "UVparam" << endl;
-- Standard_Real eps = Precision::PConfusion();
-- Standard_Integer nbu1 = 0, nbu2 = 0, nbv1 = 0, nbv2 = 0, nbtot = 0;
-- Standard_Boolean IsRectangle = Standard_False;
-- TColStd_ListOfReal U1Params, U2Params, V1Params, V2Params;
-
- for (i = 1; i <= structure->NbNodes(); i++)
- {
- const BRepMesh_Vertex& v = structure->GetNode(i);
- p2d = v.Coord();
- if (useUVParam) {
-- //cout << p2d.X() << " " << p2d.Y() << endl;
-- Standard_Real u = p2d.X(), v = p2d.Y();
-- myUParam.Add(u);
-- myVParam.Add(v);
--
-- ++nbtot;
-- if(Abs(u - myumin) <= eps) {
-- ++nbu1;
-- V1Params.Append(v);
-- }
-- if(Abs(u - myumax) <= eps) {
-- ++nbu2;
-- V2Params.Append(v);
-- }
-- if(Abs(v - myvmin) <= eps) {
-- ++nbv1;
-- U1Params.Append(u);
-- }
-- if(Abs(v - myvmax) <= eps) {
-- ++nbv2;
-- U2Params.Append(u);
-- }
-+ myUParam.Add(p2d.X());
-+ myVParam.Add(p2d.Y());
- }
- gp_XY res;
- res.SetCoord((p2d.X()-minX)/deltaX,(p2d.Y()-minY)/deltaY);
-@@ -666,12 +642,6 @@
- }
- structure->ReplaceNodes(aMoveNodes);
-
-- if(useUVParam) {
-- Standard_Integer nb = nbu1 + nbu2 + nbv1 + nbv2 - 4;
-- if((nbu1 == nbu2) && (nbv1 == nbv2) && (nbtot == nb)) IsRectangle = Standard_True;
-- }
--
--
- Standard_Boolean rajout;
-
- switch (thetype)
-@@ -719,14 +689,9 @@
- }
-
- if(rajout){
-- if(IsRectangle) {
-- InternalVerticesForRectangle(gFace, mylistver, U1Params, U2Params, V1Params, V2Params);
-- }
-- else {
-- InternalVertices(gFace, mylistver, defface,*classifier);
-- }
-+ InternalVertices(gFace, mylistver, defface,*classifier);
-
-- if (mylistver.Extent() > 0) {
-+ if (mylistver.Extent() > 0) {
- BRepMesh_Array1OfVertexOfDelaun verttab(1, mylistver.Extent());
- BRepMesh_ListIteratorOfListOfVertex itVer(mylistver);
- ipn = 1;
-@@ -1909,78 +1874,73 @@
-
- // Sort sequence of U parameters
- TColStd_SequenceOfReal ParamU;
-- ParamU.Append(myumin); ParamU.Append(myumax);
-- Standard_Integer ParamULength = 2;
-+ Standard_Integer ParamULength = 1;
- const Standard_Integer LenU = myUParam.Extent();
-- const Standard_Real ddu = 0.02*(myumax-myumin);
-+
-+ Standard_Real ddu = caro->UResolution(defface);
-
- Standard_Real U1, U2;
-
-+ TColStd_Array1OfReal uprs(1, LenU);
- for (j = 1; j <= LenU; j++)
- {
-- pp = myUParam(j);
-+ uprs(j) = myUParam(j);
-+ }
-+ SortTools_ShellSortOfReal aSorter;
-+ TCollection_CompareOfReal aCompare;
-+ aSorter.Sort(uprs, aCompare);
-
-- U1 = ParamU.Value(1);
-- for (i = 2; i <= ParamULength; i++)
-+ U1 = uprs(1);
-+ ParamU.Append(U1);
-+ for (j = 2; j <= LenU; j++)
-+ {
-+ U2 = uprs(j);
-+ if ((U2-U1) > ddu)
- {
-- U2 = ParamU.Value(i);
-- if (pp < U2)
-- {
-- if ((U2-pp) < ddu)
-- {
-- ParamU(i) = pp;
-- }
-- else if ((pp-U1) > ddu)
-- {
-- ParamU.InsertBefore(i, pp);
-- ParamULength++;
-- }
-- else if (i != 2)
-- {
-- ParamU(i-1) = pp;
-- }
-- break;
-- }
-+ ParamU.Append(U2);
- U1 = U2;
-+ ParamULength++;
- }
- }
--
-+ if(uprs(LenU)-ParamU(ParamULength)>Precision::Confusion())
-+ {
-+ ParamU.Append(uprs(LenU));
-+ ParamULength++;
-+ }
-+
- // Sort sequence of V parameters
- TColStd_SequenceOfReal ParamV;
-- ParamV.Append(myvmin); ParamV.Append(myvmax);
-- Standard_Integer ParamVLength = 2;
-+ Standard_Integer ParamVLength = 1;
- const Standard_Integer LenV = myVParam.Extent();
-- const Standard_Real ddv = 0.02*(myvmax-myvmin);
-+
-+ Standard_Real ddv = caro->VResolution(defface);
-
- Standard_Real V1, V2;
-+
-+ TColStd_Array1OfReal vprs(1, LenV);
- for (j = 1; j <= LenV; j++)
- {
-- pp = myVParam(j);
-+ vprs(j) = myVParam(j);
-+ }
-+ aSorter.Sort(vprs, aCompare);
-
-- V1 = ParamV.Value(1);
-- for (i = 2; i <= ParamVLength; i++)
-+ V1 = vprs(1);
-+ ParamV.Append(V1);
-+ for (j = 2; j <= LenV; j++)
-+ {
-+ V2 = vprs(j);
-+ if ((V2-V1) > ddv)
- {
-- V2 = ParamV.Value(i);
-- if (pp < V2)
-- {
-- if ((V2-pp) < ddv)
-- {
-- ParamV(i) = pp;
-- }
-- else if ((pp-V1) > ddv)
-- {
-- ParamV.InsertBefore(i, pp);
-- ParamVLength++;
-- }
-- else if (i != 2)
-- {
-- ParamV(i-1) = pp;
-- }
-- break;
-- }
-+ ParamV.Append(V2);
- V1 = V2;
-+ ParamVLength++;
- }
- }
-+ if(vprs(LenV)-ParamV(ParamVLength)>Precision::Confusion())
-+ {
-+ ParamV.Append(vprs(LenV));
-+ ParamVLength++;
-+ }
-
- // controle des isos U et insertion eventuelle:
-
-@@ -2192,84 +2152,6 @@
- }
-
- //=======================================================================
--//function : InternalVerticesForRectangle
--//purpose :
--//=======================================================================
--void BRepMesh_FastDiscret::
-- InternalVerticesForRectangle(const Handle(BRepAdaptor_HSurface)& caro,
-- BRepMesh_ListOfVertex& InternalV,
-- const TColStd_ListOfReal& U1Params,
-- const TColStd_ListOfReal& U2Params,
-- const TColStd_ListOfReal& V1Params,
-- const TColStd_ListOfReal& V2Params)
--{
-- BRepMesh_Vertex newV;
-- gp_XY p2d;
-- gp_Pnt p3d;
--
--
-- Standard_Integer i, j, nbu = U1Params.Extent(),
-- nbv = V1Params.Extent();
-- TColStd_Array1OfReal u1prs(1, nbu), u2prs(1, nbu),
-- v1prs(1, nbv), v2prs(1,nbv);
-- TColStd_ListIteratorOfListOfReal Itu1(U1Params), Itu2(U2Params),
-- Itv1(V1Params), Itv2(V2Params);
-- for(i = 1; Itu1.More(); Itu1.Next(), Itu2.Next(),++i) {
-- u1prs(i) = Itu1.Value();
-- u2prs(i) = Itu2.Value();
-- }
-- for(i = 1; Itv1.More(); Itv1.Next(), Itv2.Next(),++i) {
-- v1prs(i) = Itv1.Value();
-- v2prs(i) = Itv2.Value();
-- }
--
-- SortTools_ShellSortOfReal aSorter;
-- TCollection_CompareOfReal aCompare;
-- aSorter.Sort(u1prs, aCompare);
-- aSorter.Sort(u2prs, aCompare);
-- aSorter.Sort(v1prs, aCompare);
-- aSorter.Sort(v2prs, aCompare);
--
-- gp_XY f00(u1prs(1), v1prs(1));
-- gp_XY f01(u2prs(1), v1prs(nbv));
-- gp_XY f10(u1prs(nbu), v2prs(1));
-- gp_XY f11(u2prs(nbu), v2prs(nbv));
--
-- Standard_Real cu = 1./(nbu-1), cv = 1./(nbv-1);
--
-- //Linear Coons-Gordon interpolation for inner points
-- Standard_Real x, y, x1, y1;
-- for(i = 2, x = cu; i < nbu; ++i, x += cu) {
-- x1 = 1.-x;
-- gp_XY fx0(u1prs(i), v1prs(1));
-- gp_XY fx1(u2prs(i), v1prs(nbv));
--
-- for(j = 2, y = cv; j < nbv; ++j, y += cv) {
-- y1 = 1.-y;
--
-- gp_XY f0y(u1prs(1), v1prs(j));
-- gp_XY f1y(u1prs(nbu), v2prs(j));
--
-- gp_XY fxy = y1*fx0 + y*fx1 + x1*f0y + x*f1y -
-- (x1*(y1*f00 + y*f01) + x*(y1*f10 + y*f11));
--
-- // Record 3d point
-- BRepMesh_GeomTool::D0(caro, fxy.X(), fxy.Y(), p3d);
-- nbLocat++;
-- Location3d.Bind(nbLocat, p3d);
-- // Record 2d point
-- p2d.SetCoord((fxy.X()-myumin)/deltaX, (fxy.Y()-myvmin)/deltaY);
-- newV.Initialize(p2d, nbDomains, nbLocat, MeshDS_Free);
-- InternalV.Append(newV);
-- }
-- }
--
--
--
--}
--
--
--//=======================================================================
- //function : Control
- //purpose :
- //=======================================================================
-diff -Naur OpenCASCADE6.3.0/ros/src/Extrema/Extrema_ExtPElC.cxx OpenCASCADE6.3.0sp6/ros/src/Extrema/Extrema_ExtPElC.cxx
---- OpenCASCADE6.3.0/ros/src/Extrema/Extrema_ExtPElC.cxx 2002-12-06 19:00:53.000000000 +0100
-+++ OpenCASCADE6.3.0sp6/ros/src/Extrema/Extrema_ExtPElC.cxx 2009-10-03 01:04:01.000000000 +0200
-@@ -107,15 +107,13 @@
- Usol[1] = Usol[0] + PI;
-
- Standard_Real myuinf = Uinf;
-- //modified by NIZNHY-PKV Fri Apr 20 15:03:28 2001 f
-- //Standard_Real TolU = Tol*C.Radius();
- Standard_Real TolU, aR;
- aR=C.Radius();
- TolU=Precision::Infinite();
- if (aR > gp::Resolution()) {
- TolU= Tol/aR;
- }
-- //modified by NIZNHY-PKV Fri Apr 20 15:03:32 2001 t
-+ //
- ElCLib::AdjustPeriodic(Uinf, Uinf+2*PI, Precision::PConfusion(), myuinf, Usol[0]);
- ElCLib::AdjustPeriodic(Uinf, Uinf+2*PI, Precision::PConfusion(), myuinf, Usol[1]);
- if (((Usol[0]-2*PI-Uinf) < TolU) && ((Usol[0]-2*PI-Uinf) > -TolU)) Usol[0] = Uinf;
-@@ -140,6 +138,10 @@
- }
- //=============================================================================
-
-+//=======================================================================
-+//function : Extrema_ExtPElC
-+//purpose :
-+//=======================================================================
- Extrema_ExtPElC::Extrema_ExtPElC (const gp_Pnt& P,
- const gp_Elips& C,
- const Standard_Real Tol,
-@@ -151,6 +153,10 @@
-
-
-
-+//=======================================================================
-+//function : Perform
-+//purpose :
-+//=======================================================================
- void Extrema_ExtPElC::Perform (const gp_Pnt& P,
- const gp_Elips& C,
- const Standard_Real Tol,
-@@ -176,31 +182,57 @@
- cette equation.
- -----------------------------------------------------------------------------*/
- {
-+ Standard_Integer NoSol, NbSol;
-+ Standard_Real A, B, OPpMagn, aTx, aD2x, aTol2;
-+ gp_Pnt aPx;
-+ //
- myDone = Standard_False;
- myNbExt = 0;
--
--// 1- Projection du point P dans le plan de l ellipse -> Pp ...
--
-+ //
-+ aTol2=Tol*Tol;
-+ //
-+ // 0-
-+ //modified by NIZNHY-PKV Fri Feb 13 09:37:33 2009f
-+ aTx=ElCLib::Parameter(C, P);
-+ aPx=ElCLib::Value(aTx, C);
-+ aD2x=P.SquareDistance(aPx);
-+ if (aD2x < aTol2) {
-+ myDone = Standard_True;
-+ myValue[myNbExt]=sqrt(aD2x);
-+ myIsMin[myNbExt]=Standard_True;
-+ myPoint[myNbExt]=Extrema_POnCurv(aTx ,aPx);
-+ myNbExt=1;
-+ return;
-+ }
-+ //modified by NIZNHY-PKV Fri Feb 13 09:37:37 2009t
-+ //
-+ // 1- Projection du point P dans le plan de l ellipse -> Pp ...
- gp_Pnt O = C.Location();
- gp_Vec Axe (C.Axis().Direction());
- gp_Vec Trsl = Axe.Multiplied(-(gp_Vec(O,P).Dot(Axe)));
- gp_Pnt Pp = P.Translated(Trsl);
--
--// 2- Calculs des solutions ...
--
-- Standard_Integer NoSol, NbSol;
-- Standard_Real A = C.MajorRadius();
-- Standard_Real B = C.MinorRadius();
-+ //
-+ // 2- Calculs des solutions ...
-+
-+ //
-+ A = C.MajorRadius();
-+ B = C.MinorRadius();
-+
- gp_Vec OPp (O,Pp);
-- Standard_Real OPpMagn = OPp.Magnitude();
-- if (OPpMagn < Tol) { if (Abs(A-B) < Tol) { return; } }
-+ OPpMagn = OPp.SquareMagnitude();
-+ if (OPpMagn < aTol2) {
-+ if (Abs(A-B) < Tol) {
-+ return;
-+ }
-+ }
- Standard_Real X = OPp.Dot(gp_Vec(C.XAxis().Direction()));
- Standard_Real Y = OPp.Dot(gp_Vec(C.YAxis().Direction()));
- // Standard_Real Y = Sqrt(OPpMagn*OPpMagn-X*X);
-
- Standard_Real ko2 = (B*B-A*A)/2., ko3 = -B*Y, ko4 = A*X;
-- if(Abs(ko3) < 1.e-16*Max(Abs(ko2), Abs(ko3))) ko3 = 0.0;
--
-+ if(Abs(ko3) < 1.e-16*Max(Abs(ko2), Abs(ko3))) {
-+ ko3 = 0.;
-+ }
- // math_TrigonometricFunctionRoots Sol(0.,(B*B-A*A)/2.,-B*Y,A*X,0.,Uinf,Usup);
- math_TrigonometricFunctionRoots Sol(0.,ko2, ko3, ko4, 0.,Uinf,Usup);
-
-@@ -313,10 +345,7 @@
- if (!DejaEnr) {
- TbExt[myNbExt] = Cu;
- myValue[myNbExt] = Cu.Distance(P);
--// modified by NIZHNY-EAP Fri Oct 29 12:53:37 1999 ___BEGIN___
--// myIsMin[myNbExt] = (NoSol == 0);
- myIsMin[myNbExt] = myValue[myNbExt] < P.Distance(ElCLib::Value(Us+1,C));
--// modified by NIZHNY-EAP Fri Oct 29 12:53:39 1999 ___END___
- myPoint[myNbExt] = Extrema_POnCurv(Us,Cu);
- myNbExt++;
- }
-@@ -407,10 +436,7 @@
- if (!DejaEnr) {
- TbExt[myNbExt] = Cu;
- myValue[myNbExt] = Cu.Distance(P);
--// modified by NIZHNY-EAP Fri Oct 29 12:55:16 1999 ___BEGIN___
--// myIsMin[myNbExt] = (NoSol == 0);
- myIsMin[myNbExt] = myValue[myNbExt] < P.Distance(ElCLib::Value(Us+1,C));
--// modified by NIZHNY-EAP Fri Oct 29 12:55:18 1999 ___END___
- myPoint[myNbExt] = Extrema_POnCurv(Us,Cu);
- myNbExt++;
- }
-diff -Naur OpenCASCADE6.3.0/ros/src/GeomFill/GeomFill_NSections.cxx OpenCASCADE6.3.0sp6/ros/src/GeomFill/GeomFill_NSections.cxx
---- OpenCASCADE6.3.0/ros/src/GeomFill/GeomFill_NSections.cxx 2006-08-11 19:00:53.000000000 +0200
-+++ OpenCASCADE6.3.0sp6/ros/src/GeomFill/GeomFill_NSections.cxx 2009-10-03 01:04:05.000000000 +0200
-@@ -942,6 +942,12 @@
- sameaxis = (C1.Axis().IsParallel(D,1.e-4));
- }
- isconic = samedir && linearrad && sameaxis;
-+ //// Modified by jgv, 18.02.2009 for OCC20866 ////
-+ Standard_Real first1 = AC1.FirstParameter(), last1 = AC1.LastParameter();
-+ Standard_Real first2 = AC2.FirstParameter(), last2 = AC2.LastParameter();
-+ isconic = (Abs(first1-first2) <= Precision::PConfusion() &&
-+ Abs(last1-last2) <= Precision::PConfusion());
-+ //////////////////////////////////////////////////
- }
- }
-
-diff -Naur OpenCASCADE6.3.0/ros/src/IntPatch/IntPatch_PrmPrmIntersection.gxx OpenCASCADE6.3.0sp6/ros/src/IntPatch/IntPatch_PrmPrmIntersection.gxx
---- OpenCASCADE6.3.0/ros/src/IntPatch/IntPatch_PrmPrmIntersection.gxx 2008-07-18 16:59:37.000000000 +0200
-+++ OpenCASCADE6.3.0sp6/ros/src/IntPatch/IntPatch_PrmPrmIntersection.gxx 2009-10-03 01:04:13.000000000 +0200
-@@ -32,14 +32,14 @@
- Standard_Real& u2,
- Standard_Real& v2);
-
--//xf
-+
- static
- void AdjustOnPeriodic(const TheSurface& Surf1,
- const TheSurface& Surf2,
- IntPatch_SequenceOfLine& aSLin);
--//xt
-+
- //==================================================================================
--// function : Constructor
-+// function :
- // purpose :
- //==================================================================================
- IntPatch_PrmPrmIntersection::IntPatch_PrmPrmIntersection(): done(Standard_False)
-@@ -1677,8 +1677,7 @@
- }
- }
- }
-- //--printf("\n\n1 Dist3[0]=%5.5g,u3[0]=%5.5g,v3[0]=%5.5g , Dist3[1]=%5.5g,u3[1]=%5.5g,v3[1]=%5.5g ,Dist3[2]=%5.5g,u3[2]=%5.5g,v3[2]=%5.5g\n",
-- //-- Dist3[0],u3[0],v3[0] , Dist3[1],u3[1],v3[1] ,Dist3[2],u3[2],v3[2]);
-+ //
- Standard_Real U1_3 = (u3[0]+u3[1]+u3[2])/3.0;
- Standard_Real V1_3 = (v3[0]+v3[1]+v3[2])/3.0;
-
-@@ -1712,8 +1711,7 @@
- }
- }
- }
-- //printf("\n2 Dist3[0]=%5.5g,u3[0]=%5.5g,v3[0]=%5.5g , Dist3[1]=%5.5g,u3[1]=%5.5g,v3[1]=%5.5g ,Dist3[2]=%5.5g,u3[2]=%5.5g,v3[2]=%5.5g\n",
-- // Dist3[0],u3[0],v3[0] , Dist3[1],u3[1],v3[1] ,Dist3[2],u3[2],v3[2]);
-+ //
- Standard_Real U2_3 = (u3[0]+u3[1]+u3[2])/3.0;
- Standard_Real V2_3 = (v3[0]+v3[1]+v3[2])/3.0;
-
-@@ -1725,7 +1723,6 @@
- }
- }
- while(ok);
-- //-- cout<<"\n *** "<<Compt<<" Points de *1 ** 2* ds la grille UVP"<<ComptTrouve<<endl; Compt=0;
- }
-
- //==================================================================================
-@@ -1764,7 +1761,7 @@
- if (ClearFlag)
- SLin.Clear();
- // modified by NIZHNY-AMV Tue Oct 18 12:37:02 2005.END
--
-+ //
- //IntPolyh_Intersection Interference(Surf1,NbU1,NbV1,Surf2,NbU2,NbV2);
- // IntPolyh_Intersection Interference(Surf1, anUpars1, aVpars1,
- // Surf2, anUpars2, aVpars2);
-@@ -1775,15 +1772,16 @@
- pInterference = new IntPolyh_Intersection(Surf1,NbU1,NbV1,Surf2,NbU2,NbV2);
- }
- else {
-- pInterference = new IntPolyh_Intersection( Surf1, anUpars1, aVpars1,
-+ pInterference = new IntPolyh_Intersection(Surf1, anUpars1, aVpars1,
- Surf2, anUpars2, aVpars2 );
- }
- if ( !pInterference ) {
- done = Standard_False;
- return;
- }
-+ //
- IntPolyh_Intersection& Interference = *pInterference;
--
-+ //
- done = Interference.IsDone();
- if( !done ) {
- if ( pInterference ) {
-@@ -1792,7 +1790,7 @@
- }
- return;
- }
--
-+
- Standard_Real Deflection2 = Deflection*Deflection;
- Standard_Integer nbLigSec = Interference.NbSectionLines();
- Standard_Integer nbTanZon = Interference.NbTangentZones();
-@@ -1828,11 +1826,18 @@
- }
- }
- } while(triok==Standard_False);
--
-+ //
- for( ls = 1; ls <= nbLigSec; ls++) {
-- Standard_Integer nbp = Interference.NbPointsInLine(TabL[ls]);
-- Standard_Integer *TabPtDep = new Standard_Integer [nbp+1];
-- Standard_Integer ilig;
-+ Standard_Integer nbp, ilig, *TabPtDep;
-+ //
-+ nbp = Interference.NbPointsInLine(TabL[ls]);
-+ //modified by NIZNHY-PKV Fri Sep 5 15:19:28 2008f
-+ if (!nbp) {
-+ continue;
-+ }
-+ //modified by NIZNHY-PKV Fri Sep 5 15:19:31 2008t
-+ TabPtDep = new Standard_Integer [nbp+1];
-+ //
- for( ilig = 1; ilig <= nbp; ilig++ )
- TabPtDep[ilig]=0;
-
-@@ -1864,9 +1869,8 @@
- Standard_Integer nbps2 = (nbp>3)? (nbp/2) : 1;
- Standard_Integer NombreDePointsDeDepartDuCheminement = 0;
- Standard_Boolean lignetrouvee=Standard_False;
-- // const Standard_Integer NbDePointsDeDepartDuChmLimit = 3;
- const Standard_Integer NbDePointsDeDepartDuChmLimit = 5;
--
-+ //
- do {
- NombreDePointsDeDepartDuCheminement++;
- switch (NombreDePointsDeDepartDuCheminement) {
-@@ -1891,7 +1895,7 @@
- nbps2 = NombreDePointsDeDepartDuCheminement-3;
- NombreDePointsDeDepartDuCheminement++;
- }
--
-+ //
- if(TabPtDep[nbps2] == 0) {
- TabPtDep[nbps2] = 1;
- Interference.GetLinePoint(TabL[ls],nbps2,_x,_y,_z,U1,V1,U2,V2,incidence);
-@@ -1966,7 +1970,6 @@
- Standard_Boolean bPWIsDone;
- Standard_Integer iPWNbPoints, aNbPointsVer;
- Standard_Real aD11, aD12, aD21, aD22, aDx;
--
- //
- bPWIsDone=PW.IsDone();
- //xt
-@@ -2023,12 +2026,8 @@
- }
- }
- }
--// if(Point3dDebut.Distance(verPointDebut.Value()) <= TolTangency) {
--// if(Point3dFin.Distance(verPointFin.Value()) <= TolTangency)
--// RejetLigne = Standard_True;
--// }
- }
--
-+ //
- if(!RejetLigne) {
- IntSurf_TypeTrans trans1,trans2;
- Standard_Real locu,locv;
-@@ -2227,10 +2226,9 @@
- delete [] TabL;
-
- }// if nbLigSec >= 1
--
-- //xf
-+ //
- AdjustOnPeriodic(Surf1, Surf2, SLin);
-- //xt
-+ //
-
- //--------------------------------------------------------------------
- //-- Calcul des parametres approches a partir des Zones De Tangence --
-diff -Naur OpenCASCADE6.3.0/ros/src/IntTools/IntTools_BeanBeanIntersector.cxx OpenCASCADE6.3.0sp6/ros/src/IntTools/IntTools_BeanBeanIntersector.cxx
---- OpenCASCADE6.3.0/ros/src/IntTools/IntTools_BeanBeanIntersector.cxx 2007-06-22 16:09:36.000000000 +0200
-+++ OpenCASCADE6.3.0sp6/ros/src/IntTools/IntTools_BeanBeanIntersector.cxx 2009-10-03 01:04:14.000000000 +0200
-@@ -297,6 +297,41 @@
- aCriteria2=myCriteria*myCriteria;
- aNbRanges=myRangeManager.Length();
- //
-+ //modified by NIZNHY-PKV Tue Mar 24 11:13:42 2009f
-+ {
-+ GeomAbs_CurveType aCT1, aCT2;
-+ //
-+ aCT1=myCurve1.GetType();
-+ aCT2=myCurve2.GetType();
-+
-+ if (aCT1==GeomAbs_BSplineCurve &&
-+ aCT2==GeomAbs_BSplineCurve) {
-+ Standard_Real aST, aST1, aSx, aSz;
-+ //
-+ aST1=myLastParameter1-myFirstParameter1;
-+ if (aST1>aPPC) {
-+ aSz=1.e-4;
-+ aST=0.;
-+ for(i=1; i<=aNbRanges; ++i) {
-+ iFlag=myRangeManager.Flag(i);
-+ if(iFlag==4) {
-+ aRange=myRangeManager.Range(i);
-+ aST=aST+aRange.Last()-aRange.First();
-+ }
-+ }
-+ aSx=1.-aST/aST1;
-+ if (aSx<aSz) {
-+ aRange.SetFirst(myFirstParameter1);
-+ aRange.SetLast(myLastParameter1);
-+ myResults.Append(aRange);
-+ myIsDone = Standard_True;
-+ return;
-+ }
-+ }
-+ }
-+ }
-+ //modified by NIZNHY-PKV Tue Mar 24 11:13:44 2009t
-+ //
- for(i=1; i<=aNbRanges; ++i) {
- iFlag=myRangeManager.Flag(i);
- //
-@@ -621,18 +656,10 @@
- anExtrema.Points(k, P1, P2);
- aPrm1=P1.Parameter();
- aPrm2=P2.Parameter();
-- //modified by NIZNHY-PKV Tue Jun 5 15:47:13 2007f
-- /*
-- if((aPrm1 >= 0.) && (aPrm1 <= aDistance) &&
-- (aPrm2 >= 0.) && (aPrm2 <= aD)) {
-- isintersection = Standard_True;
-- }
-- */
- if((aPrm1 >= -aMaxDistance) && (aPrm1 <= aDistance+aMaxDistance) &&
- (aPrm2 >= -aMaxDistance) && (aPrm2 <= aD+aMaxDistance)) {
- isintersection = Standard_True;
- }
-- //modified by NIZNHY-PKV Tue Jun 5 15:47:17 2007t
- else { // 2
- Extrema_ExtPElC aPointProjector;
-
-diff -Naur OpenCASCADE6.3.0/ros/src/IntTools/IntTools_FaceFace.cxx OpenCASCADE6.3.0sp6/ros/src/IntTools/IntTools_FaceFace.cxx
---- OpenCASCADE6.3.0/ros/src/IntTools/IntTools_FaceFace.cxx 2008-07-18 16:59:40.000000000 +0200
-+++ OpenCASCADE6.3.0sp6/ros/src/IntTools/IntTools_FaceFace.cxx 2009-10-03 01:04:14.000000000 +0200
-@@ -1,8 +1,4 @@
--// Modified by skv - Tue Jul 11 16:41:33 2006 OCC12627
--// Modified by skv - Mon Jul 12 16:16:15 2004 OCC6277
--// Modified by ofv - Mon Nov 9 16:31:15 2004 OCC6766 fix
--// Modified by ofv - Mon Dec 23 16:31:15 2004 OCC6766 fix reg
--
-+
- #include <IntTools_FaceFace.ixx>
- #include <BRep_Tool.hxx>
- #include <IntTools_Curve.hxx>
-@@ -101,6 +97,7 @@
- #include <TColgp_SequenceOfPnt2d.hxx>
- #include <TColStd_HArray1OfReal.hxx>
- #include <GeomAdaptor_Curve.hxx>
-+#include <IntSurf_PntOn2S.hxx>
-
- static
- void TolR3d(const TopoDS_Face& ,
-@@ -341,7 +338,7 @@
- void IntTools_FaceFace::Perform(const TopoDS_Face& F1,
- const TopoDS_Face& F2)
- {
-- Standard_Boolean hasCone, RestrictLine, bIsDone;
-+ Standard_Boolean RestrictLine, bIsDone, hasCone;
- Standard_Integer aNbLin, aNbPnts, i;
- Standard_Real TolArc, TolTang, Deflection, UVMaxStep;
- Standard_Real umin, umax, vmin, vmax;
-@@ -426,25 +423,11 @@
- //
- myHS1->ChangeSurface().Load(S1, umin, umax, vmin, vmax);
- //
-- //modified by NIZNHY-PKV Thu Jul 3 14:50:28 2008f
-- /*
-- if(S1==S2) {
-- myHS2 = myHS1;
-- }
-- else {
-- BRepTools::UVBounds(F2, umin, umax, vmin, vmax);
-- //
-- CorrectSurfaceBoundaries(F2, (aTolF1 + aTolF2) * 2., umin, umax, vmin, vmax);
-- //
-- myHS2->ChangeSurface().Load(S2, umin, umax, vmin, vmax);
-- }
-- */
- BRepTools::UVBounds(F2, umin, umax, vmin, vmax);
- //
- CorrectSurfaceBoundaries(F2, (aTolF1 + aTolF2) * 2., umin, umax, vmin, vmax);
- //
- myHS2->ChangeSurface().Load(S2, umin, umax, vmin, vmax);
-- //modified by NIZNHY-PKV Thu Jul 3 14:50:36 2008t
- }
- //
- dom1 = new IntTools_TopolTool(myHS1);
-@@ -452,7 +435,17 @@
- //
- myLConstruct.Load(dom1, dom2, myHS1, myHS2);
- //
-+ //Deflection = 0.085;
- Deflection = (hasCone) ? 0.085 : 0.1;
-+ //modified by NIZNHY-PKV Fri Feb 20 09:10:17 2009f
-+ if (aType1==GeomAbs_BSplineSurface &&
-+ aType2==GeomAbs_BSplineSurface) {
-+ if (myHS1->IsUClosed() && myHS1->IsUPeriodic() &&
-+ myHS2->IsUClosed() && myHS2->IsUPeriodic()) {
-+ Deflection=0.085;
-+ }
-+ }
-+ //modified by NIZNHY-PKV Fri Feb 20 09:12:11 2009t
- UVMaxStep = 0.001;
- //
- myIntersector.SetTolerances(TolArc, TolTang, UVMaxStep, Deflection);
-@@ -496,18 +489,7 @@
- }
- }
- }
-- //
-- //modified by NIZNHY-PKV Thu Jul 3 14:51:04 2008f
-- /*
-- if(myHS1 == myHS2) {
-- myIntersector.Perform(myHS1, dom1, TolArc, TolTang);
-- }
-- else {
-- myIntersector.Perform(myHS1, dom1, myHS2, dom2, TolArc, TolTang, myListOfPnts, RestrictLine);
-- }
-- */
- myIntersector.Perform(myHS1, dom1, myHS2, dom2, TolArc, TolTang, myListOfPnts, RestrictLine);
-- //modified by NIZNHY-PKV Thu Jul 3 14:51:09 2008t
- //
- bIsDone=myIntersector.IsDone();
- if (bIsDone) {
-@@ -648,6 +630,18 @@
- if(!myListOfPnts.IsEmpty()) {
- bAvoidLineConstructor = Standard_True;
- }
-+
-+ Standard_Integer nbp = aWLine->NbPnts();
-+ const IntSurf_PntOn2S& p1 = aWLine->Point(1);
-+ const IntSurf_PntOn2S& p2 = aWLine->Point(nbp);
-+
-+ const gp_Pnt& P1 = p1.Value();
-+ const gp_Pnt& P2 = p2.Value();
-+
-+ if(P1.SquareDistance(P2) < 1.e-14) {
-+ bAvoidLineConstructor = Standard_False;
-+ }
-+
- }
- //
- // Line Constructor
-@@ -1320,14 +1314,14 @@
- GeomAbs_SurfaceType typs1, typs2;
- typs1 = myHS1->Surface().GetType();
- typs2 = myHS2->Surface().GetType();
--
-+ //
- if(typs1 == GeomAbs_Plane) {
- theapp3d.Perform(myHS1, myHS2, WL, Standard_False,Standard_True, myApprox2,ifprm,ilprm);
- }
- else if(typs2 == GeomAbs_Plane) {
- theapp3d.Perform(myHS1,myHS2,WL,Standard_False,myApprox1,Standard_True,ifprm,ilprm);
- }
-- else {
-+ else {
- //
- if (myHS1 != myHS2){
- if ((typs1==GeomAbs_BezierSurface || typs1==GeomAbs_BSplineSurface) &&
-@@ -2321,76 +2315,7 @@
- return !bFlag;
- }
-
--//=========================================================================
--// static function : ComputePurgedWLine
--// purpose : Removes equal points (leave one of equal points) from theWLine
--// and recompute vertex parameters.
--// Returns new WLine or null WLine if the number
--// of the points is less than 2.
--//=========================================================================
--Handle(IntPatch_TheWLineOfIntersection) ComputePurgedWLine(const Handle(IntPatch_TheWLineOfIntersection)& theWLine) {
-- Handle(IntPatch_TheWLineOfIntersection) aResult;
-- Handle(IntPatch_TheWLineOfIntersection) aLocalWLine;
-- Handle(IntPatch_TheWLineOfIntersection) aTmpWLine = theWLine;
--
-- Handle(IntSurf_LineOn2S) aLineOn2S = new IntSurf_LineOn2S();
-- aLocalWLine = new IntPatch_TheWLineOfIntersection(aLineOn2S, Standard_False);
-- Standard_Integer i, k, v, nb, nbvtx;
-- nbvtx = theWLine->NbVertex();
-- nb = theWLine->NbPnts();
--
-- for(i = 1; i <= nb; i++) {
-- aLineOn2S->Add(theWLine->Point(i));
-- }
--
-- for(v = 1; v <= nbvtx; v++) {
-- aLocalWLine->AddVertex(theWLine->Vertex(v));
-- }
--
-- for(i = 1; i <= aLineOn2S->NbPoints(); i++) {
-- Standard_Integer aStartIndex = i + 1;
-- Standard_Integer anEndIndex = i + 5;
-- nb = aLineOn2S->NbPoints();
-- anEndIndex = (anEndIndex > nb) ? nb : anEndIndex;
--
-- if((aStartIndex >= nb) || (anEndIndex <= 1)) {
-- continue;
-- }
-- k = aStartIndex;
--
-- while(k <= anEndIndex) {
--
-- if(i != k) {
-- IntSurf_PntOn2S p1 = aLineOn2S->Value(i);
-- IntSurf_PntOn2S p2 = aLineOn2S->Value(k);
--
-- if(p1.Value().IsEqual(p2.Value(), gp::Resolution())) {
-- aTmpWLine = aLocalWLine;
-- aLocalWLine = new IntPatch_TheWLineOfIntersection(aLineOn2S, Standard_False);
--
-- for(v = 1; v <= aTmpWLine->NbVertex(); v++) {
-- IntPatch_ThePointOfIntersection aVertex = aTmpWLine->Vertex(v);
-- Standard_Integer avertexindex = (Standard_Integer)aVertex.ParameterOnLine();
--
-- if(avertexindex >= k) {
-- aVertex.SetParameter(aVertex.ParameterOnLine() - 1.);
-- }
-- aLocalWLine->AddVertex(aVertex);
-- }
-- aLineOn2S->RemovePoint(k);
-- anEndIndex--;
-- continue;
-- }
-- }
-- k++;
-- }
-- }
-
-- if(aLineOn2S->NbPoints() > 1) {
-- aResult = aLocalWLine;
-- }
-- return aResult;
--}
-
- //=======================================================================
- //function : TolR3d
-@@ -3711,3 +3636,86 @@
-
- return Standard_True;
- }
-+//modified by NIZNHY-PKV Thu Feb 12 11:54:18 2009f
-+//=========================================================================
-+// static function : ComputePurgedWLine
-+// purpose : Removes equal points (leave one of equal points) from theWLine
-+// and recompute vertex parameters.
-+// Returns new WLine or null WLine if the number
-+// of the points is less than 2.
-+//=========================================================================
-+Handle(IntPatch_TheWLineOfIntersection)
-+ ComputePurgedWLine(const Handle(IntPatch_TheWLineOfIntersection)& theWLine)
-+{
-+ Standard_Integer i, k, v, nbvtx, aStartIndex, anEndIndex, avertexindex, aNbP;
-+ Standard_Real aD2, aTol2;
-+ Handle(IntPatch_TheWLineOfIntersection) aResult, aLocalWLine, aTmpWLine;
-+ Handle(IntSurf_LineOn2S) aLineOn2S;
-+ IntSurf_PntOn2S p1, p2;
-+ //
-+ aTol2=gp::Resolution();// ? but it was so
-+ //
-+ aLineOn2S = new IntSurf_LineOn2S();
-+ aLocalWLine = new IntPatch_TheWLineOfIntersection(aLineOn2S, Standard_False);
-+ //
-+ aNbP = theWLine->NbPnts();
-+ for(i = 1; i <= aNbP; i++) {
-+ aLineOn2S->Add(theWLine->Point(i));
-+ }
-+ //
-+ nbvtx = theWLine->NbVertex();
-+ for(v = 1; v <= nbvtx; v++) {
-+ aLocalWLine->AddVertex(theWLine->Vertex(v));
-+ }
-+ //
-+ aTmpWLine = theWLine;
-+ aNbP=aLineOn2S->NbPoints();
-+ for(i = 1; i <= aNbP; i++) {
-+ aStartIndex = i + 1;
-+ anEndIndex = i + 5;
-+ //
-+ anEndIndex = (anEndIndex > aNbP) ? aNbP : anEndIndex;
-+ //if((aStartIndex >= aNbP) || (anEndIndex <= 1)) {//ft
-+ if((aStartIndex > aNbP) || (anEndIndex <= 1)) {
-+ continue;
-+ }
-+ //
-+ k = aStartIndex;
-+ while(k <= anEndIndex) {
-+ if(i != k) {
-+ p1 = aLineOn2S->Value(i);
-+ p2 = aLineOn2S->Value(k);
-+ const gp_Pnt& aP1=p1.Value();
-+ const gp_Pnt& aP2=p2.Value();
-+ aD2=aP1.SquareDistance(aP2);
-+ if (aD2<aTol2) {
-+ aTmpWLine = aLocalWLine;
-+ aLocalWLine = new IntPatch_TheWLineOfIntersection(aLineOn2S, Standard_False);
-+
-+ for(v = 1; v <= aTmpWLine->NbVertex(); v++) {
-+ IntPatch_ThePointOfIntersection aVertex = aTmpWLine->Vertex(v);
-+ avertexindex = (Standard_Integer)aVertex.ParameterOnLine();
-+
-+ if(avertexindex >= k) {
-+ aVertex.SetParameter(aVertex.ParameterOnLine() - 1.);
-+ }
-+ aLocalWLine->AddVertex(aVertex);
-+ }
-+ //
-+ aLineOn2S->RemovePoint(k);
-+ aNbP=aLineOn2S->NbPoints();
-+ anEndIndex--;
-+ continue;
-+ } //if (aD2<aTol2)
-+ } //if(i != k)
-+ k++;
-+ } //while(k <= anEndIndex)
-+ } //
-+ //
-+ aNbP=aLineOn2S->NbPoints();
-+ if(aNbP>1) {
-+ aResult = aLocalWLine;
-+ }
-+ return aResult;
-+}
-+//modified by NIZNHY-PKV Thu Feb 12 11:54:21 2009t
-diff -Naur OpenCASCADE6.3.0/ros/src/IntTools/IntTools_Tools.cxx OpenCASCADE6.3.0sp6/ros/src/IntTools/IntTools_Tools.cxx
---- OpenCASCADE6.3.0/ros/src/IntTools/IntTools_Tools.cxx 2007-06-08 16:33:26.000000000 +0200
-+++ OpenCASCADE6.3.0sp6/ros/src/IntTools/IntTools_Tools.cxx 2009-10-03 01:04:14.000000000 +0200
-@@ -199,7 +199,7 @@
- Standard_Integer IntTools_Tools::SplitCurve(const IntTools_Curve& IC,
- IntTools_SequenceOfCurves& aCvs)
- {
-- Handle (Geom_Curve) aC3D =IC.Curve();
-+ Handle (Geom_Curve) aC3D =IC.Curve();
- if(aC3D.IsNull())
- return 0;
- //
-@@ -213,11 +213,21 @@
- }
-
- Standard_Real aF, aL, aMid;
--
-+
-+ //
- aF=aC3D->FirstParameter();
-- aL=aC3D-> LastParameter();
-+ aL=aC3D->LastParameter();
- aMid=0.5*(aF+aL);
--
-+ //modified by NIZNHY-PKV Thu Feb 5 08:26:58 2009 f
-+ GeomAdaptor_Curve aGAC(aC3D);
-+ GeomAbs_CurveType aCT=aGAC.GetType();
-+ if (aCT==GeomAbs_BSplineCurve ||
-+ aCT==GeomAbs_BezierCurve) {
-+ //aMid=0.5*aMid;
-+ aMid=IntTools_Tools::IntermediatePoint(aF, aL);
-+ }
-+ //modified by NIZNHY-PKV Thu Feb 5 08:27:00 2009 t
-+ //
- Handle(Geom_Curve) aC3DNewF, aC3DNewL;
- aC3DNewF =new Geom_TrimmedCurve (aC3D, aF, aMid);
- aC3DNewL =new Geom_TrimmedCurve (aC3D, aMid, aL);
-diff -Naur OpenCASCADE6.3.0/ros/src/InterfaceGraphic/InterfaceGraphic_tgl_all.h OpenCASCADE6.3.0sp6/ros/src/InterfaceGraphic/InterfaceGraphic_tgl_all.h
---- OpenCASCADE6.3.0/ros/src/InterfaceGraphic/InterfaceGraphic_tgl_all.h 2003-02-04 07:34:21.000000000 +0100
-+++ OpenCASCADE6.3.0sp6/ros/src/InterfaceGraphic/InterfaceGraphic_tgl_all.h 2009-10-03 01:04:14.000000000 +0200
-@@ -9,11 +9,16 @@
- #ifndef INTERFACEGRAPHIC_TGL_ALL_H
- #define INTERFACEGRAPHIC_TGL_ALL_H
-
--typedef int Tint;
--typedef float Tfloat;
--typedef char Tchar;
--typedef char Tbool;
--typedef unsigned int Tuint;
-+typedef int Tint;
-+typedef float Tfloat;
-+/* PCD 04/07/07 */
-+typedef double Tdouble;
-+/* Tchar is treated as a signed char in visualization code,
-+therefore it should be made signed explicitly, as on Linux
-+-funsigned-char option is specified when building OCCT */
-+typedef signed char Tchar;
-+typedef char Tbool;
-+typedef unsigned int Tuint;
-
- #define TGL_SP 1
- #define TGL_DP 0
-@@ -37,6 +42,7 @@
- #define TNotDone 0
-
- typedef Tfloat Tmatrix3[4][4];
-+
- typedef enum
- {
- TPreConcatenate,
-diff -Naur OpenCASCADE6.3.0/ros/src/OpenGl/OpenGl_GraphicDriver.cxx OpenCASCADE6.3.0sp6/ros/src/OpenGl/OpenGl_GraphicDriver.cxx
---- OpenCASCADE6.3.0/ros/src/OpenGl/OpenGl_GraphicDriver.cxx 2008-06-02 16:04:17.000000000 +0200
-+++ OpenCASCADE6.3.0sp6/ros/src/OpenGl/OpenGl_GraphicDriver.cxx 2009-10-03 01:04:22.000000000 +0200
-@@ -1,38 +1,38 @@
-+/*
-+ File OpenGl_GraphicDriver.cxx
-+ Created Mardi 28 janvier 1997
-+ Author CAL
-
--// File OpenGl_GraphicDriver.cxx
--// Created Mardi 28 janvier 1997
--// Author CAL
-+-Copyright MatraDatavision 1997
-
--//-Copyright MatraDatavision 1997
-+-Version
-
--//-Version
-+-Design Declaration des variables specifiques aux Drivers
-+-Warning Un driver encapsule les Pex, Phigs et OpenGl drivers
-
--//-Design Declaration des variables specifiques aux Drivers
-+-References
-
--//-Warning Un driver encapsule les Pex, Phigs et OpenGl drivers
-+-Language C++ 2.0
-
--//-References
-+-Declarations
-
--//-Language C++ 2.0
--
--//-Declarations
--
--// for the class
-+ for the class
-+*/
- #include <OpenGl_GraphicDriver.ixx>
-
- #ifdef WNT
- #include <malloc.h>
- #endif
--
--//-Aliases
--
--//-Global data definitions
--
--// Pour eviter de "mangler" MetaGraphicDriverFactory, le nom de la
--// fonction qui cree un Graphic3d_GraphicDriver.
--// En effet, ce nom est recherche par la methode DlSymb de la
--// classe OSD_SharedLibrary dans la methode SetGraphicDriver de la
--// classe Graphic3d_GraphicDevice
-+/*
-+-Aliases
-+-Global data definitions
-+
-+ Pour eviter de "mangler" MetaGraphicDriverFactory, le nom de la
-+ fonction qui cree un Graphic3d_GraphicDriver.
-+ En effet, ce nom est recherche par la methode DlSymb de la
-+ classe OSD_SharedLibrary dans la methode SetGraphicDriver de la
-+ classe Graphic3d_GraphicDevice
-+*/
- extern "C" {
- #ifdef WNT /* disable MS VC++ warning on C-style function returning C++ object */
- #pragma warning(push)
-@@ -44,22 +44,25 @@
- (const Standard_CString AShrName) {
- Handle(OpenGl_GraphicDriver) aOpenDriver = new OpenGl_GraphicDriver (AShrName);
- return aOpenDriver;
--// return new OpenGl_GraphicDriver (AShrName);
-+/* return new OpenGl_GraphicDriver (AShrName); */
- }
- #ifdef WNT
- #pragma warning(pop)
- #endif
- }
-
--//-Constructors
-+/*-Constructors */
-
- OpenGl_GraphicDriver::OpenGl_GraphicDriver (const Standard_CString AShrName):Graphic3d_GraphicDriver (AShrName)
- {
--
-+ /* Change this if traceing OpenGl_GraphicDriver method calls is needed */
-+#if 0
-+ SetTrace(1);
-+#endif
-+
- #ifdef WNT
- _set_sbh_threshold(1016);
- #endif
--
- }
-
--//-Methods, in order
-+/*-Methods, in order */
-diff -Naur OpenCASCADE6.3.0/ros/src/OpenGl/OpenGl_LightBox.c OpenCASCADE6.3.0sp6/ros/src/OpenGl/OpenGl_LightBox.c
---- OpenCASCADE6.3.0/ros/src/OpenGl/OpenGl_LightBox.c 2001-09-21 09:57:39.000000000 +0200
-+++ OpenCASCADE6.3.0sp6/ros/src/OpenGl/OpenGl_LightBox.c 2009-10-03 01:04:22.000000000 +0200
-@@ -56,8 +56,10 @@
- /*
- * Constantes
- */
--
-+#ifndef DEBUG
- #define DEBUG 0
-+#endif
-+
- #define NO_PRINT_DEBUG
-
- #define GROW_SIZE_WKS 10
-@@ -554,16 +556,12 @@
- void LightOn(void)
- {
- #ifdef PRINT_DEBUG
-- if (!lightOn)
-- printf("LightOn() \n");
-- else
-- printf("LightOn() inutile \n");
-+ if(IsLightOn())
-+ printf("LightOn(): lighting already enabled!");
-+ else
-+ printf("LightOn() succeeded");
- #endif
-- if (!lightOn)
-- {
-- glEnable(GL_LIGHTING);
-- lightOn = GL_TRUE;
-- }
-+ glEnable(GL_LIGHTING);
- }
-
-
-@@ -574,16 +572,12 @@
- void LightOff(void)
- {
- #ifdef PRINT_DEBUG
-- if (lightOn)
-- printf("LightOff() \n");
-- else
-- printf("LightOff() inutile \n");
-+ if(!IsLightOn())
-+ printf("LightOff(): lighting already disabled!");
-+ else
-+ printf("LightOff() succeeded");
- #endif
-- if (lightOn)
-- {
-- glDisable(GL_LIGHTING);
-- lightOn = GL_FALSE;
-- }
-+ glDisable(GL_LIGHTING);
- }
- /*-----------------------------------------------------------------*/
-
-@@ -593,6 +587,6 @@
-
- GLboolean IsLightOn(void)
- {
-- return (lightOn);
-+ return glIsEnabled(GL_LIGHTING);
- }
- /*-----------------------------------------------------------------*/
-diff -Naur OpenCASCADE6.3.0/ros/src/OpenGl/OpenGl_PrimitiveArray.c OpenCASCADE6.3.0sp6/ros/src/OpenGl/OpenGl_PrimitiveArray.c
---- OpenCASCADE6.3.0/ros/src/OpenGl/OpenGl_PrimitiveArray.c 2008-08-15 15:54:06.000000000 +0200
-+++ OpenCASCADE6.3.0sp6/ros/src/OpenGl/OpenGl_PrimitiveArray.c 2009-10-03 01:04:23.000000000 +0200
-@@ -473,7 +473,7 @@
- if( pfc ) glColor3fv ( pfc[i].rgb );
- if( renderMode == GL_FEEDBACK )
- draw_primitive_elements( p, draw_mode, p->bounds[i],
-- GL_UNSIGNED_INT, (GLenum*) &p->edges[n]);
-+ GL_UNSIGNED_INT,(GLenum*) &p->edges[n]);
- else
- glDrawElements( draw_mode, p->bounds[i],
- GL_UNSIGNED_INT, &p->edges[n]);
-@@ -493,7 +493,7 @@
- } else if( p->num_edges > 0 ) {
- if( renderMode == GL_FEEDBACK )
- draw_primitive_elements( p, draw_mode, p->num_edges,
-- GL_UNSIGNED_INT, (GLenum*) &p->edges[0]);
-+ GL_UNSIGNED_INT,(GLenum*) &p->edges[0]);
- else
- glDrawElements( draw_mode, p->num_edges,
- GL_UNSIGNED_INT, p->edges);
-@@ -809,8 +809,8 @@
- {
- Tint i, j, n;
- Tint edge_type=0, line_type_preserve=0;
-- Tfloat edge_width=0, line_width_preserve=0;
-- /*GLboolean texture_on;*/
-+ Tfloat edge_width=0, line_width_preserve=0;
-+ /* GLboolean texture_on;*/
-
- GLint renderMode;
-
-@@ -875,7 +875,7 @@
- #endif
- if( renderMode == GL_FEEDBACK )
- draw_primitive_elements( p, draw_mode, p->bounds[i],
-- GL_UNSIGNED_INT, (GLenum*) &p->edges[n]);
-+ GL_UNSIGNED_INT, (GLenum*)&p->edges[n]);
- else
- glDrawElements( draw_mode, p->bounds[i],
- GL_UNSIGNED_INT, &p->edges[n]);
-@@ -903,7 +903,7 @@
- #endif
- if( renderMode == GL_FEEDBACK )
- draw_primitive_elements( p, draw_mode, p->num_edges,
-- GL_UNSIGNED_INT, (GLenum*) p->edges);
-+ GL_UNSIGNED_INT,(GLenum*) p->edges);
- else
- glDrawElements( draw_mode, p->num_edges,
- GL_UNSIGNED_INT, p->edges);
-@@ -1641,7 +1641,7 @@
- for( i=n=0 ; i<p->num_bounds ; i++ ) {
- if( renderMode == GL_FEEDBACK )
- draw_primitive_elements( p, draw_mode, p->bounds[i],
-- GL_UNSIGNED_INT, (GLenum*) &p->edges[n]);
-+ GL_UNSIGNED_INT,(GLenum*) &p->edges[n]);
- else
- glDrawElements( draw_mode, p->bounds[i],
- GL_UNSIGNED_INT, &p->edges[n]);
-@@ -1659,7 +1659,7 @@
- } else if( p->num_edges > 0 ) {
- if( renderMode == GL_FEEDBACK )
- draw_primitive_elements( p, draw_mode, p->num_edges,
-- GL_UNSIGNED_INT, (GLenum*) p->edges);
-+ GL_UNSIGNED_INT,(GLenum*) p->edges);
- else
- glDrawElements( draw_mode, p->num_edges,
- GL_UNSIGNED_INT, p->edges);
-diff -Naur OpenCASCADE6.3.0/ros/src/OpenGl/OpenGl_attri.c OpenCASCADE6.3.0sp6/ros/src/OpenGl/OpenGl_attri.c
---- OpenCASCADE6.3.0/ros/src/OpenGl/OpenGl_attri.c 2008-06-27 17:50:05.000000000 +0200
-+++ OpenCASCADE6.3.0sp6/ros/src/OpenGl/OpenGl_attri.c 2009-10-03 01:04:22.000000000 +0200
-@@ -57,11 +57,11 @@
- ************************************************************************/
-
- #define BUC60577 /*GG_101099 Enable to compute correctly
--// transparency with more than one object in the view.
-+ transparency with more than one object in the view.
- */
-
- #define IMP190100 /*GG Push and Pop polyline type and width
--// attributes correctly.
-+ attributes correctly.
- */
-
- #define G003 /*EUG degeneration mode management
-@@ -192,8 +192,8 @@
- TEL_ALIGN_DATA TextAlign;
- /*OCC7456 abd 14.12.2004 Text alingnment attributes */
- Tint PolymarkerType;
-- Tint InteriorReflectanceEquation;
-- Tint BackInteriorReflectanceEquation;
-+ Tint InteriorReflectanceEquation;
-+ Tint BackInteriorReflectanceEquation;
- TEL_SURF_PROP SurfaceAreaProperties;
- TEL_SURF_PROP BackSurfaceAreaProperties;
- TelCullMode FaceCullingMode;
-@@ -267,8 +267,8 @@
- 0 }, /*Vertical Text Alignment*/
- /*OCC7456 abd 14.12.2004 Text alingnment attributes */
- TEL_PM_PLUS, /* PolymarkerType */
-- CALL_PHIGS_REFL_NONE, /* InteriorReflectanceEquation */
-- CALL_PHIGS_REFL_NONE, /* BackInteriorReflectanceEquation */
-+ CALL_PHIGS_REFL_NONE, /* InteriorReflectanceEquation */
-+ CALL_PHIGS_REFL_NONE, /* BackInteriorReflectanceEquation */
- { 0.2F, 0.8F, 0.1F, 0.0F, /* Coef d eclairage */
- 1.0F, 10.0F, 0.0F,
- 1, 1, 1, 0, 0, /* Etat des eclairage */
-@@ -849,7 +849,7 @@
- #ifdef GER61394
- if( antiAliasingMode & 2 ) glEnable(GL_POLYGON_SMOOTH);
- #endif
-- glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
-+ glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
- glEnable (GL_BLEND);
- }
- }
-@@ -1454,7 +1454,7 @@
- /* ABD 29/10/04 Transform Persistence of Presentation( pan, zoom, rotate ) */
- /*case TelTransformPersistenceFlag:
- k[ i ] -> data.ldata = attri_tail->TransPersFlag;
-- //transform_persistence_begin( attri_tail->TransPersFlag );
-+ transform_persistence_begin( attri_tail->TransPersFlag );
- break;
- */
- case TelTransformPersistence:
-@@ -1539,7 +1539,7 @@
- printf(" controle mode rm == CALL_PHIGS_REFL_NONE : %d\n", rm == CALL_PHIGS_REFL_NONE);
- #endif
-
-- if( rm == CALL_PHIGS_REFL_NONE ) return;
-+ if( rm == CALL_PHIGS_REFL_NONE ) return;
-
- /*
- * Gestion de la transparence
-@@ -1785,7 +1785,7 @@
- }
- else
- {
-- newDiff3 = 1.0F;
-+ newDiff3 = 1.0F;
- if (SecondPassDo)
- {
- newDiff3 = prop->env_reflexion;
-@@ -1803,11 +1803,24 @@
- differs from the previous value */
- if ( mDiff[0] != 0.0 || mDiff[1] != 0.0 || mDiff[2] != 0.0
- || fabs(mDiff[3] - newDiff3) > 0.01 )
-+
- {
- mDiff[0] = 0.0F;
- mDiff[1] = 0.0F;
- mDiff[2] = 0.0F;
- mDiff[3] = newDiff3;
-+
-+ if (SecondPassDo)
-+ {
-+ mDiff[3] = prop->env_reflexion;
-+ }
-+ else
-+ {
-+ if (need_trans) mDiff[3] = prop->trans;
-+ /* si le materiau reflechi la scene environnante,
-+ alors il faudra faire une seconde passe */
-+ if (prop->env_reflexion != 0.0) SecondPassNeeded = 1;
-+ }
-
- glMaterialfv(face, GL_DIFFUSE, mDiff);
- #ifdef TRACE_MATERIAL
-diff -Naur OpenCASCADE6.3.0/ros/src/OpenGl/OpenGl_execstruct.c OpenCASCADE6.3.0sp6/ros/src/OpenGl/OpenGl_execstruct.c
---- OpenCASCADE6.3.0/ros/src/OpenGl/OpenGl_execstruct.c 2005-09-16 19:35:46.000000000 +0200
-+++ OpenCASCADE6.3.0sp6/ros/src/OpenGl/OpenGl_execstruct.c 2009-10-03 01:04:23.000000000 +0200
-@@ -28,8 +28,11 @@
- 16-06-2000 : ATS,GG : G005 : Some conditions for execution of PARRAY primitives
-
- ************************************************************************/
-+#ifdef DEBUG
-+#define TRACE
-+#define TRACE_EXEC
-+#endif
-
--#define xTRACE
- #define G003 /* EUG 16-09-99 G003 ZBufferAuto treatment
- */
-
-diff -Naur OpenCASCADE6.3.0/ros/src/OpenGl/OpenGl_initelem.c OpenCASCADE6.3.0sp6/ros/src/OpenGl/OpenGl_initelem.c
---- OpenCASCADE6.3.0/ros/src/OpenGl/OpenGl_initelem.c 2005-09-16 19:35:47.000000000 +0200
-+++ OpenCASCADE6.3.0sp6/ros/src/OpenGl/OpenGl_initelem.c 2009-10-03 01:04:22.000000000 +0200
-@@ -982,14 +982,14 @@
- Tint i, k1, k2, offset;
- unsigned char raster[] = {
-
-- 0x08,0x00,
-- 0x08,0x00,
-- 0x08,0x00,
-- 0x08,0x00,
-- 0xff,0x80,
-- 0x08,0x00,
-- 0x08,0x00,
-- 0x08,0x00,
-+ 0x08,0x00,
-+ 0x08,0x00,
-+ 0x08,0x00,
-+ 0x08,0x00,
-+ 0xff,0x80,
-+ 0x08,0x00,
-+ 0x08,0x00,
-+ 0x08,0x00,
- 0x08,0x00, /* PLUS 9x9 = 1.0 */
-
- 0x04,0x00,
-@@ -2193,8 +2193,6 @@
- #ifdef OCC7667
- GLsizei w, h, size, j;
- #endif
--
--
- k1 = i / TEL_NO_OF_SIZES;
- k2 = i % TEL_NO_OF_SIZES;
- offset = array[k1][k2].offset;
-@@ -2207,9 +2205,14 @@
- glNewList( (GLuint) array[k1][k2].str[0]+markerBase, GL_COMPILE);
-
- #ifdef OCC7667
-- glBitmap( w, h, (float)(array[k1][k2].width) / ( float )2.0,
-+
-+#if 1
-+ glBitmap( w, h, (float)(array[k1][k2].width) / ( float )2.0,
- (float)(array[k1][k2].height) / ( float )2.0,
- ( float )30.0, ( float )30.0, (const GLubyte *) &raster[offset]);
-+#else
-+ glBitmap( w, h, (float) (w / 2), (float) (h / 2), 30.0f, 30.0f, (const GLubyte *) &raster[offset]);
-+#endif
-
- glPassThrough( GL2PS_MARKER );
- glPassThrough( ( GLfloat ) array[k1][k2].width );
-diff -Naur OpenCASCADE6.3.0/ros/src/OpenGl/OpenGl_subrvis.c OpenCASCADE6.3.0sp6/ros/src/OpenGl/OpenGl_subrvis.c
---- OpenCASCADE6.3.0/ros/src/OpenGl/OpenGl_subrvis.c 2005-03-18 16:17:17.000000000 +0100
-+++ OpenCASCADE6.3.0sp6/ros/src/OpenGl/OpenGl_subrvis.c 2009-10-03 01:04:23.000000000 +0200
-@@ -60,17 +60,17 @@
-
- #ifdef WNT
- #define BUC60579 /*GG_240999 Under WNT,resets the ws attributes for each
--// created view-manager and not only for the first
-+ created view-manager and not only for the first
- */
- #endif
-
- #define IMP190100 /*GG Reverse the front & back depth cueing planes
--// position.
-+ position.
- */
-
- #define RIC120302 /*GG Use TxglSetWindow instead TxglCreateWindow
--// when a GLXContext is given
--// Add call_subr_displayCB function
-+ when a GLXContext is given
-+ Add call_subr_displayCB function
- */
-
- #define BUC61044 /* 25/10/01 SAV ; added functionality to control gl depth testing
-@@ -735,8 +735,17 @@
- call_subr_close_ws( CALL_DEF_VIEW * aview )
- {
- CMN_KEY_DATA key;
-+
-+/* PCD 26/06/07 ------ Starts */
- #ifdef OCC1188
- tsm_bg_texture texture;
-+#endif
-+ /* make sure the proper rendering context is current */
-+ TsmGetWSAttri( aview->WsId, WSWindow, &key );
-+ TxglWinset( call_thedisplay, (Window) key.ldata );
-+
-+#ifdef OCC1188
-+/* PCD 26/06/07 ------ Ends */
-
- TsmGetWSAttri( aview->WsId, WSBgTexture, &key );
- texture = key.pdata;
-diff -Naur OpenCASCADE6.3.0/ros/src/OpenGl/OpenGl_tXfm.c OpenCASCADE6.3.0sp6/ros/src/OpenGl/OpenGl_tXfm.c
---- OpenCASCADE6.3.0/ros/src/OpenGl/OpenGl_tXfm.c 2008-08-15 15:54:07.000000000 +0200
-+++ OpenCASCADE6.3.0sp6/ros/src/OpenGl/OpenGl_tXfm.c 2009-10-03 01:04:23.000000000 +0200
-@@ -3,24 +3,24 @@
- FONCTION :
- ----------
- File OpenGl_tXfm.c :
--
-+
-
- REMARQUES:
-- ----------
--
-- Dans la methode alloc_new_font() des que l'on depasse
-+ ----------
-+
-+ Dans la methode alloc_new_font() des que l'on depasse
- (last_font > CACHE_SIZE) les performances s'ecroulent.
--
-+
-
- HISTORIQUE DES MODIFICATIONS :
- --------------------------------
- xx-xx-xx : xxx ; Creation.
- 26-06-96 : FMN ; Correction des textes clippes. On utilise glXUseXFont()
-- 27-06-96 : FMN ; Correction hauteur des textes.
-+ 27-06-96 : FMN ; Correction hauteur des textes.
- 14-02-97 : FMN ; Suppression de MYGLXUSEXFONT
- 12-09-97 : CAL ; Protection si tXfmfindfont echoue.
- modifs dans tXfmfindfont, tXfmsetfont et tXfmprstr
-- 02-11-98 : FMN ; PRO12916: Desactivation de la gestion du CharacterExpansionFactor
-+ 02-11-98 : FMN ; PRO12916: Desactivation de la gestion du CharacterExpansionFactor
- qui n'est pas implementee. Ce point sera traite de maniere
- complete avec l'utilisation d'une librairie specifique
- de type GLC. Pour le moment il est preferable de le
-@@ -89,14 +89,14 @@
- #else
- #define MAX_X11_COORD (1 << 15)
- #endif
--
-+
- #define MAX_GLYPHS_PER_GRAB 512 /* this is big enough for 2^9 glyph character sets */
-
- /*----------------------------------------------------------------------*/
- /*
- * Prototypes fonctions internes
- */
--
-+
- static int getXfontind(float *, float , int );
- static void getXsizefromstr(float *, char **, int );
- static txfmfonthandle alloc_new_font(char *);
-@@ -111,77 +111,84 @@
- static txfmfonthandle tXfmfontset[CACHE_SIZE];
-
- static int last_font = 0;
--static FontEntry fontEntry[] =
-+static FontEntry fontEntry[] =
- {
- {"Courier",
- "-adobe-courier-medium-r-normal--*-*-*-*-*-*-iso8859-1",
-- { 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-- 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-- 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-- 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F},
-+ { 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-+ 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-+ 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-+ 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F},
-+ 0},
-+ {"Courier-Bold",
-+ "-adobe-courier-bold-r-normal--*-*-*-*-*-*-iso8859-1",
-+ { 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-+ 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-+ 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-+ 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F},
- 0},
- {"Times-Roman",
- "-adobe-times-medium-r-normal--*-*-*-*-*-*-iso8859-1",
-- { 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-- 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-- 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-- 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F},
-+ { 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-+ 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-+ 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-+ 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F},
- 0},
- {"Times-Bold",
- "-adobe-times-bold-r-normal--*-*-*-*-*-*-iso8859-1",
-- { 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-- 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-- 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-- 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F},
-+ { 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-+ 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-+ 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-+ 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F},
- 0},
- {"Times-Italic",
- "-adobe-times-medium-i-normal--*-*-*-*-*-*-iso8859-1",
-- { 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-- 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-- 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-- 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F},
-+ { 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-+ 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-+ 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-+ 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F},
- 0},
- {"Times-BoldItalic",
- "-adobe-times-bold-i-normal--*-*-*-*-*-*-iso8859-1",
-- { 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-- 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-- 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-+ { 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-+ 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-+ 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
- 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F},
- 0},
- {"ZapfChancery-MediumItalic",
- "-adobe-itc zapf chancery-medium-i-normal--*-*-*-*-*-*-iso8859-1",
-- { 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-- 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-- 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-- 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F},
-+ { 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-+ 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-+ 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-+ 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F},
- 0},
- {"Symbol",
- "-adobe-symbol-medium-r-normal--*-*-*-*-*-*-adobe-fontspecific",
-- { 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-- 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-- 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-- 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F},
-+ { 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-+ 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-+ 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-+ 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F},
- 0},
- {"ZapfDingbats",
- "-adobe-itc zapf dingbats-medium-r-normal--*-*-*-*-*-*-adobe-fontspecific",
-- { 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-- 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-- 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-- 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F},
-+ { 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-+ 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-+ 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-+ 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F},
- 0},
- {"Rock",
- "-sgi-rock-medium-r-normal--*-*-*-*-p-*-iso8859-1",
-- { 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-- 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-- 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-- 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F},
-+ { 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-+ 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-+ 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-+ 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F},
- 0},
- {"Iris",
- "--iris-medium-r-normal--*-*-*-*-m-*-iso8859-1",
-- { 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-- 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-- 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-- 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F},
-+ { 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-+ 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-+ 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
-+ 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F},
- 0}
- };
-
-@@ -196,16 +203,16 @@
- {
- int dir = 0, asc = 0, des = 0;
- XCharStruct mes;
--
-+
- if (current_fonthandle != NULL && current_fonthandle->fontInfo != NULL && str != NULL )
- {
- XTextExtents(current_fonthandle->fontInfo, str, strlen(str), &dir, &asc, &des, &mes);
-
- #ifdef TRACE
-- printf("XTextExtents::asc = %d des = %d width = %d \n", asc, des, mes.width);
-+ printf("XTextExtents::asc = %d des = %d width = %d \n", asc, des, mes.width);
- #endif
- *Ascent = current_fonthandle->fontInfo->ascent;
-- *Descent = current_fonthandle->fontInfo->descent;
-+ *Descent = current_fonthandle->fontInfo->descent;
- *Width = mes.width;
- }
- else
-@@ -234,10 +241,10 @@
- req_size = bestfont_size*1.36F; /* 98/72 dpi*/
- #endif
-
-- /*
-- * Verifie que la (fonte,taille) n'ont pas deja ete traite
-+ /*
-+ * Verifie que la (fonte,taille) n'ont pas deja ete traite
- */
--
-+
- for (i=0, a=0; i < last_font && !found_font; i++) {
- if(strcmp(tXfmfontset[i]->fontname, fontname) == 0) {
- if((tXfmfontset[i]->charsize) == req_size) {
-@@ -254,10 +261,10 @@
- }
- if (found_font) return (current_fonthandle);
-
-- /*
-+ /*
- * Recherche dans les fontes disponibles: fontEntry
- */
--
-+
- for (i=0 ; i< NUM_FONT_ENTRIES ; i++) {
- if( strcmp(fontname, fontEntry[i].name) == 0 ) {
- found_entry = 1;
-@@ -296,7 +303,7 @@
- break;
- }
- }
--
-+
- if (found_font) return (current_fonthandle);
-
- fonthandle = alloc_new_font(fontname);
-@@ -328,7 +335,7 @@
-
- fonthandle = current_fonthandle;
-
-- isNeedUpdate = 0; /* = 1 if doesn't exist font or
-+ isNeedUpdate = 0; /* = 1 if doesn't exist font or
- if needs for regenerate font ( Number of LastFont is exeeds maxFontSize,
- i.e.fonthandle->dirty = 1 ) */
- if ( fonthandle->listBase ) {
-@@ -337,14 +344,14 @@
- isNeedUpdate = 0;
- pBase = fonthandle->listBase; /*OCC6247*/
- /*return(fonthandle->listBase);*/ /*OCC6247*/
-- }
-+ }
- else /* dirty , reutilise fonthandle */
-- {
-+ {
- isNeedUpdate = 1;
- pBase = fonthandle->listBase;
- }
-- }
-- else
-+ }
-+ else
- {
- isNeedUpdate = 1; /* Nouvelle fonte */
- pBase = glGenLists(NUM_CHAR_FONT);
-@@ -371,10 +378,10 @@
- fonthandle->listBase = pBase;
- fonthandle->dirty = 0;
- fonthandle->fontInfo = fontInfo;
--
-+
- fonthandle->xscale = txfmxscale;
- fonthandle->yscale = txfmyscale;
--
-+
- /* XFreeFont( fonthandle->dpy, fontInfo); */
- return(pBase);
- }
-@@ -398,7 +405,7 @@
-
- /* OCC7456 abd 14.12.2004 Text alignment attributes */
-
-- if (Base == 0)
-+ if (Base == 0)
- return;
-
- /* OCC7456 abd 14.12.2004 Text alignment attributes */
-@@ -455,9 +462,9 @@
- glGetIntegerv( GL_VIEWPORT, (GLint*)viewport );
-
- gluProject( x, y, z, (GLdouble*)modelMatrix, (GLdouble*)projMatrix, (GLint*)viewport, &xw, &yw, &zw );
-- gluUnProject( xw - xdis, yw - ydis, zw,
-+ gluUnProject( xw - xdis, yw - ydis, zw,
- (GLdouble*)modelMatrix, (GLdouble*)projMatrix, (GLint*)viewport,
-- &xv, &yv, &zv );
-+ &xv, &yv, &zv );
- glRasterPos3d(xv, yv, zv);
-
- /*OCC7456 abd 14.12.2004 Text alignment attributes */
-@@ -466,11 +473,11 @@
- /* SAMTECH modif -- Geoff Levner 19/7/2007 -- added render mode test */
- glGetIntegerv(GL_RENDER_MODE, &renderMode);
- if (renderMode == GL_FEEDBACK) {
-- exportText( (char*) str, current_fontname,
-- current_fonthandle->charsize * call_tox_getpitchsize(),
-- x, y, z, GL_FALSE );
-- glRasterPos3f( x, y, z );
-- }
-+ exportText((char*) str, current_fontname,
-+ current_fonthandle->charsize * call_tox_getpitchsize(),
-+ x, y, z, GL_FALSE );
-+ glRasterPos3f( x, y, z );
-+ }
- #endif
-
- glPushAttrib(GL_LIST_BIT);
-@@ -600,7 +607,7 @@
- #endif
-
- typedef struct _font_handle {
--
-+
- GLuint listBase;
- HGLRC curRC;
- float xScale;
-@@ -632,7 +639,7 @@
- float charRatios[MAX_NB_CHARS];
- } TM_FONT_HANDLE;
- #endif
--
-+
- typedef struct _font_entry {
-
- char* name;
-@@ -674,9 +681,9 @@
- static int useTexFont = 0;
- static int curTexFont = -1;
- TEL_POINT char_offsets[4] =
-- { { 0., 0., 0. },
-- { 0., 0., 0. },
-- { 0., 0., 0. },
-+ { { 0., 0., 0. },
-+ { 0., 0., 0. },
-+ { 0., 0., 0. },
- { 0., 0., 0. } };
-
- #endif
-@@ -695,13 +702,13 @@
- void sizeString(char *str, GLint *Width, GLint *Ascent, GLint *Descent)
- {
- /* int dir, asc, des;*/
--
-+
- if (curFont != -1)
- {
-- *Ascent = (int)fontEntry[ curFont ].fs[ curSize ].lHeight
-+ *Ascent = (int)fontEntry[ curFont ].fs[ curSize ].lHeight
- - (int)fontEntry[ curFont ].fs[ curSize ].lInternalLeading
- - (int)fontEntry[ curFont ].fs[ curSize ].lDescent;
-- *Descent = (int)fontEntry[ curFont ].fs[ curSize ].lDescent;
-+ *Descent = (int)fontEntry[ curFont ].fs[ curSize ].lDescent;
- *Width = fontEntry[ curFont ].fs[ curSize ].lWidth * strlen(str);
- }
- else
-@@ -711,7 +718,7 @@
- *Width = 0;
- }
- #ifdef TRACE
-- printf("sizeString::asc = %d des = %d width = %d \n", *Ascent, *Descent, *Width);
-+ printf("sizeString::asc = %d des = %d width = %d \n", *Ascent, *Descent, *Width);
- #endif
- }
-
-@@ -720,12 +727,18 @@
-
- /* loadTexFont(): Prepares a square texture containing glyphs for the given font */
-
--/* Current limitations:
-+/* Current limitations:
- - texture of fixed size 256 x 256 pixels is used,
- - each glyph occupies a 16 x 16 square in the texture,
- - fixed font height (16) is used for texture creation */
-+
-+
-+
-+
- static GLint loadTexFont(char* fontName, TM_FONT_HANDLE* fontHandle)
- {
-+
-+
- GLint tex_id = -1;
- HFONT font;
- HDC hMemDC, hDC = NULL;
-@@ -734,13 +747,15 @@
- BITMAPINFO bi;
- HBITMAP hBmp, hOldBmp;
- const int spacing = 2; /* spacing between characters in a string */
-- GLubyte fontBits [256 * 256 * 3]; /* font bitmap array: RGB */
-- GLubyte ifontBits[256 * 256 * 2]; /* texture array: luminance and alpha */
-+ /* DFA 2007-04-17 make these static to prevent stack overflow. */
-+ static GLubyte fontBits [256 * 256 * 3]; /* font bitmap array: RGB */
-+ static GLubyte ifontBits[256 * 256 * 2]; /* texture array: luminance and alpha */
- int charWidths[MAX_NB_CHARS];
-
- if ( !fontHandle )
- return tex_id;
-
-+
- memset(fontHandle, 0, sizeof(TM_FONT_HANDLE));
-
- fontHandle->curRC = wglGetCurrentContext();
-@@ -766,7 +781,7 @@
- hDC = wglGetCurrentDC();
- hMemDC = CreateCompatibleDC(hDC);
- hBmp = CreateCompatibleBitmap(hDC, fontHandle->texSize, fontHandle->texSize);
-- hOldBmp = (HBITMAP)SelectObject(hMemDC, hBmp);
-+ hOldBmp = (HBITMAP)SelectObject(hMemDC, hBmp);
- SelectObject(hMemDC, font);
- SetTextColor(hMemDC, RGB(255, 255, 255));
- SetBkColor (hMemDC, RGB(0, 0, 0));
-@@ -791,7 +806,7 @@
- bi.bmiHeader.biHeight = -fontHandle->texSize;
- bi.bmiHeader.biWidth = fontHandle->texSize;
- bi.bmiHeader.biCompression = BI_RGB;
-- SelectObject(hMemDC, hOldBmp);
-+ SelectObject(hMemDC, hOldBmp);
- num = GetDIBits(hMemDC, hBmp, 0, fontHandle->texSize, fontBits, &bi, DIB_RGB_COLORS);
-
- /* prepare an array of alpha and luminance values */
-@@ -803,38 +818,51 @@
- }
-
- /* create the font texture */
-+
-+ /*BUG OCC13611 - remember parameters of texture mapping*/
-+ glPushAttrib( GL_ENABLE_BIT | GL_TEXTURE_BIT );
-+
- glGenTextures(1, &tex_id);
- glBindTexture(GL_TEXTURE_2D, tex_id);
- glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
- glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
-- glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S,
-+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S,
- GL_REPEAT);
-- glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER,
-+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER,
- GL_NEAREST);
-- glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
-+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
- GL_NEAREST);
-
-- glTexImage2D(GL_TEXTURE_2D,
-- 0,
-+ glTexImage2D(GL_TEXTURE_2D,
-+ 0,
- GL_INTENSITY,
-- fontHandle->texSize,
-- fontHandle->texSize,
-- 0,
-- GL_LUMINANCE_ALPHA,
-- GL_UNSIGNED_BYTE,
-+ fontHandle->texSize,
-+ fontHandle->texSize,
-+ 0,
-+ GL_LUMINANCE_ALPHA,
-+ GL_UNSIGNED_BYTE,
- ifontBits);
-
- fontHandle->textureId = tex_id;
-
-+ glPopAttrib();
-+
-+ /*
-+ * free windows resources
-+ */
-+ DeleteObject(font);
-+ DeleteObject(hBmp);
-+ DeleteDC(hMemDC);
-+
- return tex_id;
- }
-
-
--/* texPrint(): displays a string using texture <tex_id>,
-+/* texPrint(): displays a string using texture <tex_id>,
- <offsets> is used to convert quickly 16-pixel offset in viewport co-ordinates
- to offsets in world co-ordinates */
-
--/* Current limitations:
-+/* Current limitations:
- - texture of fixed size 256 x 256 pixels is used */
- static void texPrint( Tchar* data, TM_FONT_HANDLE* fontHandle, TEL_POINT* offsets )
- {
-@@ -862,11 +890,11 @@
-
- glBindTexture(GL_TEXTURE_2D, fontHandle->textureId);
- glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
--
-+
- l = strlen(data);
-
- glBegin(GL_QUADS);
--
-+
- for (i = 0; i < l; i++)
- {
- code = data[i];
-@@ -880,7 +908,7 @@
- tx1 = b / divisor;
- ty0 = c / divisor;
- ty1 = d / divisor;
--
-+
- glTexCoord2f(tx0, ty0);
- glVertex3f(x, y, z);
- glTexCoord2f(tx1, ty0);
-@@ -906,15 +934,17 @@
- void WNTUseTexMappedFont( int flag )
- {
- int i;
--
- if (flag && !useTexFont && curFont != -1)
- {
- FONT_ENTRY* fe = &fontEntry[curFont];
- HGLRC curRC = wglGetCurrentContext();
-
- for (i = 0; i < MAX_FONT_TEXTURES; i++ )
-- {
-- if (fe->tfh[i].curRC == curRC)
-+ {
-+ /*BUG OCC15715*/
-+ /* Looking for an existing texture for the current RC or the first empty item in
-+ the texture cache (with curRC == 0) */
-+ if (fe->tfh[i].curRC == curRC ||fe->tfh[i].curRC == 0)
- break;
- }
-
-@@ -924,10 +954,14 @@
- glDeleteTextures(1, &(fe->tfh[i].textureId));
- }
-
-- if ( fe->tfh[i].curRC != curRC || fe->tfh[i].textureId == 0)
-- loadTexFont( fe->lfFaceName, &(fe->tfh[i]) );
-+ if ( fe->tfh[i].curRC !=curRC || fe->tfh[i].textureId == 0){
-+ loadTexFont( fe->lfFaceName, &(fe->tfh[i]) );
-+ }
-+
-+
-+
-+ curTexFont = i;
-
-- curTexFont = i;
- }
-
- useTexFont = flag;
-@@ -958,14 +992,14 @@
- #ifdef OCC2934
- texLoadNeeded = (useTexFont && curFont != i);
- #endif
--
-+
- fs = &( fontEntry[ i ].fs[ 0 ] );
- curFont = i;
-
- for ( i = 0; i < MAX_FONT_SIZES; ++i ) {
--
-+
- if ( fs[ i ].charSize == 0 ) {
--
-+
- curSize = i;
-
- loadNewFont ( &( fs[ i ].fh[ 0 ] ), bestSize, TRUE );
-@@ -973,36 +1007,36 @@
- break;
-
- } else if ( fs[ i ].charSize == bestSize ) {
--
-+
- curSize = i;
- updateSizeUsage ();
--
-- break;
--
-+
-+ break;
-+
- } /* end if */
--
-+
- } /* end for */
-
- if ( i == MAX_FONT_SIZES ) {
--
-+
- min_val = UINT_MAX;
- min_idx = 0;
--
-+
- for ( i = 0; i < MAX_FONT_SIZES; ++i )
--
-+
- if ( fs[ i ].useCount < min_val ) {
--
-+
- min_val = fs -> useCount;
-- min_idx = i;
--
-+ min_idx = i;
-+
- } /* end if */
-
- curSize = min_idx;
-
- loadNewFont ( &( fs[ min_idx ].fh[ 0 ] ), bestSize, TRUE );
--
-+
- } /* end if */
--
-+
- } /* end else */
-
- #ifdef OCC2934
-@@ -1012,8 +1046,11 @@
- HGLRC curRC = wglGetCurrentContext();
-
- for (i = 0; i < MAX_FONT_TEXTURES; i++ )
-- {
-- if (fe->tfh[i].curRC == curRC)
-+ {
-+ /*BUG OCC15715*/
-+ /* Looking for an existing texture for the current RC or the first empty item in
-+ the texture cache (with curRC == 0) */
-+ if (fe->tfh[i].curRC == curRC ||fe->tfh[i].curRC == 0)
- break;
- }
-
-@@ -1023,8 +1060,11 @@
- glDeleteTextures(1, &(fe->tfh[i].textureId));
- }
-
-- if ( fe->tfh[i].curRC != curRC || fe->tfh[i].textureId == 0)
-- loadTexFont( fe->lfFaceName, &(fe->tfh[i]) );
-+
-+ if ( fe->tfh[i].curRC != curRC || fe->tfh[i].textureId == 0){
-+ loadTexFont( fe->lfFaceName, &(fe->tfh[i]) );
-+
-+ }
-
- curTexFont = i;
- }
-@@ -1054,13 +1094,13 @@
- fh[ i ].yScale == yScale &&
- fh[ i ].curRC == hGLRC
- ) {
--
-+
- retVal = fh[ i ].listBase;
- curScale = i;
- updateScaleUsage ();
--
-- break;
--
-+
-+ break;
-+
- } else if ( fh[ i ].xScale == 0.0F && fh[ i ].yScale == 0.0F ) {
-
- newScale = TRUE;
-@@ -1069,7 +1109,7 @@
- } /* end if */
-
- if ( !retVal ) {
--
-+
- if ( newScale ) {
-
- fh[ i ].xScale = xScale;
-@@ -1080,19 +1120,19 @@
- loadNewFont ( &fh[ i ], 0.0F, FALSE );
-
- retVal = fh[ i ].listBase;
--
-+
- } else {
--
-+
- min_val = UINT_MAX;
- min_idx = 0;
--
-- for ( i = 0; i < MAX_FONT_SCALES; ++i )
--
-- if ( fh[ i ].useCount < min_val ) {
--
-+
-+ for ( i = 0; i < MAX_FONT_SCALES; ++i )
-+
-+ if ( fh[ i ].useCount < min_val ) {
-+
- min_val = fh -> useCount;
-- min_idx = i;
--
-+ min_idx = i;
-+
- } /* end if */
-
- fh[ min_idx ].xScale = xScale;
-@@ -1101,7 +1141,7 @@
- curScale = i;
-
- loadNewFont ( &fh[ min_idx ], 0.0F, FALSE );
--
-+
- retVal = fh[ min_idx ].listBase;
-
- } /* end else ( newScale . . . ) */
-@@ -1188,10 +1228,10 @@
- /* SAMTECH modif -- Geoff Levner 19/7/2007 -- added render mode test */
- glGetIntegerv(GL_RENDER_MODE, &renderMode);
- if (renderMode == GL_FEEDBACK) {
-- exportText( str, fontEntry[curFont].name,
-- ( GLfloat )fontEntry[ curFont ].fs[ curSize ].lHeight,
-- x, y, z, is2d!=0 );
-- }
-+ exportText( str, fontEntry[curFont].name,
-+ ( GLfloat )fontEntry[ curFont ].fs[ curSize ].lHeight,
-+ x, y, z, is2d!=0 );
-+}
- #endif
-
- #ifdef OCC2934
-@@ -1205,7 +1245,7 @@
- glPushMatrix();
-
- glTranslatef(x, y, z);
--
-+
- texPrint( str, &(fontEntry[curFont].tfh[curTexFont]), char_offsets );
-
- /* Restore previous matrices */
-@@ -1227,12 +1267,12 @@
- glGetIntegerv( GL_VIEWPORT, (GLint*)viewport );
-
- gluProject( x, y, z, (GLdouble*)modelMatrix, (GLdouble*)projMatrix, (GLint*)viewport, &xw, &yw, &zw );
-- gluUnProject( xw - xdis, yw - ydis, zw,
-+ gluUnProject( xw - xdis, yw - ydis, zw,
- (GLdouble*)modelMatrix, (GLdouble*)projMatrix, (GLint*)viewport,
-- &xv, &yv, &zv );
-+ &xv, &yv, &zv );
- glRasterPos3d(xv, yv, zv);
- /*OCC7456 abd 14.12.2004 Text alingnment attributes */
-- //glRasterPos3f(x, y, z);
-+ /*glRasterPos3f(x, y, z); */
- }
- #endif
-
-@@ -1262,10 +1302,10 @@
- glPixelTransferi ( GL_MAP_COLOR, GL_TRUE );
-
- glCallLists ( lstrlen ( str ), GL_UNSIGNED_BYTE, str );
--
-- /*san -- 12/11/2004 -- OCC7190 Texture-mapped fonts don't work,
-+
-+ /*san -- 12/11/2004 -- OCC7190 Texture-mapped fonts don't work,
- as soon as any old-style (bitmap) text is displayed */
-- glPixelTransferi(GL_MAP_COLOR, GL_FALSE);
-+ glPixelTransferi(GL_MAP_COLOR, GL_FALSE);
-
- glDisable ( GL_ALPHA_TEST );
-
-@@ -1287,18 +1327,18 @@
- ZeroMemory ( ( PVOID )&lf, sizeof ( LOGFONT ) );
-
- if ( newSize ) {
--
-+
- fhTemp = fontEntry[ curFont ].fs[ curSize ].fh;
-
- for ( i = 0; i < MAX_FONT_SCALES; ++i )
--
-+
- if ( fhTemp[ i ].listBase ) {
-
- glDeleteLists (fhTemp[ i ].listBase, fontEntry[ curFont ].fs[ curSize ].listRange);
- ZeroMemory ( ( PVOID )&fhTemp[ i ], sizeof ( FONT_HANDLE ) );
-
- } else
--
-+
- break;
-
- fh -> xScale = 1.0F;
-@@ -1333,14 +1373,14 @@
- fontEntry[ curFont ].fs[ curSize ].lInternalLeading = tm.tmInternalLeading;
- fontEntry[ curFont ].fs[ curSize ].lDescent = tm.tmDescent;
-
-- }
-- else
-+ }
-+ else
- { /* new scale */
--
-+
- if ( fh -> listBase )
-
- glDeleteLists (fh -> listBase, fontEntry[ curFont ].fs[ curSize ].listRange);
--
-+
- lf.lfHeight = ( LONG )( fontEntry[ curFont ].fs[ curSize ].lHeight * fh -> yScale );
- lf.lfWidth = ( LONG )( fontEntry[ curFont ].fs[ curSize ].lWidth * fh -> xScale );
- lf.lfCharSet = ANSI_CHARSET;
-@@ -1359,7 +1399,7 @@
- DeleteObject ( hFont );
-
- fh -> curRC = wglGetCurrentContext ();
--
-+
- } /* end else ( newSize . . . ) */
-
- } /* end loadNewFont */
-@@ -1372,8 +1412,8 @@
-
- if ( fontEntry[ curFont ].fs[ curSize ].useCount == UINT_MAX )
- for ( i = 0; i < MAX_FONT_SIZES; ++i )
-- fontEntry[ curFont ].fs[ i ].useCount >>= 1;
--
-+ fontEntry[ curFont ].fs[ i ].useCount >>= 1;
-+
- ++fontEntry[ curFont ].fs[ curSize ].useCount;
-
- } /* end updateSizeUsage */
-@@ -1386,7 +1426,7 @@
-
- if ( fontEntry[ curFont ].fs[ curSize ].fh[ curScale ].useCount == UINT_MAX )
- for ( i = 0; i < MAX_FONT_SCALES; ++i )
-- fontEntry[ curFont ].fs[ curSize ].fh[ i ].useCount >>= 1;
-+ fontEntry[ curFont ].fs[ curSize ].fh[ i ].useCount >>= 1;
-
- ++fontEntry[ curFont ].fs[ curSize ].fh[ curScale ].useCount;
-
-@@ -1424,7 +1464,7 @@
- glRasterPos2f( x, y );
- else
- glRasterPos3f( x, y, z );
--
-+
- glBitmap( 1, 1, 0, 0, 0, 0, &zero );
-
- glPassThrough( height );
-diff -Naur OpenCASCADE6.3.0/ros/src/OpenGl/OpenGl_telem_util.c OpenCASCADE6.3.0sp6/ros/src/OpenGl/OpenGl_telem_util.c
---- OpenCASCADE6.3.0/ros/src/OpenGl/OpenGl_telem_util.c 2008-07-25 16:03:54.000000000 +0200
-+++ OpenCASCADE6.3.0sp6/ros/src/OpenGl/OpenGl_telem_util.c 2009-10-03 01:04:22.000000000 +0200
-@@ -3,18 +3,18 @@
- FONCTION :
- ----------
- File OpenGl_telem_util :
--
-+
-
- REMARQUES:
-- ----------
--
-+ ----------
-+
-
- HISTORIQUE DES MODIFICATIONS :
- --------------------------------
- xx-xx-xx : xxx ; Creation.
- 07-02-96 : FMN ; - Ajout trace
- - Suppression code inutile
-- 08-03-96 : FMN ; - Ajout include manquant
-+ 08-03-96 : FMN ; - Ajout include manquant
- 01-04-96 : CAL ; Integration MINSK portage WNT
- 15-04-96 : CAL ; Integration travail PIXMAP de Jim ROTH
- 22-04-96 : FMN ; Ajout TelReadImage TelDrawImage
-@@ -35,7 +35,7 @@
- 18-07-97 : FMN ; Utilisation de la toolkit sur les lights
- 07-10-97 : FMN ; Simplification WNT + correction Transient
- 05-12-97 : FMN ; PRO11168: Suppression TglActiveWs pour project/unproject
-- 23-12-97 : FMN ; Suppression TelSetFrontFaceAttri et TelSetBackFaceAttri
-+ 23-12-97 : FMN ; Suppression TelSetFrontFaceAttri et TelSetBackFaceAttri
- 30-12-97 : FMN ; CTS18312: Correction back material
- 04-05-98 : CAL ; Contournement bug SGI octane bavure de pixels (PRO12899)
- 30-09-98 : CAL ; Optimisation pour eviter de charger inutilement
-@@ -49,8 +49,9 @@
- ************************************************************************/
-
- #define IMP190100 /*GG To avoid too many REDRAW in immediat mode,
--// Add TelMakeFrontAndBackBufCurrent() function
-+ Add TelMakeFrontAndBackBufCurrent() function
- */
-+#define QTOCC_PATCH
-
- /*----------------------------------------------------------------------*/
- /*
-@@ -104,7 +105,7 @@
- /*
- * Variables statiques
- */
--
-+
- static Tint call_back_buffer_restored = TOff;
-
- #ifndef WNT
-@@ -233,10 +234,10 @@
- TelRemdupnames(Tint *ls, Tint num )
- {
- register Tint *ap, *bp, n;
--
-+
- if( num < 2 )
- return num;
--
-+
- ap = bp = ls+1;
- n = num-1;
- while( n-- )
-@@ -246,7 +247,7 @@
- else
- bp++;
- }
--
-+
- return ap-ls;
- }
-
-@@ -255,9 +256,9 @@
- #define GPRECIS 0.000001
- Tint TelGetPolygonNormal(tel_point pnts, Tint* indexs, Tint npnt, Tfloat *norm ) {
- Tint status=0;
--
-+
- norm[0] = norm[1] = norm[2] = 0.;
-- if( npnt > 2 ) {
-+ if( npnt > 2 ) {
- Tfloat a[3], b[3], c[3];
- Tint i,j,i0,ii=0,jj;
-
-@@ -314,7 +315,7 @@
- void
- TelGetNormal(Tfloat *data1, Tfloat *data2, Tfloat *data3, Tfloat *norm ) {
- Tfloat a[3], b[3];
--
-+
- vecsub( a, data2, data1 );
- vecsub( b, data3, data2 );
- veccrs( norm, a, b );
-@@ -326,12 +327,12 @@
- TelIsBackFace(Tmatrix3 n, Tfloat *nrm )
- {
- Tfloat r[4], m[4];
--
-+
- veccpy(m,nrm);
- m[3] = ( float )1.0;
--
-+
- TelTranpt3( r, m, n );
--
-+
- return r[2] < 0.0;
- }
-
-@@ -384,7 +385,7 @@
- {
- register long i, j;
- Tfloat sum;
--
-+
- for( i = 0; i < 4; i++ )
- {
- for( j = 0, sum = ( float )0.0; j < 4; j++ )
-@@ -428,15 +429,15 @@
- }
- else
- {
-- glDrawBuffer(GL_FRONT_AND_BACK);
-- glClearColor(bgcolr, bgcolg, bgcolb, ( float )1.0);
-- glClear(GL_COLOR_BUFFER_BIT);
-+ /* QTOCC_PATCH by PCD: the frame buffer should not be cleared here
-+ to avoid flicker. It is cleared properly in TelClearViews()
-+ called by call_func_redraw_all_structs_begin() */
- glDrawBuffer(GL_BACK);
- }
- #else
-- glDrawBuffer(GL_FRONT_AND_BACK);
-- glClearColor(bgcolr, bgcolg, bgcolb, ( float )1.0);
-- glClear(GL_COLOR_BUFFER_BIT);
-+ /* QTOCC_PATCH by PCD: the frame buffer should not be cleared here
-+ to avoid flicker. It is cleared properly in TelClearViews()
-+ called by call_func_redraw_all_structs_begin() */
- glDrawBuffer(GL_BACK);
- #endif /* WNT */
- }
-@@ -446,6 +447,7 @@
- glClear(GL_COLOR_BUFFER_BIT);
- }
- return;
-+
- }
-
-
-@@ -455,7 +457,7 @@
- #ifndef WNT
-
- CMN_KEY_DATA data;
--
-+
- if (TelTestPixmapDB())
- {
- glFlush();
-@@ -468,9 +470,9 @@
- TsmGetWSAttri( ws, WSWindow, &data );
- glXSwapBuffers ( call_thedisplay, data.ldata );
- }
--
-+
- #else
--
-+
- SwapBuffers ( wglGetCurrentDC () );
- TelFlush(0);
-
-@@ -545,7 +547,7 @@
- glLoadIdentity ();
-
- TelDisable (ws);
-- if (flag)
-+ if (flag)
- {
- /*
- * calcul de la projection de la boite
-@@ -565,7 +567,7 @@
- && (TelProjectionRaster (ws, xm, ym, ZM, &xr[4], &yr[4]) == TSuccess)
- && (TelProjectionRaster (ws, xm, YM, ZM, &xr[5], &yr[5]) == TSuccess)
- && (TelProjectionRaster (ws, XM, YM, ZM, &xr[6], &yr[6]) == TSuccess)
-- && (TelProjectionRaster (ws, XM, ym, ZM, &xr[7], &yr[7]) == TSuccess))
-+ && (TelProjectionRaster (ws, XM, ym, ZM, &xr[7], &yr[7]) == TSuccess))
- {
- xmr = ymr = (float ) shortreallast ();
- XMR = YMR = (float ) shortrealfirst ();
-@@ -581,7 +583,7 @@
- /* pour eviter les bavures de pixels ! */
- xmr--;ymr--;
- XMR++;YMR++;
--
-+
- /*
- * Ajout CAL : 10/05/96
- * Si les MinMax viennent d'un ensemble de markers
-@@ -594,7 +596,7 @@
- */
- xmr -= CALL_DEF_DELTA; ymr -= CALL_DEF_DELTA;
- XMR += CALL_DEF_DELTA; YMR += CALL_DEF_DELTA;
--
-+
- /*
- * Le rectangle projete peut-etre clippe
- */
-@@ -619,7 +621,7 @@
- if (ymr < 0) { height = (GLsizei) (YMR+1); ymr = 0; }
- if (XMR > w) { width = (GLsizei) (w-xmr+1); }
- if (YMR > h) { height = (GLsizei) (h-ymr+1); }
--
-+
- /* cas ou les 2 coins sont en dehors de la fenetre */
- if (XMR < 0) { xmr = 0; width = height = 1; }
- if (YMR < 0) { ymr = 0; width = height = 1; }
-@@ -639,7 +641,7 @@
- glCopyPixels ((GLint) xmr, (GLint) ymr, width, height, GL_COLOR);
- /* TelFlush (1); */
- }
-- else
-+ else
- {
- glDrawBuffer (to);
- /* TelClearViews (ws); */
-@@ -650,7 +652,7 @@
- /* TelFlush (1); */
- }
- }
-- else
-+ else
- {
- glDrawBuffer (to);
- /* TelClearViews (ws); */
-@@ -666,7 +668,7 @@
- glPopMatrix ();
- glMatrixMode (GL_MODELVIEW);
- glPopMatrix ();
--
-+
- glDrawBuffer (GL_BACK);
- return;
- }
-@@ -694,17 +696,17 @@
- gluOrtho2D ((GLdouble) 0., (GLdouble) w, 0., (GLdouble) h);
- glMatrixMode (GL_MODELVIEW);
- glLoadIdentity ();
--
-- glReadBuffer(from);
--
-+
-+ glReadBuffer(from);
-+
- glRasterPos2i (posx, posy);
- TelDisable (ws);
- glReadPixels (posx, posy, width, height, GL_RGBA, GL_UNSIGNED_BYTE, image);
- TelEnable (ws);
--
-- glReadBuffer(GL_BACK);
-+
-+ glReadBuffer(GL_BACK);
- }
--
-+
- return;
- }
-
-@@ -731,16 +733,16 @@
- gluOrtho2D ((GLdouble) 0., (GLdouble) w, 0., (GLdouble) h);
- glMatrixMode (GL_MODELVIEW);
- glLoadIdentity ();
--
-+
- glDrawBuffer(to);
--
-+
- glRasterPos2i (posx, posy);
- TelDisable (ws);
- glDrawPixels (width, height, GL_RGBA, GL_UNSIGNED_BYTE, image);
- TelEnable (ws);
-
-- glDrawBuffer(GL_BACK);
-- }
-+ glDrawBuffer(GL_BACK);
-+ }
- return;
- }
-
-@@ -769,13 +771,13 @@
- gluOrtho2D ((GLdouble) 0., (GLdouble) w, 0., (GLdouble) h);
- glMatrixMode (GL_MODELVIEW);
- glLoadIdentity ();
--
-+
- glRasterPos2i (posx, posy);
- TelDisable (ws);
- glReadPixels (posx, posy, width, height, GL_DEPTH_COMPONENT, GL_FLOAT, depths);
- TelEnable (ws);
- }
--
-+
- return;
- }
-
-@@ -811,7 +813,7 @@
- glDisable(GL_DEPTH_TEST);
- glDisable(GL_FOG);
- LightOff();
--
-+
- glDisable(GL_LOGIC_OP);
- glDisable(GL_STENCIL_TEST);
- glDisable(GL_TEXTURE_1D);
-@@ -825,7 +827,7 @@
- glPixelTransferi(GL_BLUE_BIAS, 0);
- glPixelTransferi(GL_ALPHA_SCALE, 1);
- glPixelTransferi(GL_ALPHA_BIAS, 0);
--
-+
- /*
- * Disable extensions that could slow down glDrawPixels.
- * (Actually, you should check for the presence of the proper
-@@ -859,15 +861,15 @@
- CMN_KEY_DATA key;
- Tint vid; /* View index */
- TEL_VIEW_REP vrep; /* View definition */
--
-+
- GLint status;
--
-+
- int i, j, k;
- GLdouble objx, objy, objz;
- GLdouble modelMatrix[16], projMatrix[16];
- GLint viewport[4];
- GLdouble winx, winy, winz;
--
-+
- vid = ws;
-
- if (TelGetViewRepresentation (ws, vid, &vrep) != TSuccess)
-@@ -908,7 +910,7 @@
- *yr = ( Tfloat )winy;
- return TSuccess;
- }
-- else
-+ else
- {
- *xr = 0.0F;
- *yr = 0.0F;
-@@ -924,7 +926,7 @@
- CMN_KEY_DATA key;
- Tint vid; /* View index */
- TEL_VIEW_REP vrep; /* View definition */
--
-+
- int i, j, k;
- GLdouble objx, objy, objz;
- GLdouble modelMatrix[16], projMatrix[16];
-@@ -965,7 +967,7 @@
-
- status = gluUnProject (winx, winy, winz, modelMatrix, projMatrix, viewport,
- &objx, &objy, &objz);
--
-+
- if (status == GL_TRUE) {
- *x = ( Tfloat )objx;
- *y = ( Tfloat )objy;
-@@ -991,7 +993,7 @@
- CMN_KEY_DATA key;
- Tint vid; /* View index */
- TEL_VIEW_REP vrep; /* View definition */
--
-+
- int i, j, k;
- GLdouble objx, objy, objz;
- GLdouble objx1, objy1, objz1;
-@@ -1033,7 +1035,7 @@
-
- status = gluUnProject (winx, winy, winz, modelMatrix, projMatrix, viewport,
- &objx, &objy, &objz);
--
-+
- if (status == GL_TRUE) {
- *x = ( Tfloat )objx;
- *y = ( Tfloat )objy;
-@@ -1042,7 +1044,7 @@
- winz = ( GLdouble ) -10.0;
- status = gluUnProject (winx, winy, winz, modelMatrix, projMatrix, viewport,
- &objx1, &objy1, &objz1);
--
-+
- if (status == GL_TRUE) {
- *dx = ( Tfloat )(objx-objx1);
- *dy = ( Tfloat )(objy-objy1);
-@@ -1075,7 +1077,7 @@
- TelFlush(Tint wait)
- {
- if (wait)
-- {
-+ {
- #ifdef TRACE
- printf("OPENGL: TelFlush: glFinish \n");
- #endif
-@@ -1096,21 +1098,21 @@
- TelIsBackFacePerspective(Tmatrix3 n, Tfloat *p1, Tfloat *p2, Tfloat *p3 )
- {
- Tfloat r1[4], r2[4], r3[4], m[4], norm[4];
--
-+
- veccpy( m, p1 );
- m[3] = ( float )1.0;
- TelTranpt3( r1, m, n );
- r1[0] /= r1[3];
- r1[1] /= r1[3];
- r1[2] /= r1[3];
--
-+
- veccpy( m, p2 );
- m[3] = ( float )1.0;
- TelTranpt3( r2, m, n );
- r2[0] /= r2[3];
- r2[1] /= r2[3];
- r2[2] /= r2[3];
--
-+
- veccpy( m, p3 );
- m[3] = ( float )1.0;
- TelTranpt3( r3, m, n );
-@@ -1118,7 +1120,7 @@
- r3[1] /= r3[3];
- r3[2] /= r3[3];
- TelGetNormal( r1, r2, r3, norm );
--
-+
- return norm[2] < 0.0;
- }
-
-diff -Naur OpenCASCADE6.3.0/ros/src/OpenGl/OpenGl_togl_inquireplane.c OpenCASCADE6.3.0sp6/ros/src/OpenGl/OpenGl_togl_inquireplane.c
---- OpenCASCADE6.3.0/ros/src/OpenGl/OpenGl_togl_inquireplane.c 2001-09-21 09:57:49.000000000 +0200
-+++ OpenCASCADE6.3.0sp6/ros/src/OpenGl/OpenGl_togl_inquireplane.c 2009-10-03 01:04:23.000000000 +0200
-@@ -1,7 +1,10 @@
- #define GER61454 /*GG 14-09-99 Activates the model clipping planes
--// GG 110800 UNDER LINUX and MESA 3.2, nothing can be done until
--// gl context is open first.
-+ GG 110800 UNDER LINUX and MESA 3.2, nothing can be done until
-+ gl context is open first.
- */
-+#ifdef DEBUG
-+#include <stdio.h>
-+#endif
-
- #include <OpenGl_tgl_all.h>
- #include <OpenGl_tgl.h>
-diff -Naur OpenCASCADE6.3.0/ros/src/OpenGl/OpenGl_togl_redraw.c OpenCASCADE6.3.0sp6/ros/src/OpenGl/OpenGl_togl_redraw.c
---- OpenCASCADE6.3.0/ros/src/OpenGl/OpenGl_togl_redraw.c 2008-07-04 17:36:17.000000000 +0200
-+++ OpenCASCADE6.3.0sp6/ros/src/OpenGl/OpenGl_togl_redraw.c 2009-10-03 01:04:22.000000000 +0200
-@@ -24,19 +24,21 @@
- 02.01.100 : JR : = 0 for Integer and = NULL for pointers
- 02.02.100 " #include <GL/glu.h> for declaration of gluErrorString
- 07-03-00 : GG : G004 use the already created pixmap.
-- Enable two side lighting before redrawing in pixmap.
-+ Enable two side lighting before redrawing in pixmap.
-
- ************************************************************************/
-
--#define G004 /* VKH 15-11-99 redrawing view to a large pixmap
-+#define G004 /* VKH 15-11-99 redrawing view to a large pixmap
- */
-
--#define IMP100701 /* GG Enable to display the view in
-- a pixamp with the required depth.
-+#define IMP100701 /* GG Enable to display the view in
-+ a pixamp with the required depth.
- */
-
--#define RIC120302 /* GG Enable to use the application display
--// callback at end of traversal
-+#define RIC120302 /* GG Enable to use the application display
-+ callback at end of traversal
-+ Modified P. Dolbey 09/06/07 to call back
-+ before redrawing the overlayer
- */
-
- /*----------------------------------------------------------------------*/
-@@ -62,7 +64,7 @@
- CALL_DEF_LAYER * anunderlayer,
- CALL_DEF_LAYER * anoverlayer
-
-- Redraws all the structures displayed in the specified view.
-+ Redraws all the structures displayed in the specified view.
-
- call_togl_redraw_area (aview, anunderlayer, anoverlayer, x, y, width, height)
- CALL_DEF_VIEW * aview,
-@@ -70,8 +72,8 @@
- CALL_DEF_LAYER * anoverlayer,
- int x,y,width,height
-
-- Redraws all the structures displayed in the specified view area
-- defined by it upper-left corner and pixel size.
-+ Redraws all the structures displayed in the specified view area
-+ defined by it upper-left corner and pixel size.
- */
-
- #ifdef G004
-@@ -88,17 +90,18 @@
- int nBitsPerPixel);
-
- extern GLboolean OpenGl_AVIWriter_AllowWriting();
-+
- #endif
- GLboolean g_fBitmap;
--#endif /*G004*/
-+#endif /*G004*/
-
-
- void EXPORT
- call_togl_redraw
- (
-- CALL_DEF_VIEW * aview,
-- CALL_DEF_LAYER * anunderlayer,
-- CALL_DEF_LAYER * anoverlayer
-+ CALL_DEF_VIEW * aview,
-+ CALL_DEF_LAYER * anunderlayer,
-+ CALL_DEF_LAYER * anoverlayer
- )
- {
- CMN_KEY_DATA data;
-@@ -106,25 +109,33 @@
-
- if ( TsmGetWSAttri (aview->WsId, WSWindow, &data) != TSuccess ) return;
- #ifdef G004
-- if ( !aview->DefBitmap.bitmap ) { /* redrawing view to the window */
--#endif
-- if (TxglWinset (call_thedisplay, (Window) data.ldata) == TSuccess) {
-- call_func_redraw_all_structs_begin (aview->WsId);
-- if (anunderlayer->ptrLayer)
-- call_togl_redraw_layer2d (aview, anunderlayer);
-- call_func_redraw_all_structs_proc (aview->WsId);
-- if (anoverlayer->ptrLayer)
-- call_togl_redraw_layer2d (aview, anoverlayer);
--#ifdef RIC120302
-- call_subr_displayCB(aview,OCC_REDRAW_WINDOW);
-+ if ( !aview->DefBitmap.bitmap ) { /* redrawing view to the window */
- #endif
-- call_func_redraw_all_structs_end (aview->WsId, swap);
-- call_togl_redraw_immediat_mode (aview);
-- }
-+ if (TxglWinset (call_thedisplay, (Window) data.ldata) == TSuccess) {
-+ call_func_redraw_all_structs_begin (aview->WsId);
-+ if (anunderlayer->ptrLayer)
-+ call_togl_redraw_layer2d (aview, anunderlayer);
-+ call_func_redraw_all_structs_proc (aview->WsId);
-+
-+ /* Proposed by P.Dolbey and revised to keep also the old callback */
-+ #ifdef RIC120302
-+ call_subr_displayCB(aview, OCC_REDRAW_WINDOW | OCC_PRE_OVERLAY );
-+ #endif
-+
-+ if (anoverlayer->ptrLayer)
-+ call_togl_redraw_layer2d (aview, anoverlayer);
-+
-+ #ifdef RIC120302
-+ call_subr_displayCB(aview,OCC_REDRAW_WINDOW);
-+ #endif
-+
-+ call_func_redraw_all_structs_end (aview->WsId, swap);
-+ call_togl_redraw_immediat_mode (aview);
-+ }
- #ifdef G004
-- } else {
-- CMN_KEY_DATA pixdata;
-- GLenum errorcode = 0;
-+ } else {
-+ CMN_KEY_DATA pixdata;
-+ GLenum errorcode = 0;
- #ifndef WNT
- int n,sdesc[11];
- XVisualInfo* XVInfo = NULL;
-@@ -134,8 +145,8 @@
-
- XGetWindowAttributes ( call_thedisplay, (Window)data.ldata , &wattr );
- #ifdef IMP100701
-- if( aview->DefBitmap.depth > 0 )
-- wattr.depth = aview->DefBitmap.depth;
-+ if( aview->DefBitmap.depth > 0 )
-+ wattr.depth = aview->DefBitmap.depth;
- #endif
- n = 0;
- sdesc[n] = GLX_RGBA; n++;
-@@ -151,33 +162,33 @@
- sdesc[n] = ( wattr.depth <= 8 ) ? 0 : 1; n++;
- sdesc[n] = GLX_BLUE_SIZE; n++;
- sdesc[n] = ( wattr.depth <= 8 ) ? 0 : 1; n++;
--#ifdef BUG /* Redraw always in single buffer mode and don't swap ! */
-+#ifdef BUG /* Redraw always in single buffer mode and don't swap ! */
- char string[CALL_DEF_STRING_LENGTH];
- if ( !call_util_osd_getenv ("CALL_OPENGL_NO_DBF", string, CALL_DEF_STRING_LENGTH) )
- { sdesc[n] = GLX_DOUBLEBUFFER; n++; }
- #endif
-- sdesc[n] = None; n++;
--
-- XVInfo = glXChooseVisual ( call_thedisplay, DefaultScreen(call_thedisplay), sdesc );
-- if ( !XVInfo ) {
-- fprintf ( stderr, "Visual not available\n" );
-- return;
-- }
-+ sdesc[n] = None; n++;
-
-- theContext = glXCreateContext ( call_thedisplay, XVInfo, NULL, GL_FALSE );
--
-- theGLXPixmap = glXCreateGLXPixmap ( call_thedisplay, XVInfo, aview->DefBitmap.bitmap );
--
-- if ( ! glXMakeCurrent (call_thedisplay, theGLXPixmap, theContext) )
-- {
-- errorcode = glGetError ();
-- fprintf ( stderr, "glXMakeCurrent failed: %d %s\n", errorcode, gluErrorString(errorcode) );
-- return;
-- }
-+ XVInfo = glXChooseVisual ( call_thedisplay, DefaultScreen(call_thedisplay), sdesc );
-+ if ( !XVInfo ) {
-+ fprintf ( stderr, "Visual not available\n" );
-+ return;
-+ }
-+
-+ theContext = glXCreateContext ( call_thedisplay, XVInfo, NULL, GL_FALSE );
-+
-+ theGLXPixmap = glXCreateGLXPixmap ( call_thedisplay, XVInfo, aview->DefBitmap.bitmap );
-+
-+ if ( ! glXMakeCurrent (call_thedisplay, theGLXPixmap, theContext) )
-+ {
-+ errorcode = glGetError ();
-+ fprintf ( stderr, "glXMakeCurrent failed: %d %s\n", errorcode, gluErrorString(errorcode) );
-+ return;
-+ }
- #else /* WindowsXX code here */
- HGLRC hglrc_old = wglGetCurrentContext ();
- HDC hdc_old = wglGetCurrentDC ();
-- HDC hdc = (HDC) aview->DefBitmap.bitmap;
-+ HDC hdc = (HDC) aview->DefBitmap.bitmap;
- HGLRC hglrc = wglCreateContext (hdc);
-
- if ( !hglrc || !wglMakeCurrent (hdc, hglrc) )
-@@ -187,51 +198,58 @@
- return;
- }
- #endif
-- pixdata.ldata = aview->DefBitmap.width;
-- if ( TsmSetWSAttri (aview->WsId, WSWidth, &pixdata) != TSuccess ) return;
-- pixdata.ldata = aview->DefBitmap.height;
-- if ( TsmSetWSAttri (aview->WsId, WSHeight, &pixdata) != TSuccess ) return;
--
-- /* generate new display lists */
-- TsmInitAttributes();
--
-- glLightModeli((GLenum)GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE);
--
-- glMatrixMode ( GL_MODELVIEW );
-- glViewport ( 0, 0, aview->DefBitmap.width, aview->DefBitmap.height );
--
-- glDrawBuffer ( GL_FRONT );
--
-- /* redrawing ... */
-- g_fBitmap = GL_TRUE;
-- call_func_redraw_all_structs_begin (aview->WsId);
-- if (anunderlayer->ptrLayer)
-- call_togl_redraw_layer2d (aview, anunderlayer);
-- call_func_redraw_all_structs_proc (aview->WsId);
-- if (anoverlayer->ptrLayer)
-- call_togl_redraw_layer2d (aview, anoverlayer);
--#ifdef RIC120302
-- call_subr_displayCB(aview,OCC_REDRAW_BITMAP);
--#endif
-- call_func_redraw_all_structs_end (aview->WsId, 0);
-+ pixdata.ldata = aview->DefBitmap.width;
-+ if ( TsmSetWSAttri (aview->WsId, WSWidth, &pixdata) != TSuccess ) return;
-+ pixdata.ldata = aview->DefBitmap.height;
-+ if ( TsmSetWSAttri (aview->WsId, WSHeight, &pixdata) != TSuccess ) return;
-+
-+ /* generate new display lists */
-+ TsmInitAttributes();
-+
-+ glLightModeli((GLenum)GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE);
-+
-+ glMatrixMode ( GL_MODELVIEW );
-+ glViewport ( 0, 0, aview->DefBitmap.width, aview->DefBitmap.height );
-+
-+ glDrawBuffer ( GL_FRONT );
-+
-+ /* redrawing ... */
-+ g_fBitmap = GL_TRUE;
-+ call_func_redraw_all_structs_begin (aview->WsId);
-+ if (anunderlayer->ptrLayer)
-+ call_togl_redraw_layer2d (aview, anunderlayer);
-+ call_func_redraw_all_structs_proc (aview->WsId);
-+
-+ /* Proposed by P.Dolbey and revised to keep also the old callback */
-+ #ifdef RIC120302
-+ call_subr_displayCB(aview,OCC_REDRAW_BITMAP |OCC_PRE_OVERLAY);
-+ #endif
-+
-+ if (anoverlayer->ptrLayer)
-+ call_togl_redraw_layer2d (aview, anoverlayer);
-+
-+ #ifdef RIC120302
-+ call_subr_displayCB(aview,OCC_REDRAW_BITMAP);
-+ #endif
-+
-+ call_func_redraw_all_structs_end (aview->WsId, 0);
-
-- call_togl_redraw_immediat_mode (aview);
-- g_fBitmap = GL_FALSE;
-+ call_togl_redraw_immediat_mode (aview);
-+ g_fBitmap = GL_FALSE;
-
-- glFinish();
-+ glFinish();
-
-- /* cleaning up ... */
-+ /* cleaning up ... */
- #ifndef WNT
-- glXMakeCurrent ( call_thedisplay, None, NULL );
-- glXDestroyContext ( call_thedisplay, theContext );
-- glXDestroyGLXPixmap ( call_thedisplay, theGLXPixmap );
-+ glXMakeCurrent ( call_thedisplay, None, NULL );
-+ glXDestroyContext ( call_thedisplay, theContext );
-+ glXDestroyGLXPixmap ( call_thedisplay, theGLXPixmap );
- #else
-- wglMakeCurrent ( hdc_old, hglrc_old );
-- wglDeleteContext ( hglrc );
-+ wglMakeCurrent ( hdc_old, hglrc_old );
-+ wglDeleteContext ( hglrc );
- #endif
-- }
--#endif /*G004*/
--
-+ }
-+#endif /*G004*/
- #ifdef WNT
- if (OpenGl_AVIWriter_AVIWriter &&
- OpenGl_AVIWriter_AllowWriting() /*aview->Context.ZBufferActivity*/)
-@@ -256,16 +274,16 @@
- }
- #endif
-
-- return;
-+ return;
- }
-
- void EXPORT
- call_togl_redraw_area
- (
-- CALL_DEF_VIEW * aview,
-- CALL_DEF_LAYER * anunderlayer,
-- CALL_DEF_LAYER * anoverlayer,
-- int x, int y, int width, int height
-+ CALL_DEF_VIEW * aview,
-+ CALL_DEF_LAYER * anunderlayer,
-+ CALL_DEF_LAYER * anoverlayer,
-+ int x, int y, int width, int height
- )
- {
- CMN_KEY_DATA data;
-@@ -273,36 +291,44 @@
- /*
- When the exposure area size is > window size / 2 do a full redraw.
- */
-- if( width*height >
-- (int)(aview->DefWindow.dx*aview->DefWindow.dy)/2 ) {
-- call_togl_redraw(aview,anunderlayer,anoverlayer);
-- return;
-- }
-+ if( width*height >
-+ (int)(aview->DefWindow.dx*aview->DefWindow.dy)/2 ) {
-+ call_togl_redraw(aview,anunderlayer,anoverlayer);
-+ return;
-+ }
- /*
- Or redraw only the area in the front buffer
- */
-- TsmGetWSAttri (aview->WsId, WSWindow, &data);
-- if (TxglWinset (call_thedisplay, (Window) data.ldata) == TSuccess) {
-- GLint buffer;
-- glGetIntegerv(GL_DRAW_BUFFER,&buffer);
-- if( buffer != GL_FRONT ) glDrawBuffer (GL_FRONT);
-- glEnable( GL_SCISSOR_TEST );
-- glScissor( (GLint)x,
-- (GLint)((int)aview->DefWindow.dy - (y+height)),
-- (GLsizei)width, (GLsizei)height);
-- call_func_redraw_all_structs_begin (aview->WsId);
-- if (anunderlayer->ptrLayer)
-- call_togl_redraw_layer2d (aview, anunderlayer);
-- call_func_redraw_all_structs_proc (aview->WsId);
-- if (anoverlayer->ptrLayer)
-- call_togl_redraw_layer2d (aview, anoverlayer);
--#ifdef RIC120302
-- call_subr_displayCB(aview,OCC_REDRAW_WINDOWAREA);
--#endif
-- call_func_redraw_all_structs_end (aview->WsId, 0);
-- call_togl_redraw_immediat_mode (aview);
-- glFlush();
-- glDisable( GL_SCISSOR_TEST );
-- if( buffer != GL_FRONT ) glDrawBuffer (buffer);
-- }
-+ TsmGetWSAttri (aview->WsId, WSWindow, &data);
-+ if (TxglWinset (call_thedisplay, (Window) data.ldata) == TSuccess) {
-+ GLint buffer;
-+ glGetIntegerv(GL_DRAW_BUFFER,&buffer);
-+ if( buffer != GL_FRONT ) glDrawBuffer (GL_FRONT);
-+ glEnable( GL_SCISSOR_TEST );
-+ glScissor( (GLint)x,
-+ (GLint)((int)aview->DefWindow.dy - (y+height)),
-+ (GLsizei)width, (GLsizei)height);
-+ call_func_redraw_all_structs_begin (aview->WsId);
-+ if (anunderlayer->ptrLayer)
-+ call_togl_redraw_layer2d (aview, anunderlayer);
-+ call_func_redraw_all_structs_proc (aview->WsId);
-+
-+ /* Proposed by P.Dolbey and revised to keep also the old callback */
-+ #ifdef RIC120302
-+ call_subr_displayCB(aview,OCC_REDRAW_WINDOWAREA|OCC_PRE_OVERLAY);
-+ #endif
-+
-+ if (anoverlayer->ptrLayer)
-+ call_togl_redraw_layer2d (aview, anoverlayer);
-+
-+ #ifdef RIC120302
-+ call_subr_displayCB(aview,OCC_REDRAW_WINDOWAREA );
-+ #endif
-+
-+ call_func_redraw_all_structs_end (aview->WsId, 0);
-+ call_togl_redraw_immediat_mode (aview);
-+ glFlush();
-+ glDisable( GL_SCISSOR_TEST );
-+ if( buffer != GL_FRONT ) glDrawBuffer (buffer);
-+ }
- }
-diff -Naur OpenCASCADE6.3.0/ros/src/OpenGl/OpenGl_togl_unproject_raster.c OpenCASCADE6.3.0sp6/ros/src/OpenGl/OpenGl_togl_unproject_raster.c
---- OpenCASCADE6.3.0/ros/src/OpenGl/OpenGl_togl_unproject_raster.c 2008-07-25 16:03:54.000000000 +0200
-+++ OpenCASCADE6.3.0sp6/ros/src/OpenGl/OpenGl_togl_unproject_raster.c 2009-10-03 01:04:23.000000000 +0200
-@@ -41,7 +41,12 @@
- Tint xr, yr;
-
- xr = ixr;
-- yr = yM-ym-iyr;
-+ /*
-+ Patched by P.Dolbey: the window pixel height decreased by one
-+ in order for yr to remain within valid coordinate range [0; Ym -1]
-+ where Ym means window pixel height.
-+ */
-+ yr = (yM-1)-ym-iyr;
- result = TelUnProjectionRaster (wsid, xr, yr, x, y, z);
-
- if (result == TSuccess)
-diff -Naur OpenCASCADE6.3.0/ros/src/OpenGl/OpenGl_triedron.c OpenCASCADE6.3.0sp6/ros/src/OpenGl/OpenGl_triedron.c
---- OpenCASCADE6.3.0/ros/src/OpenGl/OpenGl_triedron.c 2005-04-21 15:09:04.000000000 +0200
-+++ OpenCASCADE6.3.0sp6/ros/src/OpenGl/OpenGl_triedron.c 2009-10-03 01:04:22.000000000 +0200
-@@ -31,7 +31,9 @@
-
- #define OCC2934 /* SAN 22/01/04 Texture-mapped fonts on WNT */
-
--#define OCC7667 /* asl Export to vector graphic file
-+#define OCC7667 /* asl Export to vector graphic file */
-+
-+#define QTOCC_PATCH /* Active QtOPENCASCADE patches */
-
- /*----------------------------------------------------------------------*/
- /*
-@@ -42,6 +44,9 @@
- #include <X11/Xlib.h>
- #endif
- #include <OpenGl_tgl_all.h>
-+/* SAN */
-+#include <OpenGl_tgl_tox.h>
-+/* SAN */
-
-
- #include <stddef.h>
-@@ -306,6 +311,18 @@
- GLint mode;
- char AxeName[2]="X\0";
-
-+#ifdef QTOCC_PATCH /* PCD 10/02/08 */
-+ /* Fix to problem with clipping planes chopping off pieces of the triedron */
-+#ifdef QT_OCC_PATCH_ADDON /* VSR 27/02/09 - roll back: performance regression */
-+ GLboolean isPlaneActive[GL_MAX_CLIP_PLANES ];
-+
-+ /* Backup the clip planes. */
-+ for (ii = 0; ii < GL_MAX_CLIP_PLANES ; ii++) {
-+ isPlaneActive[ii] = glIsEnabled(GL_CLIP_PLANE0 + ii);
-+ glDisable(GL_CLIP_PLANE0 + ii);
-+ }
-+#endif /* VSR 27/02/09 */
-+#endif /* PCD 10/02/08 */
-
- /*
- * Lecture des Init. du Triedre
-@@ -480,6 +497,16 @@
- glLineWidth (TriedronWidth);
- #endif
-
-+#ifdef QTOCC_PATCH /* Fotis Sioutis 2007-11-14 15:06
-+ I have also seen in previous posts that the view trihedron in V3d_WIREFRAME mode
-+ changes colors depending on the state of the view. This behaviour can be easily
-+ corrected by altering call_triedron_redraw function in OpenGl_triedron.c of TKOpengl.
-+ The only change needed is to erase the LightOff() function that is called before the
-+ Axis name drawing and move this function call just before the initial axis drawing.
-+ Below is the code portion with the modification.I don't know if this is considered to
-+ be a bug but anyway i believe it might help some of you out there.*/
-+ LightOff();
-+#endif
-
- /* dessin des axes */
- glBegin(GL_LINES);
-@@ -695,6 +722,17 @@
- #endif
- */
-
-+#ifdef QTOCC_PATCH /* PCD 10/02/08 */
-+#ifdef QT_OCC_PATCH_ADDON /* VSR 27/02/09 - roll back: performance regression */
-+ /* Recover the clip planes */
-+ for (ii = 0; ii < GL_MAX_CLIP_PLANES ; ii++) {
-+ if (isPlaneActive[ii]) {
-+ glEnable(GL_CLIP_PLANE0 + ii);
-+ }
-+ }
-+#endif /* VSR 27/02/09 */
-+#endif /* PCD 10/02/08 */
-+
- /*
- * restauration du contexte des matrices
- */
-@@ -763,6 +801,21 @@
- GLdouble aAxisDiametr = 0.05;
- ZBUF_STRUCT* aParam;
-
-+#ifdef QTOCC_PATCH
-+ GLint df; /* PCD 17/06/07 */
-+ GLfloat aNULLColor[] = { 0.0, 0.0, 0.0, 0.0f }; /* FS 21/01/08 */
-+ /* Fix to problem with clipping planes chopping off pieces of the triedron */
-+ GLboolean isPlaneActive[GL_MAX_CLIP_PLANES ]; /* PCD 10/02/08 */
-+ int i;
-+#ifdef QT_OCC_PATCH_ADDON /* VSR 27/02/09 - roll back: performance regression */
-+
-+ /* Backup the clip planes. */
-+ for (i = 0; i < GL_MAX_CLIP_PLANES ; i++) {
-+ isPlaneActive[i] = glIsEnabled(GL_CLIP_PLANE0 + i);
-+ glDisable(GL_CLIP_PLANE0 + i);
-+ }
-+#endif /* VSR 27/02/09 */
-+#endif
-
- /*
- * Lecture des Init. du Triedre
-@@ -830,8 +883,16 @@
- (GLdouble *)modelMatrix, (GLdouble *)projMatrix, aViewPort,
- &aWinCoord[0], &aWinCoord[1], &aWinCoord[2]);
-
-+#ifdef QTOCC_PATCH /* PCD 29/09/2008 */
-+ /* Simple code modification recommended by Fotis Sioutis and Peter Dolbey */
-+ /* to remove the irritating default behaviour of triedrons using V3d_ZBUFFER */
-+ /* which causes the glyph to jump around the screen when the origin moves offscreen. */
-+ isWithinView = GL_FALSE;
-+#else
-+ /* Original code */
- isWithinView = !((aWinCoord[0]<aViewPort[0]) || (aWinCoord[0]>aViewPort[2]) ||
- (aWinCoord[1]<aViewPort[1]) || (aWinCoord[1]>aViewPort[3]));
-+#endif
-
- if (!isWithinView) {
- /* Annulate translation matrix */
-@@ -908,9 +969,18 @@
-
- aIsDepthEnabled = glIsEnabled(GL_DEPTH_TEST);
- #ifndef BUG
-- aIsDepthMaskEnabled = glIsEnabled(GL_DEPTH_WRITEMASK);
-+
-+#ifdef QTOCC_PATCH /*PCD 02/07/07 */
-+ /* GL_DEPTH_WRITEMASK is not a valid argument to glIsEnabled, the */
-+ /* original code is shown to be broken when run under an OpenGL debugger */
-+ /* like GLIntercept. This is the correct way to retrieve the mask value. */
-+ glGetBooleanv(GL_DEPTH_WRITEMASK, &aIsDepthMaskEnabled);
-+#else
-+ aIsDepthMaskEnabled = glIsEnabled(GL_DEPTH_WRITEMASK);
- #endif
-
-+#endif
-+
- /* Create cylinder for axis */
- gluQuadricDrawStyle(aQuadric, GLU_FILL); /* smooth shaded */
- gluQuadricNormals(aQuadric, GLU_FLAT);
-@@ -924,7 +994,11 @@
- glEndList();
- /* Central sphere */
- glNewList(startList + 2, GL_COMPILE);
-- gluSphere(aQuadric, aCylinderDiametr, NbFacettes, NbFacettes);
-+#ifdef QTOCC_PATCH
-+ gluSphere(aQuadric, aCylinderDiametr * 2, NbFacettes, NbFacettes);
-+#else
-+ gluSphere(aQuadric, aCylinderDiametr, NbFacettes, NbFacettes);
-+#endif
- glEndList();
- /* End disk */
- gluQuadricOrientation(aQuadric,GLU_INSIDE); /*szv*/
-@@ -932,13 +1006,43 @@
- gluDisk(aQuadric, aCylinderDiametr, aConeDiametr, NbFacettes, 1/*szv:2*/);
- glEndList();
-
-+#ifdef QTOCC_PATCH
-+ /* Store previous attributes */
-+ glPushAttrib(GL_LIGHTING_BIT | GL_POLYGON_BIT);
-+ LightOn();
-+#else
- LightOn();
-
- /* Store previous attributes */
- glPushAttrib(GL_LIGHTING_BIT | GL_POLYGON_BIT);
-+#endif
-
- glCullFace(GL_BACK);
- glEnable(GL_CULL_FACE);
-+
-+#ifdef QTOCC_PATCH /*Fotis Sioutis | 2008-01-21 10:55
-+ In the function call_zbuffer_triedron_redraw of TKOpengl,
-+ the z buffered trihedron changes colors in case there
-+ is an object in the scene that has an explicit material
-+ attached to it.In the trihedron display loop,
-+ GL_COLOR_MATERIAL is enabled, but only the GL_DIFFUSE
-+ parameter is utilized in glColorMaterial(...).
-+ This causes the last ambient,specular and emission values
-+ used, to stay at the stack and applied to the trihedron
-+ (which causes the color change).
-+ A fix is proposed , to change GL_DIFFUSE to
-+ GL_AMBIENT_AND_DIFFUSE in glColorMaterial call in
-+ line 946.The above of course will leave unchanged
-+ the SPECULAR and EMISSION values.
-+ Another proposal which would fix 100% the problem
-+ is to use glMaterial instead of glColor on the trihedron
-+ drawing loop. */
-+ glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, aNULLColor);
-+ glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, aNULLColor);
-+ glMaterialfv(GL_FRONT_AND_BACK, GL_EMISSION, aNULLColor);
-+
-+ glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, 0.);
-+#endif
-
- glColorMaterial(GL_FRONT_AND_BACK, GL_DIFFUSE);
- glEnable(GL_COLOR_MATERIAL);
-@@ -955,12 +1059,16 @@
- #endif
- #ifndef BUG
- if (!aIsDepthMaskEnabled) {
-- glEnable(GL_DEPTH_WRITEMASK);
-+ /* This is how the depthmask needs to be re-enabled...*/
-+ glDepthMask(GL_TRUE);
-+ /* ...and not this stuff below */
- }
- #endif
-
- glMatrixMode(GL_MODELVIEW);
--
-+#ifdef QTOCC_PATCH /* PCD 17/06/07 */
-+ glGetIntegerv (GL_DEPTH_FUNC, &df);
-+#else
- /*szv:if (isWithinView) {*/
- glDepthFunc(GL_GREATER);
- glPushMatrix();
-@@ -1010,6 +1118,20 @@
-
- glDepthFunc(GL_LESS);
- /*szv:}*/
-+#endif
-+
-+#ifdef QTOCC_PATCH
-+ for (i = 0; i < 2; i++) /* PCD 11/02/08 Two pass method */
-+ {
-+ if (i == 0) /* First pass */
-+ {
-+ glDepthFunc(GL_ALWAYS);
-+ }
-+ else
-+ {
-+ glDepthFunc(GL_LEQUAL);
-+ }
-+#endif
-
- glPushMatrix();
- glPushMatrix();
-@@ -1043,20 +1165,34 @@
- glCallList(startList + 3);
- glCallList(startList + 1);
- glPopMatrix();
-+
-+#ifdef QTOCC_PATCH
-+ }
-+#endif
-
- if (!aIsDepthEnabled)
- glDisable(GL_DEPTH_TEST);
- #ifndef BUG
- if (!aIsDepthMaskEnabled)
-+
-+#ifdef QTOCC_PATCH /*PCD 02/07/07 */
-+ glDepthMask(GL_FALSE);
-+#else
- glDisable(GL_DEPTH_WRITEMASK);
- #endif
-
-+#endif
- glDisable(GL_CULL_FACE);
- glDisable(GL_COLOR_MATERIAL);
-
- gluDeleteQuadric(aQuadric);
- glColor3fv (TriedronColor);
-
-+#ifdef QTOCC_PATCH /* PCD 11/02/08 */
-+ /* Always write the text */
-+ glDepthFunc(GL_ALWAYS);
-+#endif
-+
- glPopAttrib();
-
- /* fleches au bout des axes (= cones de la couleur demandee) */
-@@ -1074,6 +1210,10 @@
-
- /* init font */
- #ifndef WNT
-+ /* OCC20802 - Specify explicitly the font of small height to be used for axis names.
-+ Otherwise, axis names might become too large if the current font
-+ has unsuitable parameters */
-+ tXfmfindfont( call_thedisplay, "Courier-Bold", 1. );
- fontBase = tXfmsetfont (1.0F, 1.0F);
- #else
- fontBase = WNTSetFont (1.0F, 1.0F);
-@@ -1165,6 +1305,21 @@
- #endif
- */
-
-+#ifdef QTOCC_PATCH
-+ /*PCD 17/06/07 */
-+ glDepthFunc(df);
-+
-+ /* PCD 10/02/08 */
-+ /* Recover the clip planes */
-+#ifdef QT_OCC_PATCH_ADDON /* VSR 27/02/09 - roll back: performance regression */
-+ for (i = 0; i < GL_MAX_CLIP_PLANES ; i++) {
-+ if (isPlaneActive[i]) {
-+ glEnable(GL_CLIP_PLANE0 + i);
-+ }
-+ }
-+#endif /* VSR 27/02/09 */
-+#endif
-+
- if (!isWithinView) { /* restore matrix */
- glMatrixMode (GL_PROJECTION);
- glPopMatrix ();
-diff -Naur OpenCASCADE6.3.0/ros/src/OpenGl/OpenGl_view.c OpenCASCADE6.3.0sp6/ros/src/OpenGl/OpenGl_view.c
---- OpenCASCADE6.3.0/ros/src/OpenGl/OpenGl_view.c 2008-07-25 16:03:53.000000000 +0200
-+++ OpenCASCADE6.3.0sp6/ros/src/OpenGl/OpenGl_view.c 2009-10-03 01:04:23.000000000 +0200
-@@ -53,8 +53,8 @@
- ************************************************************************/
-
- #define BUC60920 /* GG 010601
--// Change the z buffer comparaison for minimizing
--// unavailable or unviewable drawing of pixels in the same plane
-+ Change the z buffer comparaison for minimizing
-+ unavailable or unviewable drawing of pixels in the same plane
- */
-
- #define BUC61044 /* 25/10/01 SAV ; added functionality to control gl depth testing
-@@ -104,6 +104,7 @@
- /* OCC18942: The new perspective projection matrix is off by default */
- EXPORT extern GLboolean env_sym_perspective; /* defined in OpenGl_togl_begin.c */
-
-+
- /*----------------------------------------------------------------------*/
- /*
- * Constantes
-@@ -196,15 +197,16 @@
- Tlimit3 *clip_limit
- )
- {
-- Tfloat gx, gy, xsf, ysf, zsf;
-- Tfloat fpd, bpd;
--
-+ Tdouble gx, gy, xsf, ysf, zsf;
-+ Tdouble fpd, bpd;
-+
- /* OCC18942 */
- Tfloat n, f, r, l, t, b, Zprp, dx, dy, VPD;
-
- /* FSXXX */
- /* GLint gdtmp; */
- Tlimit3 vp = { ( float )-1.0, ( float )1.0, ( float )-1.0, ( float )1.0, ( float )1.0, ( float )-1.0 };
-+
- Tmatrix3 pmat = { { ( float )1.0, ( float )0.0, ( float )0.0, ( float )0.0 },
- { ( float )0.0, ( float )1.0, ( float )0.0, ( float )0.0 },
- { ( float )0.0, ( float )0.0, ( float )1.0, ( float )0.0 },
-@@ -292,21 +294,21 @@
- mapping->viewport.ymin, mapping->viewport.ymax);
- #endif
-
-+
- /* projection matrix */
- if( mapping->proj == TelParallel )
- {
--
- pmat[2][0] = -gx; pmat[3][0] = mapping->vpd*gx;
- pmat[2][1] = -gy; pmat[3][1] = mapping->vpd*gy;
- }
-- else if ( !env_sym_perspective )/* TelPerspective */
-+ else if ( !env_sym_perspective)/* TelPerspective */
- {
- pmat[0][0] = pmat[1][1] = mapping->prp[2] - mapping->vpd;
-- pmat[2][0] = -gx;
-- pmat[2][1] = -gy;
-+ pmat[2][0] = -gx;
-+ pmat[2][1] = -gy;
- pmat[2][3] = ( float )-1.0;
-- pmat[3][0] = mapping->vpd * gx;
-- pmat[3][1] = mapping->vpd * gy;
-+ pmat[3][0] = mapping->vpd * gx;
-+ pmat[3][1] = mapping->vpd * gy;
- pmat[3][3] = mapping->prp[2];
-
- /* modify the next two cells to change clipping policy */
-@@ -316,7 +318,7 @@
- pmat[3][2] = fpd * bpd;
- }
- }
-- /* OCC18942: New approach to calculation of mapping (projection) matrix */
-+ /* OCC18942: New approach to calculation of mapping (projection) matrix */
- else
- {
- dx = mapping->window.xmax - mapping->window.xmin;
-@@ -400,16 +402,18 @@
- zsf = (vp.zmax - vp.zmin) / (fpd - bpd);
-
- /* map matrix */
-- mmat[0][0] = xsf, mmat[1][1] = ysf, mmat[2][2] = zsf;
-+ mmat[0][0] = xsf;
-+ mmat[1][1] = ysf;
-+ mmat[2][2] = zsf;
- mmat[3][0] = vp.xmin - xsf*mapping->window.xmin;
- mmat[3][1] = vp.ymin - ysf*mapping->window.ymin;
- mmat[3][2] = vp.zmin - zsf*bpd;
-
- /* multiply to obtain mapping matrix */
-- TelMultiplymat3( mat, pmat, mmat );
--
-+ TelMultiplymat3( mat, pmat, mmat );
-+
- #ifdef PRINT
-- printf( "mapping_matrix :\n" );
-+ printf( "mapping_matrix :\n");
- pr_matrix(mat);
- #endif
- }
-@@ -458,10 +462,10 @@
- TsmSetWSAttri( Wsid, WSViews, &key ); /* Set defined view data*/
- }
-
-- /* copy view definition to storage table record */
-- /* NOTE: Use the matrices already calculated and stored in vrep */
-- vptr->vrep = *vrep;
--
-+ /* copy view definition to storage table record */
-+ /* NOTE: Use the matrices already calculated and stored in vrep */
-+ vptr->vrep = *vrep;
-+
- #ifdef CAL_100498
- /* compute inverse transformation matrix */
- TelEvalInverseMatrix( vrep->extra.vrp, vrep->extra.vpn, vrep->extra.vup,
-@@ -551,7 +555,8 @@
- Tmatrix3 rmat /* Out: Orientation Matrix */
- )
- {
-- Tfloat u[3], v[3], n[3], f;
-+ Tfloat u[3], v[3], n[3], f;
-+
-
- /* view plane normal of zero length */
- if( vecmag(vpn) == 0.0 )
-@@ -636,7 +641,7 @@
- void
- TelEvalViewMappingMatrixPick( tel_view_mapping mapping /* View Mapping */,
- Tint *error_ind /* Out: Error Indicator */,
-- Tmatrix3 mat /* Out: Mapping Matrix */,
-+ Tmatrix3 mat /* Out: Mapping Matrix */,
- Tfloat cx,
- Tfloat cy
- )
-@@ -762,6 +767,7 @@
- Debug tool
- +*/
-
-+
- #ifdef DEB
- void
- pr_matrix( Tmatrix3 mat )
-@@ -855,7 +861,7 @@
- printf("OpenGl_view.c::TelSetViewIndex::glMatrixMode(GL_PROJECTION) \n");
- #endif
- glMatrixMode(GL_PROJECTION);
-- glLoadMatrixf((GLfloat *) vptr->vrep.mapping_matrix );
-+ glLoadMatrixf((GLfloat *) vptr->vrep.mapping_matrix );
-
- #ifdef TRACE_MAT
- printf( "\nTelSetViewIndex WS : %d, view : %d", Wsid, Vid );
-diff -Naur OpenCASCADE6.3.0/ros/src/V3d/V3d_ColorScale.cxx OpenCASCADE6.3.0sp6/ros/src/V3d/V3d_ColorScale.cxx
---- OpenCASCADE6.3.0/ros/src/V3d/V3d_ColorScale.cxx 2008-07-18 16:59:38.000000000 +0200
-+++ OpenCASCADE6.3.0sp6/ros/src/V3d/V3d_ColorScale.cxx 2009-10-03 01:04:52.000000000 +0200
-@@ -1,8 +1,8 @@
--// File: V3d_ColorScale.cxx
--// Created: Tue Jun 22 17:44:25 2004
--// Author: STV
--//Copyright: Open Cascade 2004
--
-+/* File: V3d_ColorScale.cxx
-+ Created: Tue Jun 22 17:44:25 2004
-+ Author: STV
-+ Copyright: Open Cascade 2004
-+*/
- #include <V3d_ColorScale.ixx>
-
- #include <V3d_View.hxx>
-@@ -38,8 +38,9 @@
-
- void V3d_ColorScale::Erase()
- {
-+
- myDisplay = Standard_False;
-- UpdateColorScale();
-+ UpdateColorScale();
- }
-
- Standard_Boolean V3d_ColorScale::IsDisplayed() const
-@@ -47,6 +48,7 @@
- return myDisplay;
- }
-
-+
- void V3d_ColorScale::UpdateColorScale()
- {
- myLayerMgr->Compute();
-@@ -89,24 +91,24 @@
- Standard_Integer aTextH = GetTextHeight();
- Standard_Integer aWidth, anAscent, aDescent;
- TextSize(aText, aTextH, aWidth, anAscent, aDescent);
--// Standard_Integer anAscent = 3 * aTextH / 4;
-+/* Standard_Integer anAscent = 3 * aTextH / 4; */
- theLayer->DrawText( theText.ToCString(), X, Y + anAscent, aTextH);
--// theLayer->DrawText( theText.ToCString(), X, Y, aTextH );
-+/* theLayer->DrawText( theText.ToCString(), X, Y, aTextH ); */
- }
-
- Standard_Integer V3d_ColorScale::TextWidth( const TCollection_ExtendedString& aText ) const
- {
- Standard_Integer aWidth, anAscent, aDescent;
- TextSize(aText, GetTextHeight(), aWidth, anAscent, aDescent);
--// return 5 * aText.Length();
-+/* return 5 * aText.Length(); */
- return aWidth;
- }
-
- Standard_Integer V3d_ColorScale::TextHeight( const TCollection_ExtendedString& aText ) const
- {
- Standard_Integer aWidth, anAscent, aDescent;
--// static Standard_Integer TextHeight = 10;
--// return TextHeight;
-+/* static Standard_Integer TextHeight = 10; */
-+/* return TextHeight; */
- TextSize(aText, GetTextHeight(), aWidth, anAscent, aDescent);
- return anAscent+aDescent;
- }
-@@ -114,28 +116,27 @@
- void V3d_ColorScale::TextSize (const TCollection_ExtendedString& AText, const Standard_Integer AHeight, Standard_Integer& AWidth, Standard_Integer& AnAscent, Standard_Integer& ADescent) const
- {
- const Handle(Visual3d_Layer) &theLayer = myLayerMgr->Overlay();
-- if ( !theLayer.IsNull() ) {
-+ if ( !theLayer.IsNull() ) {
- Standard_Real aWidth, anAscent, aDescent;
- TCollection_AsciiString theText( AText.ToExtString(), '?' );
- theLayer->TextSize(theText.ToCString(),AHeight,aWidth,anAscent,aDescent);
-- AWidth = (Standard_Integer)aWidth;
-- AnAscent = (Standard_Integer)anAscent;
-- ADescent = (Standard_Integer)aDescent;
-+ AWidth = (Standard_Integer) aWidth;
-+ AnAscent = (Standard_Integer) anAscent;
-+ ADescent = (Standard_Integer) aDescent;
- }
- else {
- AWidth=AnAscent=ADescent=0;
- }
- }
-
--void V3d_ColorScale::DrawScale ()
-+void V3d_ColorScale::DrawScale()
- {
-- const Handle(V3d_View) &theView = myLayerMgr->View();
-+ const Handle(V3d_View) &theView = myLayerMgr->View();
- if ( theView.IsNull() )
- return;
--
- const Handle(Aspect_Window) &theWin = theView->Window();
- if ( theWin.IsNull() )
-- return;
-+ return;
-
- Standard_Integer WinWidth( 0 ), WinHeight( 0 );
- theWin->Size( WinWidth, WinHeight );
-@@ -147,4 +148,5 @@
- const Standard_Integer H = RealToInt(GetHeight() * WinHeight);
-
- Aspect_ColorScale::DrawScale( theView->BackgroundColor(), X, Y, W, H );
-+
- }
-diff -Naur OpenCASCADE6.3.0/ros/src/V3d/V3d_View.cxx OpenCASCADE6.3.0sp6/ros/src/V3d/V3d_View.cxx
---- OpenCASCADE6.3.0/ros/src/V3d/V3d_View.cxx 2008-08-15 15:54:10.000000000 +0200
-+++ OpenCASCADE6.3.0sp6/ros/src/V3d/V3d_View.cxx 2009-10-03 01:04:52.000000000 +0200
-@@ -63,71 +63,71 @@
-
- ************************************************************************/
-
--#define GER61351 //GG_15/12/99 Add SetBackgroundColor()
--// and BackgroundColor() methods
-+#define GER61351 /*GG_15/12/99 Add SetBackgroundColor()
-+ and BackgroundColor() methods */
-
-
--#define IMP240100 //GG
--// -> Remove PixToRef() method ,use
--// instead the equivalent Convert() method.
--// -> Rename RefToPix() to Convert() method.
--// -> Remove the grid computation in Convert()
--// method. Use instead the NEW ConvertToGrid() methods.
--// Reason is the Convert() method is call by
--// StdSelect_ViewSelector3d_Pick() from
--// AIS_InteractiveContext() and it's not possible
--// to select an object vertex when the grid is active!
--// -> Remove grid echo marker definition
--// (reported in the viewer)
--// -> Add SetProjModel() methods.
--
--#define G003 //EUG 04-10-99
--// -> computed mode management
--// Add SetComputedMode(..) method
--// -> animation mode management
--// Add SetAnimationMode()
--// -> backfacing management
--// Add SetBackFacingModel() method
--
--#define G004 //VKH 15-11-99
--// -> Add Dump() methods
--// -> GG 07/03/00 Use the new MMSize()
--// method from Aspect_Window class.
--
--#define IMP210200 //GG Add Transparency() method
--
--#define IMP250200 //GG With SetDepth() method, when the requested
--// depth is < 0.,
--// move the view ref point and the eye,instead
--// only the eye.
--
--#define IMP020300 //GG Don't use ZFitAll in during Rotation
--// for perf improvment
--
--#define IMP210600 //GG Avoid to have infinite loop when call Rotation() method
--// without call before StartRotation().
--// This problem occurs when CTRL MB3 is maintain press betwwen 2 views.
--
--#define IMP250900 //GG Enable rotation around screen Z axis when
--// rotation begin far the center of the screen.
--// Thanks to Patrick REGINSTER (SAMTECH)
--// GG 21/12/00 Due to a regression on the previous specifications
--// this new functionnality is right now deactivated
--// by default (see StartRotation(...,zRotationThreshold)
--// method.
--
--#define BUC60952 //GG Enable to rotate around the view axis
--// and the required view point
--
--#define RIC120302 //GG Add a NEW SetWindow method which enable
--// to connect a graphic widget and context to OGL.
-+#define IMP240100 /*/GG
-+ -> Remove PixToRef() method ,use
-+ instead the equivalent Convert() method.
-+ -> Rename RefToPix() to Convert() method.
-+ -> Remove the grid computation in Convert()
-+ method. Use instead the NEW ConvertToGrid() methods.
-+ Reason is the Convert() method is call by
-+ StdSelect_ViewSelector3d_Pick() from
-+ AIS_InteractiveContext() and it's not possible
-+ to select an object vertex when the grid is active!
-+ -> Remove grid echo marker definition
-+ (reported in the viewer)
-+ -> Add SetProjModel() methods.
-+ */
-+#define G003 /*EUG 04-10-99
-+ -> computed mode management
-+ Add SetComputedMode(..) method
-+ -> animation mode management
-+ Add SetAnimationMode()
-+ -> backfacing management
-+ Add SetBackFacingModel() method */
-+
-+#define G004 /*VKH 15-11-99
-+ -> Add Dump() methods
-+ -> GG 07/03/00 Use the new MMSize()
-+ method from Aspect_Window class. */
-+
-+#define IMP210200 /*GG Add Transparency() method */
-+
-+#define IMP250200 /*GG With SetDepth() method, when the requested
-+ depth is < 0.,
-+ move the view ref point and the eye,instead
-+ only the eye. */
-+
-+#define IMP020300 /*GG Don't use ZFitAll in during Rotation
-+ for perf improvment */
-+
-+#define IMP210600 /*GG Avoid to have infinite loop when call Rotation() method
-+ without call before StartRotation().
-+ This problem occurs when CTRL MB3 is maintain press betwwen 2 views. */
-+
-+#define IMP250900 /*GG Enable rotation around screen Z axis when
-+ rotation begin far the center of the screen.
-+ Thanks to Patrick REGINSTER (SAMTECH)
-+ GG 21/12/00 Due to a regression on the previous specifications
-+ this new functionnality is right now deactivated
-+ by default (see StartRotation(...,zRotationThreshold)
-+ method.
-+ */
-+#define BUC60952 /*GG Enable to rotate around the view axis
-+ and the required view point */
-+
-+#define RIC120302 /*GG Add a NEW SetWindow method which enable
-+ to connect a graphic widget and context to OGL.*/
-
--#define IMP260302 //GG To avoid conflicting in Window destructor
--// nullify this handle in Remove method
-+#define IMP260302 /*GG To avoid conflicting in Window destructor
-+ nullify this handle in Remove method */
-
--#define OCC280 //SAV fix for FitAll problem in the perspective view.
-+#define OCC280 /*SAV fix for FitAll problem in the perspective view. */
-
--#define OCC1188 //SAV Added methods to set background image
-+#define OCC1188 /*SAV Added methods to set background image */
-
- /*----------------------------------------------------------------------*/
- /*
-@@ -150,11 +150,10 @@
- #include <TColStd_Array2OfReal.hxx>
- #include <Visual3d_TransientManager.hxx>
- #include <Precision.hxx>
--
--// S3892
-+/* S3892 */
- #include <Graphic3d_AspectMarker3d.hxx>
-
--// S3603
-+/* S3603*/
- #include <Aspect_GenericColorMap.hxx>
- #include <Aspect_TypeMap.hxx>
- #include <Aspect_WidthMap.hxx>
-@@ -172,13 +171,13 @@
- # define V3d_FLAG_ANIMATION 0x00000001
- # define V3d_FLAG_DEGENERATION 0x00000002
- # define V3d_FLAG_COMPUTATION 0x00000004
--#endif // G003
-+#endif /* G003 */
-
--// Tumble
-+/* Tumble*/
- #include <OSD_Timer.hxx>
- static OSD_Timer FullTimer;
-
--// Perspective
-+/* Perspective */
- #include <OSD_Environment.hxx>
-
- /*----------------------------------------------------------------------*/
-@@ -189,8 +188,8 @@
- #define Zmargin 1.
- #define DEUXPI (2.*Standard_PI)
-
--// en cas NO_TRACE_ECHO et de NO_TRACE_POINTS, dans V3d_View_4.cxx ET dans
--// V3d_View.cxx, virer MyGridEchoStructure et MyGridEchoGroup dans le cdl
-+/* en cas NO_TRACE_ECHO et de NO_TRACE_POINTS, dans V3d_View_4.cxx ET dans */
-+/* V3d_View.cxx, virer MyGridEchoStructure et MyGridEchoGroup dans le cdl */
- #define NO_TRACE_ECHO
- #define NO_TRACE_POINTS
-
-@@ -270,10 +269,10 @@
- return MyProjReferencePoint;
- }
- #define MyProjReferencePoint _MyProjReferencePoint()
--#endif // LOPTIM
-+#endif /* LOPTIM */
-
- /*----------------------------------------------------------------------*/
--//-Constructors
-+/*-Constructors*/
-
- V3d_View::V3d_View(const Handle(V3d_Viewer)& VM, const V3d_TypeOfView Type ) :
- MyType ( Type ),
-@@ -284,33 +283,33 @@
- myActiveLightsIterator(),
- myActivePlanesIterator(),
- SwitchSetFront(Standard_False),
--MyTrsf (1, 4, 1, 4), // S3892
-+MyTrsf (1, 4, 1, 4), /* S3892 */
- MyProjModel(V3d_TPM_SCREEN)
- #if defined(TRACE_POINTS)
--,MyGridEchoStructure (new Graphic3d_Structure (VM->Viewer ())), // S3892
--MyGridEchoGroup (new Graphic3d_Group (MyGridEchoStructure)) // S3892
-+,MyGridEchoStructure (new Graphic3d_Structure (VM->Viewer ())), /* S3892 */
-+MyGridEchoGroup (new Graphic3d_Group (MyGridEchoStructure)) /* S3892 */
- #endif
- {
-
- myImmediateUpdate = Standard_False;
- MyView = new Visual3d_View(MyViewer->Viewer());
-
-- // { Debut de recuperation de la definition du ViewContext.
-- // Pas de MyViewContext = MyView->Context() ;
-- // pour permettre a MyView->SetContext de comparer
-- // l'ancien contexte et le nouveau.
-- // Pas de probleme pour MyViewMapping, MyViewOrientation
-- // car MyView->SetViewMapping et MyView->SetViewOrientation
-- // ne cherchent pas a optimiser les modifications apportees
-- // au viewmapping et au vieworientation.
-+ /* { Debut de recuperation de la definition du ViewContext.
-+ Pas de MyViewContext = MyView->Context() ;
-+ pour permettre a MyView->SetContext de comparer
-+ l'ancien contexte et le nouveau.
-+ Pas de probleme pour MyViewMapping, MyViewOrientation
-+ car MyView->SetViewMapping et MyView->SetViewOrientation
-+ ne cherchent pas a optimiser les modifications apportees
-+ au viewmapping et au vieworientation. */
-
-- // Aliasing
-+ /* Aliasing*/
- if ((MyView->Context ()).AliasingIsOn ())
- MyViewContext.SetAliasingOn ();
- else
- MyViewContext.SetAliasingOff ();
-
-- // DepthCueing
-+ /* DepthCueing */
- MyViewContext.SetDepthCueingBackPlane
- ((MyView->Context ()).DepthCueingBackPlane ());
- MyViewContext.SetDepthCueingFrontPlane
-@@ -321,7 +320,7 @@
- else
- MyViewContext.SetDepthCueingOff ();
-
-- // ZClipping
-+ /* ZClipping */
- MyViewContext.SetZClippingBackPlane
- ((MyView->Context ()).ZClippingBackPlane ());
- MyViewContext.SetZClippingFrontPlane
-@@ -337,14 +336,14 @@
- else
- MyViewContext.SetBackZClippingOff ();
-
-- // Visualisation et Shading Model
-+ /* Visualisation et Shading Model */
- MyViewContext.SetModel ((MyView->Context ()).Model ());
- MyViewContext.SetVisualization ((MyView->Context ()).Visualization ());
-
-- // Texture Mapping
-+ /* Texture Mapping
- MyViewContext.SetSurfaceDetail (MyView->Context ().SurfaceDetail ());
- MyViewContext.SetTextureEnv (MyView->Context ().TextureEnv ());
-- // } Fin de recuperation de la definition du ViewContext.
-+ /* } Fin de recuperation de la definition du ViewContext. */
-
- MyViewMapping = MyView->ViewMapping() ;
- MyViewOrientation = MyView->ViewOrientation() ;
-@@ -371,7 +370,7 @@
- Init();
- myImmediateUpdate = Standard_True;
-
-- // S3892
-+ /* S3892 */
- #ifndef IMP240100
- #if defined(TRACE_POINTS)
- Handle(Graphic3d_AspectMarker3d) MarkerAttrib = new Graphic3d_AspectMarker3d ();
-@@ -380,11 +379,11 @@
- MarkerAttrib->SetType (Aspect_TOM_STAR);
- MyGridEchoStructure->SetPrimitivesAspect (MarkerAttrib);
- #endif
--#endif //IMP240100
-+#endif /*IMP240100 */
-
- #ifdef G003
- MyAnimationFlags = 0;
--#endif // G003
-+#endif /* G003 */
-
- #ifdef IMP210200
- MyTransparencyFlag = Standard_False;
-@@ -402,11 +401,11 @@
- myActiveLightsIterator(),
- myActivePlanesIterator(),
- SwitchSetFront(Standard_False),
--MyTrsf (1, 4, 1, 4), // S3892
-+MyTrsf (1, 4, 1, 4), /* S3892 */
- MyProjModel(V3d_TPM_SCREEN)
- #if defined(TRACE_POINTS)
--,MyGridEchoStructure (new Graphic3d_Structure (VM->Viewer ())), // S3892
--MyGridEchoGroup (new Graphic3d_Group (MyGridEchoStructure)) // S3892
-+,MyGridEchoStructure (new Graphic3d_Structure (VM->Viewer ())), /* S3892 */
-+MyGridEchoGroup (new Graphic3d_Group (MyGridEchoStructure)) /* S3892 */
- #endif
- {
-
-@@ -432,7 +431,7 @@
- Init();
- myImmediateUpdate = Standard_True;
-
-- // S3892
-+ /* S3892 */
- #ifndef IMP240100
- #if defined(TRACE_ECHO)
- Handle(Graphic3d_AspectMarker3d) MarkerAttrib = new Graphic3d_AspectMarker3d ();
-@@ -441,7 +440,7 @@
- MarkerAttrib->SetType (Aspect_TOM_STAR);
- MyGridEchoStructure->SetPrimitivesAspect (MarkerAttrib);
- #endif
--#endif //IMP240100
-+#endif /*IMP240100 */
-
- #ifdef G003
- MyAnimationFlags = 0;
-@@ -450,7 +449,7 @@
-
- /*----------------------------------------------------------------------*/
-
--//-Methods, in order
-+/*-Methods, in order */
-
- void V3d_View::SetMagnify(const Handle(Aspect_Window)& TheWindow,
- const Handle(V3d_View)& aPreviousView,
-@@ -483,34 +482,34 @@
- "V3d_View::SetWindow, window of view already defined");
-
- MyView->SetWindow(TheWindow) ;
-- // SetWindow effectue un SetRatio et modifie le
-- // ViewMapping et ViewMappingDefault de MyView.
-+ /* SetWindow effectue un SetRatio et modifie le */
-+ /* ViewMapping et ViewMappingDefault de MyView. */
- MyViewMapping = MyView->ViewMapping() ;
- MyView->SetContext(MyViewContext) ;
- MyView->SetViewMapping(MyViewMapping) ;
- MyView->SetViewOrientation(MyViewOrientation) ;
- MyView->SetBackground(MyBackground) ;
- MyViewer->SetViewOn(this) ;
-- //MyView->SetViewMappingDefault();
-+ /*MyView->SetViewMappingDefault(); */
- #ifdef TRACE_POINTS
-- MyGridEchoStructure->SetInfiniteState (Standard_True); // S3892
-- MyGridEchoStructure->Display (); // S3892
-+ MyGridEchoStructure->SetInfiniteState (Standard_True); /* S3892*/
-+ MyGridEchoStructure->Display (); /* S3892*/
- #endif
- MyView->Redraw() ;
- MyWindow = TheWindow;
- }
-
--// RIC120302
-+/* RIC120302 */
- /*----------------------------------------------------------------------*/
-
--void V3d_View::SetWindow(const Handle(Aspect_Window)& aWindow,
-- const Aspect_RenderingContext aContext,
-+void V3d_View::SetWindow(const Handle(Aspect_Window)& aWindow,
-+ const Aspect_RenderingContext aContext,
- const Aspect_GraphicCallbackProc& aDisplayCB,
-- const Standard_Address aClientData)
--{
-+ const Standard_Address aClientData) {
-+
- Standard_MultiplyDefined_Raise_if( MyView->IsDefined(),
-- "V3d_View::SetWindow, "
-- "window of view already defined");
-+ "V3d_View::SetWindow, "
-+ "window of view already defined");
- MyView->SetWindow(aWindow, aContext, aDisplayCB, aClientData) ;
- MyViewMapping = MyView->ViewMapping() ;
- MyView->SetContext(MyViewContext) ;
-@@ -521,7 +520,7 @@
- MyView->Redraw() ;
- MyWindow = aWindow;
- }
--// RIC120302
-+/* RIC120302 */
-
- /*----------------------------------------------------------------------*/
-
-@@ -557,8 +556,8 @@
- Standard_Boolean TheStatus = Standard_True ;
-
- if( MyView->IsDefined() ) {
-- // CAL 6/11/98
-- // Standard_Integer Nstruct = (MyView->DisplayedStructures())->Extent() ;
-+ /* CAL 6/11/98 */
-+ /* Standard_Integer Nstruct = (MyView->DisplayedStructures())->Extent() ; */
- Standard_Integer Nstruct = MyView->NumberOfDisplayedStructures() ;
- if( Nstruct > 0 ) TheStatus = Standard_False ;
- }
-@@ -583,13 +582,13 @@
- /*----------------------------------------------------------------------*/
-
- void V3d_View::MustBeResized() {
-- if ( !MyLayerMgr.IsNull() )
-+ if ( !MyLayerMgr.IsNull() )
- MyLayerMgr->Resized();
-
- if( MyView->IsDefined() ) {
- MyView->Resized() ;
- MyViewMapping = MyView->ViewMapping();
-- // MyView->SetViewMappingDefault();
-+ /* MyView->SetViewMappingDefault(); */
- MyView->Redraw();
- }
- }
-@@ -609,7 +608,7 @@
- MyBackground.SetColor( C );
- if ( MyView->IsDefined() )
- MyView->SetBackground( MyBackground );
-- if ( !MyLayerMgr.IsNull() )
-+ if ( !MyLayerMgr.IsNull() )
- MyLayerMgr->Resized();
- #endif
- }
-@@ -622,9 +621,9 @@
- MyBackground.SetColor( Color );
- if ( MyView->IsDefined() )
- MyView->SetBackground( MyBackground );
-- //szv: Why?
-+ /*szv: Why?*/
- if ( !MyLayerMgr.IsNull() )
-- MyLayerMgr->Resized();
-+ MyLayerMgr->Resized();
- }
- #endif
-
-@@ -906,7 +905,7 @@
- void V3d_View::Rotate(const Standard_Real angle, const Standard_Boolean Start) {
-
- Standard_Real Angle = angle ;
--// Graphic3d_Vertex Vrp ;
-+/* Graphic3d_Vertex Vrp ;*/
- Graphic3d_Vector Vpn,Vup ;
- TColStd_Array2OfReal Matrix(0,3,0,3) ;
-
-@@ -990,7 +989,7 @@
- #ifdef IMP020300
- SetZSize(0.) ;
- #else
-- // Check ZClipping planes
-+ /* Check ZClipping planes */
- Standard_Real Zmax ;
- Vrp.Coord(Xat,Yat,Zat) ;
- Zmax = Sqrt( Xat*Xat + Yat*Yat + Zat*Zat) ;
-@@ -1051,7 +1050,7 @@
- #ifdef IMP020300
- SetZSize(0.) ;
- #else
-- // Check ZClipping planes
-+ /* Check ZClipping planes */
- Standard_Real Zmax ;
- Vrp.Coord(Xat,Yat,Zat) ;
- Zmax = Sqrt( Xat*Xat + Yat*Yat + Zat*Zat ) ;
-@@ -1129,8 +1128,8 @@
- Standard_Boolean update = myImmediateUpdate;
- myImmediateUpdate = Standard_False;
- if( MyProjModel == V3d_TPM_WALKTHROUGH ) {
-- //FMN desactivation temp SetTwist(Angle) ;
-- // Set des infos.
-+ /*FMN desactivation temp SetTwist(Angle) ; */
-+ /* Set des infos. */
- MyView->SetViewOrientation(MyViewOrientation) ;
- MyView->SetViewMapping(MyViewMapping) ;
- } else {
-@@ -1139,7 +1138,7 @@
- #ifdef IMP020300
- SetZSize(0.) ;
- #else
-- // Check ZClipping planes
-+ /* Check ZClipping planes */
- Standard_Real Zmax = Sqrt( X*X + Y*Y + Z*Z ) ;
- if( Zmax > MyViewMapping.FrontPlaneDistance() &&
- MyProjModel == V3d_TPM_SCREEN ) {
-@@ -1178,12 +1177,12 @@
- MyViewMapping.SetProjectionReferencePoint(MyProjReferencePoint);
- }
-
-- // Check ZClipping planes
-+ /* Check ZClipping planes */
- Standard_Real Xat,Yat,Zat,Xpn,Ypn,Zpn,Xeye,Yeye,Zeye ;
- MyViewReferencePoint.Coord(Xat,Yat,Zat) ;
- MyViewReferencePlane.Coord(Xpn,Ypn,Zpn) ;
- #ifdef IMP250200
-- if( Depth < 0. ) { // Move the view ref point instead the eye.
-+ if( Depth < 0. ) { /* Move the view ref point instead the eye. */
- Xeye = Xpn*Zrp + Xat ; Yeye = Ypn*Zrp + Yat ; Zeye = Zpn*Zrp + Zat ;
- Zrp = Abs(Depth) ;
- Xat = Xeye - Xpn*Zrp ; Yat = Yeye - Ypn*Zrp ; Zat = Zeye - Zpn*Zrp;
-@@ -1240,7 +1239,7 @@
-
- MyViewReferencePlane = V3d::GetProjAxis(Orientation) ;
- MyViewOrientation.SetViewReferencePlane(MyViewReferencePlane) ;
-- // MSV 14.03.2007: reset ViewReferencePoint to debug LH3D14955
-+ /* MSV 14.03.2007: reset ViewReferencePoint to debug LH3D14955 */
- MyViewOrientation.SetViewReferencePoint(Graphic3d_Vertex(0,0,0));
- Standard_Real Xpn=0;
- Standard_Real Ypn=0;
-@@ -1290,8 +1289,8 @@
- Standard_Boolean update = myImmediateUpdate;
- myImmediateUpdate = Standard_False;
- if( MyProjModel == V3d_TPM_WALKTHROUGH ) {
-- //FMN desactivation temp SetTwist(Angle) ;
-- // Set des infos.
-+ /*FMN desactivation temp SetTwist(Angle) ; */
-+ /* Set des infos. */
- MyView->SetViewOrientation(MyViewOrientation) ;
- MyView->SetViewMapping(MyViewMapping) ;
- } else {
-@@ -1302,7 +1301,7 @@
- SetZSize(0.) ;
- #else
- ImmediateUpdate();
-- // Check ZClipping planes
-+ /* Check ZClipping planes */
- Standard_Real Zmax = Sqrt( X*X + Y*Y + Z*Z ) ;
- if( Zmax > MyViewMapping.FrontPlaneDistance() &&
- MyProjModel == V3d_TPM_SCREEN ) {
-@@ -1397,13 +1396,13 @@
-
- MyView->ViewOrientationReset() ;
- MyViewOrientation = MyView->ViewOrientation() ;
--//OCC4844
--//#ifdef IMP020300
--// Update();
--//#else
-+/*OCC4844 */
-+/*#ifdef IMP020300
-+ Update();
-+#else */
- ImmediateUpdate();
--//#endif
--//OCC4844
-+/*#endif
-+OCC4844 */
- }
-
- void V3d_View::Reset( const Standard_Boolean update ) {
-@@ -1529,7 +1528,7 @@
- MyViewMapping.SetFrontPlaneDistance(Zmax) ;
- MyViewMapping.SetBackPlaneDistance(-Zmax) ;
-
-- // OCC18942
-+ /* OCC18942 */
- if( MyProjModel != V3d_TPM_WALKTHROUGH ) {
- MyViewMapping.SetViewPlaneDistance(MyType == V3d_PERSPECTIVE ? 0. : Zmax) ;
- }
-@@ -1541,7 +1540,7 @@
- MyViewContext.SetZClippingBackPlane(Back) ;
- MyView->SetContext(MyViewContext) ;
- }
--//printf(" *** SetZSize(%f)\n",Zmax);
-+/*printf(" *** SetZSize(%f)\n",Zmax); */
- }
-
- void V3d_View::SetZoom(const Standard_Real Coef,const Standard_Boolean Start) {
-@@ -1556,8 +1555,8 @@
- MyWindowWidth = Abs(Umax - Umin) ;
- MyWindowHeight = Abs(Vmax - Vmin) ;
- }
--
-- // ensure that zoom will not be too small or too big
-+
-+ /* ensure that zoom will not be too small or too big */
- Standard_Real coef = Coef;
- if ( MyWindowWidth < coef * Precision::Confusion() )
- coef = MyWindowWidth / Precision::Confusion();
-@@ -1567,7 +1566,7 @@
- coef = MyWindowHeight / Precision::Confusion();
- else if ( MyWindowHeight > coef * 1e12 )
- coef = MyWindowHeight / 1e12;
--
-+
- Dxv = MyWindowWidth/coef;
- Dyv = MyWindowHeight/coef;
- Umin = MyXwindowCenter - Dxv/2. ; Umax = MyXwindowCenter + Dxv/2. ;
-@@ -1607,7 +1606,7 @@
- MyView->ViewManager()->SetUpdateMode(updateMode);
-
- MyView->MinMaxValues(Xmin,Ymin,Zmin,Xmax,Ymax,Zmax) ;
--
-+
- Standard_Real LIM = ShortRealLast() -1.;
- if (Abs(Xmin) > LIM || Abs(Ymin) > LIM || Abs(Zmin) > LIM
- || Abs(Xmax) > LIM || Abs(Ymax) > LIM || Abs(Zmax) > LIM ) {
-@@ -1650,10 +1649,10 @@
- Standard_Real Xmin,Ymin,Zmin,Xmax,Ymax,Zmax ;
- Standard_Real DxvOld,DyvOld,DxvNew,DyvNew,RapOld,RapNew ;
- Standard_Integer Xpixel,Ypixel;
-- // CAL 6/11/98
-- // Standard_Integer Nstruct = (MyView->DisplayedStructures())->Extent() ;
-+ /* CAL 6/11/98 */
-+ /* Standard_Integer Nstruct = (MyView->DisplayedStructures())->Extent() ; */
- Standard_Integer Nstruct = MyView->NumberOfDisplayedStructures() ;
-- //Standard_Integer Xleft,Yup,Xright,Ylow ;
-+ /*Standard_Integer Xleft,Yup,Xright,Ylow ; */
- Standard_Integer nbPasse = 2;
-
- if( (Nstruct <= 0) || (Coef < 0.) || (Coef > 1.) ) {
-@@ -1662,12 +1661,12 @@
- #endif
- return ;
- }
-- // Update() ;
-+ /* Update() ; */
- MyProjReferencePoint = MyViewMapping.ProjectionReferencePoint() ;
- MyProjReferencePoint.Coord(Xrp,Yrp,Zrp) ;
- if( MyView->IsDefined() ) {
-- //MyWindow->Position(Xleft,Yup,Xright,Ylow) ;
-- //DxvOld = Abs(Xright - Xleft) ; DyvOld = Abs(Yup - Ylow) ;
-+ /*MyWindow->Position(Xleft,Yup,Xright,Ylow) ; */
-+ /*DxvOld = Abs(Xright - Xleft) ; DyvOld = Abs(Yup - Ylow) ;*/
- MyWindow->Size(Xpixel,Ypixel);
- DxvOld = Xpixel; DyvOld = Ypixel;
- } else {
-@@ -1742,7 +1741,7 @@
- }
-
- nbPasse--;
-- } // while
-+ } /* while */
-
- if(FitZ) {
- ZFitAll(Zmargin);
-@@ -1760,8 +1759,8 @@
-
- Standard_Real Xmin,Ymin,Zmin,Xmax,Ymax,Zmax,U,V,W ;
- Standard_Real Umin,Vmin,Wmin,Umax,Vmax,Wmax ;
-- // CAL 6/11/98
-- // Standard_Integer Nstruct = (MyView->DisplayedStructures())->Extent() ;
-+ /* CAL 6/11/98 */
-+ /* Standard_Integer Nstruct = (MyView->DisplayedStructures())->Extent() ; */
- Standard_Integer Nstruct = MyView->NumberOfDisplayedStructures() ;
-
- if( MyType == V3d_PERSPECTIVE ) {
-@@ -1782,8 +1781,8 @@
- ImmediateUpdate();
- return ;
- }
-- // CAL 6/11/98
-- // Cas ou la vue ne contient qu'un point
-+ /* CAL 6/11/98 */
-+ /* Cas ou la vue ne contient qu'un point */
- if (Xmin == Xmax && Ymin == Ymax && Zmin == Zmax) {
- ImmediateUpdate();
- return ;
-@@ -1869,12 +1868,12 @@
- Vmin = Min(V,Vmin) ; Vmax = Max(V,Vmax) ;
- Wmin = Min(W,Wmin) ; Wmax = Max(W,Wmax) ;
-
-- // Adjust Z size
-+ /* Adjust Z size */
- Wmax = Max(Abs(Wmin),Abs(Wmax)) ;
- Dz = 2.*Wmax + Margin * Wmax;
-
-- // Compute depth value
-- Dx = Abs(Umax - Umin) ; Dy = Abs(Vmax - Vmin) ; // Dz = Abs(Wmax - Wmin);
-+ /* Compute depth value */
-+ Dx = Abs(Umax - Umin) ; Dy = Abs(Vmax - Vmin) ; /* Dz = Abs(Wmax - Wmin); */
- Dx += Margin * Dx; Dy += Margin * Dy;
- Size = Sqrt(Dx*Dx + Dy*Dy + Dz*Dz);
- if( Size > 0. ) {
-@@ -1885,6 +1884,7 @@
- ImmediateUpdate();
- }
-
-+
- void V3d_View::FitAll(const Standard_Real Xmin, const Standard_Real Ymin, const Standard_Real Xmax, const Standard_Real Ymax) {
- FitAll(MyWindow,Xmin,Ymin,Xmax,Ymax);
- #ifndef IMP020300
-@@ -1906,9 +1906,9 @@
- void V3d_View::SetViewMapping(const Visual3d_ViewMapping& VM)
- {
- MyViewMapping = VM;
-- // ajust view type according to mapping projection
-- // NOTE: Might be dangerous, potentially conflicts with the C++ view class
-- // (orthographic or perspective)! Use with care!
-+ /* ajust view type according to mapping projection */
-+ /* NOTE: Might be dangerous, potentially conflicts with the C++ view class */
-+ /* (orthographic or perspective)! Use with care!*/
- if ( VM.Projection() == Visual3d_TOP_PERSPECTIVE )
- MyType = V3d_PERSPECTIVE;
- else MyType = V3d_ORTHOGRAPHIC;
-@@ -1917,6 +1917,7 @@
- ImmediateUpdate();
- }
-
-+
- void V3d_View::SetViewMappingDefault() {
- MyView->SetViewMapping(MyViewMapping) ;
- MyView->SetViewMappingDefault();
-@@ -1962,34 +1963,36 @@
- Yv = Vmin + Dyv*(Standard_Real)(Dyw-Yp)/(Standard_Real)Dyw ;
- }
-
--Standard_Integer V3d_View::Convert(const Standard_Real Vv) const
-+Standard_Integer V3d_View::Convert(const Standard_Real Vv) const
- {
-+
- V3d_UnMapped_Raise_if( !MyView->IsDefined(), "view has no window");
-
- Standard_Integer Dxw, Dyw;
- MyWindow->Size(Dxw,Dyw);
--
-+
- Standard_Real Umin,Umax,Vmin,Vmax;
- MyViewMapping.WindowLimit(Umin,Vmin,Umax,Vmax) ;
- Standard_Real Dxv = Umax - Umin;
- return RealToInt ( Dxw * Vv / Dxv );
-+
- }
-
--void V3d_View::Convert(const Standard_Real Xv, const Standard_Real Yv, Standard_Integer& Xp, Standard_Integer& Yp) const
-+void V3d_View::Convert(const Standard_Real Xv, const Standard_Real Yv, Standard_Integer& Xp, Standard_Integer& Yp) const
- {
- V3d_UnMapped_Raise_if( !MyView->IsDefined(), "view has no window");
-
- Standard_Integer Dxw, Dyw;
- MyWindow->Size(Dxw,Dyw);
--
-+
- Standard_Real Umin,Umax,Vmin,Vmax;
- MyViewMapping.WindowLimit(Umin,Vmin,Umax,Vmax) ;
- Standard_Real Dxv = Umax - Umin;
- Standard_Real Dyv = Vmax - Vmin;
-
-- // CAL 15/12/93 warning: double assigned to int
-+ /* CAL 15/12/93 warning: double assigned to int */
- Xp = RealToInt (Dxw*(Xv - Umin)/Dxv);
-- // CAL 15/12/93 warning: double assigned to int
-+ /* CAL 15/12/93 warning: double assigned to int */
- Yp = Dyw - RealToInt (Dyw*(Yv - Vmin)/Dyv);
- }
-
-@@ -2068,22 +2071,22 @@
- (MyViewer->Viewer())->ConvertCoord(MyWindow,Vrp,Xp,Yp) ;
- }
-
--void V3d_View::Project(const Standard_Real X, const Standard_Real Y, const Standard_Real Z, Standard_Real &Xp, Standard_Real &Yp) const
--{
-- if ( MyType != V3d_PERSPECTIVE )
-+void V3d_View::Project(const Standard_Real X, const Standard_Real Y, const Standard_Real Z, Standard_Real &Xp, Standard_Real &Yp) const {
-+
-+ if ( MyType != V3d_PERSPECTIVE )
- {
-- // use old implementation
-+ /* use old implementation */
- Standard_Real Zp;
- MyView->Projects( X, Y, Z, Xp, Yp, Zp );
- }
- else
- {
-- // NKV - Using raster projection
-+ /* NKV - Using raster projection */
- Standard_Integer Xpx, Ypx;
- Convert(X, Y, Z, Xpx, Ypx);
- Convert(Xpx, Ypx, Xp, Yp);
- }
--}
-+}
-
- void V3d_View::BackgroundColor(const Quantity_TypeOfColor Type,Standard_Real& V1, Standard_Real& V2, Standard_Real& V3)const {
-
-@@ -2151,8 +2154,8 @@
-
- Standard_Real Wmin,Wmax,U,V,W ;
- Standard_Real Xmin,Ymin,Zmin,Xmax,Ymax,Zmax ;
-- // CAL 6/11/98
-- // Standard_Integer Nstruct = (MyView->DisplayedStructures())->Extent() ;
-+ /* CAL 6/11/98 */
-+ /* Standard_Integer Nstruct = (MyView->DisplayedStructures())->Extent() ; */
- Standard_Integer Nstruct = MyView->NumberOfDisplayedStructures() ;
-
- if( Nstruct ) {
-@@ -2188,8 +2191,8 @@
- }
-
- Standard_Integer V3d_View::MinMax(Standard_Real& Xmin, Standard_Real& Ymin, Standard_Real& Zmin, Standard_Real& Xmax, Standard_Real& Ymax, Standard_Real& Zmax) const {
-- // CAL 6/11/98
-- // Standard_Integer Nstruct = (MyView->DisplayedStructures())->Extent() ;
-+ /* CAL 6/11/98 */
-+ /* Standard_Integer Nstruct = (MyView->DisplayedStructures())->Extent() ;*/
- Standard_Integer Nstruct = MyView->NumberOfDisplayedStructures() ;
-
- if( Nstruct ) {
-@@ -2206,8 +2209,8 @@
- Graphic3d_MapOfStructure MySetOfStructures;
-
- MyView->DisplayedStructures (MySetOfStructures);
-- //JMB MySetOfStructures.Clear ();
-- //JMBMySetOfStructures.Union (()->Set ());
-+ /*JMB MySetOfStructures.Clear (); */
-+ /*JMBMySetOfStructures.Union (()->Set ()); */
- Nstruct = MySetOfStructures.Extent() ;
-
- Graphic3d_MapIteratorOfMapOfStructure MyIterator(MySetOfStructures) ;
-@@ -2489,15 +2492,15 @@
- MyViewMapping.SetFrontPlaneDistance(size);
- MyViewMapping.SetBackPlaneDistance(-size);
-
-- // keep view plane at front plane distance
-+ /* keep view plane at front plane distance */
- MyViewMapping.SetViewPlaneDistance(MyType == V3d_PERSPECTIVE ? 0. : size);
-
-- // set window limits
-+ /* set window limits */
- Umin = Left; Umax = Right;
- Vmin = Bottom; Vmax = Top;
- MyViewMapping.SetWindowLimit(Left, Bottom, Right, Top);
-
-- // Update window center
-+ /* Update window center */
- if ( MyType == V3d_PERSPECTIVE ) {
- Xrp = Yrp = 0.0;
- }
-@@ -2508,10 +2511,11 @@
- MyViewMapping.SetProjectionReferencePoint(MyProjReferencePoint);
-
- MyView->SetViewMapping(MyViewMapping) ;
--// SetZSize(0.);
-+/* SetZSize(0.); */
- ImmediateUpdate();
- }
-
-+
- Handle(Visual3d_View) V3d_View::View() const {
-
- return MyView ;
-@@ -2527,6 +2531,7 @@
- return MyViewOrientation;
- }
-
-+
- Standard_Boolean V3d_View::ScreenAxis( const Graphic3d_Vector &Vpn, const Graphic3d_Vector &Vup, Graphic3d_Vector &Xaxe, Graphic3d_Vector &Yaxe, Graphic3d_Vector &Zaxe) {
- Standard_Real Xpn,Ypn,Zpn,Xup,Yup,Zup ;
- Standard_Real dx1,dy1,dz1,dx2,dy2,dz2,xx,yy,zz ;
-@@ -2570,14 +2575,14 @@
- Standard_Boolean V3d_View::Multiply (const TColStd_Array2OfReal& Left, const TColStd_Array2OfReal& Right, TColStd_Array2OfReal& Matrix) {
-
- Standard_Integer llr = Left.LowerRow ();
--//Standard_Integer lur = Left.UpperRow ();
-+/*Standard_Integer lur = Left.UpperRow (); */
- Standard_Integer llc = Left.LowerCol ();
- Standard_Integer luc = Left.UpperCol ();
-
- Standard_Integer rlr = Right.LowerRow ();
- Standard_Integer rur = Right.UpperRow ();
- Standard_Integer rlc = Right.LowerCol ();
--//Standard_Integer ruc = Right.UpperCol ();
-+/*Standard_Integer ruc = Right.UpperCol (); */
-
- Standard_Integer mlr = Matrix.LowerRow ();
- Standard_Integer mur = Matrix.UpperRow ();
-@@ -2588,7 +2593,7 @@
-
- InitMatrix (Result);
-
-- // Left et Right incompatibles
-+ /* Left et Right incompatibles */
- if (luc - llc + 1 != rur - rlr + 1)
- return Standard_False;
-
-@@ -2681,7 +2686,7 @@
- Graphic3d_Vertex PP ;
- Standard_Real X,Y,Z,XX,YY,ZZ ;
-
-- // CAL. S3892
-+ /* CAL. S3892 */
- Standard_Integer lr, ur, lc, uc;
- lr = Matrix.LowerRow ();
- ur = Matrix.UpperRow ();
-@@ -2709,7 +2714,7 @@
- Graphic3d_Vector VV ;
- Standard_Real X,Y,Z,XX,YY,ZZ ;
-
-- // CAL. S3892
-+ /* CAL. S3892 */
- Standard_Integer lr, ur, lc, uc;
- lr = Matrix.LowerRow ();
- ur = Matrix.UpperRow ();
-@@ -2782,15 +2787,15 @@
- Standard_Real Umin,Umax,Vmin,Vmax,Xrp,Yrp,Zrp ;
- Standard_Real DxvOld,DyvOld,DxvNew,DyvNew,RapOld,RapNew ;
- Standard_Integer Xpixel,Ypixel;
-- //Standard_Integer Xleft,Yup,Xright,Ylow ;
-+ /*Standard_Integer Xleft,Yup,Xright,Ylow ; */
-
- Viewer_BadValue_Raise_if( (Xmin == Xmax) || (Ymin == Ymax) ,
- "V3d_View::FitAll, Window Size is NULL");
-
- MyProjReferencePoint = MyViewMapping.ProjectionReferencePoint() ;
- MyProjReferencePoint.Coord(Xrp,Yrp,Zrp) ;
-- //aWindow->Position(Xleft,Yup,Xright,Ylow) ;
-- //DxvOld = Abs(Xright - Xleft) ; DyvOld = Abs(Yup - Ylow) ;
-+ /*aWindow->Position(Xleft,Yup,Xright,Ylow) ; */
-+ /*DxvOld = Abs(Xright - Xleft) ; DyvOld = Abs(Yup - Ylow) ;*/
- aWindow->Size(Xpixel,Ypixel);
- DxvOld = Xpixel; DyvOld = Ypixel;
-
-@@ -2838,7 +2843,7 @@
- if( zRotationThreshold > 0. ) {
- Standard_Real dx = Abs(sx - rx/2.);
- Standard_Real dy = Abs(sy - ry/2.);
--// if( dx > rx/3. || dy > ry/3. ) zRotation = Standard_True;
-+/* if( dx > rx/3. || dy > ry/3. ) zRotation = Standard_True; */
- Standard_Real dd = zRotationThreshold * (rx + ry)/2.;
- if( dx > dd || dy > dd ) zRotation = Standard_True;
- }
-@@ -2875,7 +2880,7 @@
- #else
- myImmediateUpdate = Standard_False;
- Rotate(dx/rx, dy/ry, 0., gx, gy, gz, Standard_False);
-- ZFitAll (Zmargin); //Don't do that, perf improvment
-+ ZFitAll (Zmargin); /*Don't do that, perf improvment */
- myImmediateUpdate = Standard_True;
- ImmediateUpdate();
- #endif
-@@ -2884,7 +2889,7 @@
- void V3d_View::SetAnimationModeOn () {
- #ifdef G003
- if ( MyAnimationFlags & V3d_FLAG_ANIMATION ) {
-- if( ComputedMode() ) { // Deactivates computed mode during animation
-+ if( ComputedMode() ) { /* Deactivates computed mode during animation */
- MyAnimationFlags |= V3d_FLAG_COMPUTATION;
- Standard_Boolean immediatUpdate = myImmediateUpdate;
- myImmediateUpdate = Standard_False;
-@@ -2903,7 +2908,7 @@
- if ( MyAnimationFlags & V3d_FLAG_ANIMATION ) {
- MyView -> SetAnimationModeOff ();
- if ( MyAnimationFlags & V3d_FLAG_COMPUTATION ) {
-- // Reactivates computed mode after animation
-+ /* Reactivates computed mode after animation */
- MyAnimationFlags &= ~V3d_FLAG_COMPUTATION;
- SetComputedMode(Standard_True);
- } else if( MyAnimationFlags & V3d_FLAG_DEGENERATION ) {
-@@ -2935,7 +2940,7 @@
- else
- MyAnimationFlags &= ~V3d_FLAG_DEGENERATION;
-
--} // end V3d_View :: SetAnimationMode
-+} /* end V3d_View :: SetAnimationMode */
-
- Standard_Boolean V3d_View::AnimationMode( Standard_Boolean& isDegenerate ) const {
-
-@@ -2985,13 +2990,13 @@
- Update ();
- }
-
--} // end V3d_View :: SetComputedMode
-+} /* end V3d_View :: SetComputedMode */
-
- Standard_Boolean V3d_View :: ComputedMode () const {
-
- return MyView -> ComputedMode ();
-
--} // end V3d_View :: ComputedMode
-+} /* end V3d_View :: ComputedMode */
-
- void V3d_View :: SetBackFacingModel (
- const V3d_TypeOfBackfacingModel aModel
-@@ -2999,13 +3004,13 @@
-
- MyView -> SetBackFacingModel ( Visual3d_TypeOfBackfacingModel(aModel) );
- Redraw();
--} // end V3d_View :: SetBackFacingModel
-+} /* end V3d_View :: SetBackFacingModel */
-
- V3d_TypeOfBackfacingModel V3d_View :: BackFacingModel () const {
-
- return V3d_TypeOfBackfacingModel(MyView -> BackFacingModel ());
-
--} // end V3d_View :: BackFacingModel
-+} /* end V3d_View :: BackFacingModel */
- #endif
-
- Standard_Boolean V3d_View::TransientManagerBeginDraw(const Standard_Boolean DoubleBuffer,const Standard_Boolean RetainMode) const {
-@@ -3047,7 +3052,7 @@
- }
-
- void V3d_View::Plot() {
--// cout << "Appel a Plot de Visual3d_View" << endl;
-+/* cout << "Appel a Plot de Visual3d_View" << endl; */
-
- Viewer_BadValue_Raise_if( !MyPlotter.IsNull(), "view has no plotter");
-
-@@ -3102,7 +3107,7 @@
- new WNT_WDriver (Handle(WNT_Window)::DownCast(MyWindow));
- #else
- new Xw_Driver (Handle(Xw_Window)::DownCast(MyWindow));
--#endif // WNT
-+#endif /* WNT */
- Quantity_Factor aScale;
- Quantity_Length thePixel;
- Quantity_Parameter theWWidth, theWHeight;
-@@ -3115,18 +3120,18 @@
- if (aPlotScale == 0.) {
- aScale = Min (thePWidth / theWWidth, thePHeight / theWHeight);
- } else {
-- // To be changed !!!!!!!!!!!!!!!
-+ /* To be changed !!!!!!!!!!!!!!! */
- aScale = Min (thePWidth / theWWidth, thePHeight / theWHeight);
- }
-
-- // Set default maps (color, type, etc) for plotter driver
-+ /* Set default maps (color, type, etc) for plotter driver*/
- aPlotterDriver -> SetColorMap ( new Aspect_GenericColorMap () );
- aPlotterDriver -> SetTypeMap ( new Aspect_TypeMap () );
- aPlotterDriver -> SetWidthMap ( new Aspect_WidthMap () );
- aPlotterDriver -> SetFontMap ( new Aspect_FontMap () );
- aPlotterDriver -> SetMarkMap ( new Aspect_MarkMap () );
-
-- // Set backgroung to white, unihiglight if any
-+ /* Set backgroung to white, unihiglight if any */
- Quantity_Parameter theRed, theGreen, theBlue;
- Handle(TColStd_HSequenceOfInteger) theFlags;
- Graphic3d_MapOfStructure theStructures;
-@@ -3148,7 +3153,7 @@
- }
- Redraw ();
-
-- // Dump the view
-+ /* Dump the view */
- if (aPlotterDriver->IsKind(STANDARD_TYPE(PlotMgt_ImageDriver))) {
- aFileToDump = aPlotterDriver->PlotFileName();
- } else {
-@@ -3169,7 +3174,7 @@
- SetBackgroundColor (Quantity_TOC_RGB, theRed, theGreen, theBlue);
- Redraw ();
-
-- // Draw imagefile by plotter driver
-+ /* Draw imagefile by plotter driver */
- aPlotterDriver -> SetPixelSize (thePixel);
- aPlotterDriver -> BeginDraw ();
- aPlotterDriver -> DrawImageFile (
-@@ -3189,7 +3194,7 @@
- #include <Graphic3d_GraphicDriver.hxx>
- #include <Visual3d_Layer.hxx>
-
--////////////////////////////////////////////////////////////////
-+/*//////////////////////////////////////////////////////////////*/
- Standard_Boolean V3d_View::Dump ( const Standard_CString aFile )
- {
- Standard_Boolean isDone;
-@@ -3205,16 +3210,16 @@
- return isDone;
- }
-
--////////////////////////////////////////////////////////////////
-+/*///////////////////////////////////////////////////////////////*/
- Standard_Boolean V3d_View::Dump ( const Standard_CString aFile,
- const Aspect_FormatOfSheetPaper aFormat)
- {
- Standard_Boolean isDone = Standard_False;
-- // convert Aspect_FormatOfSheetPaper size to pixel ...
-+ /* convert Aspect_FormatOfSheetPaper size to pixel ...*/
- Quantity_Length theSPWidth, theSPHeight;
- Aspect::ValuesOfFOSP ( aFormat, theSPWidth, theSPHeight );
-
-- // adjusting to the ratio width/height ...
-+ /* adjusting to the ratio width/height ...*/
- Quantity_Length theWinWidth, theWinHeight;
- MyWindow->MMSize ( theWinWidth, theWinHeight );
- Standard_Integer thePixelWidth, thePixelHeight;
-@@ -3236,18 +3241,18 @@
- Xw_PixMap aBitmap ( MyWindow, thePixelWidth, thePixelHeight );
- #endif
-
-- // add bitmap ID and size to the MyCView structure ...
-+ /* add bitmap ID and size to the MyCView structure ...*/
- cView->DefBitmap.bitmap = aBitmap.PixmapID();
- cView->DefBitmap.width = thePixelWidth;
- cView->DefBitmap.height = thePixelHeight;
-
- Redraw ();
-
-- // deactivate the bitmap ID in the MyCView structure ...
-+ /* deactivate the bitmap ID in the MyCView structure ...*/
- cView->DefBitmap.bitmap = Aspect_Handle(NULL);
- cView->DefBitmap.width = 0;
- cView->DefBitmap.height = 0;
--#endif // IMP100701
-+#endif /* IMP100701*/
-
- Standard_Real gammaValue = 1.0;
- OSD_Environment envGamma("CSF_GAMMA_CORRECTION");
-@@ -3258,7 +3263,7 @@
- }
- return isDone;
- }
--#endif //G004
-+#endif /*G004*/
-
- ////////////////////////////////////////////////////////////////
- Handle(Aspect_PixMap) V3d_View::ToPixMap (const Standard_Integer aWidth,
-@@ -3273,26 +3278,26 @@
- theBitmap = new Xw_PixMap ( MyWindow, aWidth, aHeight, aCDepth );
- #endif
-
-- //szv: save mapping
-+ /*szv: save mapping*/
- Visual3d_ViewMapping prevMapping = MyView->ViewMapping();
-
-- //szv: get mapping frame
-+ /*szv: get mapping frame*/
- Standard_Real PUmin, PVmin, PUmax, PVmax;
- prevMapping.WindowLimit(PUmin,PVmin,PUmax,PVmax);
-
-- //szv: calculate expansion
-+ /*szv: calculate expansion*/
- Standard_Real Umin = PUmin, Vmin = PVmin, Umax = PUmax, Vmax = PVmax;
- Standard_Real oldWidth = (PUmax - PUmin), oldHeight = (PVmax - PVmin);
- Standard_Real newWidth = (oldHeight * aWidth) / aHeight;
- if (newWidth < oldWidth) {
- Standard_Real newHeight = (oldWidth * aHeight) / aWidth;
-- // Expand height
-+ /* Expand height*/
- Standard_Real delta = 0.5 * (newHeight - oldHeight);
- Vmin = PVmin - delta;
- Vmax = PVmax + delta;
- }
- else {
-- // Expand width
-+ /* Expand width*/
- Standard_Real delta = 0.5 * (newWidth - oldWidth);
- Umin = PUmin - delta;
- Umax = PUmax + delta;
-@@ -3300,7 +3305,7 @@
-
- Graphic3d_CView* cView = (Graphic3d_CView*)MyView->CView();
-
-- // add bitmap ID and size to the MyCView structure ...
-+ /* add bitmap ID and size to the MyCView structure ...*/
- Standard_Integer aWi, anHe;
- theBitmap->Size ( aWi, anHe );
- cView->DefBitmap.bitmap = theBitmap->PixmapID();
-@@ -3308,17 +3313,17 @@
- cView->DefBitmap.height = anHe;
- cView->DefBitmap.depth = theBitmap->Depth();
-
-- //szv: apply expanded mapping
-+ /*szv: apply expanded mapping*/
- MyViewMapping.SetWindowLimit(Umin,Vmin,Umax,Vmax);
- MyView->SetViewMapping(MyViewMapping);
-
- Redraw ( );
-
-- //szv: restore mapping
-+ /*szv: restore mapping*/
- MyViewMapping = prevMapping;
- MyView->SetViewMapping(prevMapping);
-
-- // deactivate the bitmap ID in the MyCView structure ...
-+ /* deactivate the bitmap ID in the MyCView structure ...*/
- cView->DefBitmap.bitmap = Aspect_Handle(NULL);
- cView->DefBitmap.width = 0;
- cView->DefBitmap.height = 0;
-diff -Naur OpenCASCADE6.3.0/ros/src/ViewerTest/ViewerTest_ViewerCommands.cxx OpenCASCADE6.3.0sp6/ros/src/ViewerTest/ViewerTest_ViewerCommands.cxx
---- OpenCASCADE6.3.0/ros/src/ViewerTest/ViewerTest_ViewerCommands.cxx 2008-08-15 15:57:34.000000000 +0200
-+++ OpenCASCADE6.3.0sp6/ros/src/ViewerTest/ViewerTest_ViewerCommands.cxx 2009-10-03 01:04:52.000000000 +0200
-@@ -1411,6 +1411,23 @@
- return 0;
- }
-
-+//==============================================================================
-+//function : VTestZBuffTrihedron
-+//purpose : Displays a V3d_ZBUFFER'ed trihedron at the bottom left corner of the view
-+//==============================================================================
-+
-+static int VTestZBuffTrihedron(Draw_Interpretor& di, Standard_Integer argc, const char** argv)
-+{
-+ Handle(V3d_View) V3dView = ViewerTest::CurrentView();
-+ if ( V3dView.IsNull() ) return 1;
-+
-+ // Set up default trihedron parameters
-+ V3dView->ZBufferTriedronSetup();
-+ V3dView->TriedronDisplay( Aspect_TOTP_LEFT_LOWER, Quantity_NOC_WHITE, 0.1, V3d_ZBUFFER );
-+ V3dView->ZFitAll();
-+ return 0;
-+}
-+
- //=======================================================================
- //function : ViewerCommands
- //purpose :
-@@ -1453,5 +1470,8 @@
- theCommands.Add("vscale",
- "vscale : vscale X Y Z",
- __FILE__,VScale,group);
-+ theCommands.Add("vzbufftrihedron",
-+ "vzbufftrihedron : Displays a V3d_ZBUFFER'ed trihedron at the bottom left corner of the view",
-+ __FILE__,VTestZBuffTrihedron,group);
-
- }
-diff -Naur OpenCASCADE6.3.0/ros/src/Visual3d/Visual3d_View.cxx OpenCASCADE6.3.0sp6/ros/src/Visual3d/Visual3d_View.cxx
---- OpenCASCADE6.3.0/ros/src/Visual3d/Visual3d_View.cxx 2008-08-22 15:17:03.000000000 +0200
-+++ OpenCASCADE6.3.0sp6/ros/src/Visual3d/Visual3d_View.cxx 2009-10-03 01:04:52.000000000 +0200
-@@ -59,21 +59,21 @@
-
- ************************************************************************/
-
--#define BUC60572 //GG_03-08-99 Add protection on Zclipping & Zcueing planes
--// positions.
-+#define BUC60572 /*GG_03-08-99 Add protection on Zclipping & Zcueing planes */
-+/* positions. */
-
--#define BUC60570 //GG 14-09-99 Don't activates lighting
--// when the view shading model is NONE.
-+#define BUC60570 /*GG 14-09-99 Don't activates lighting
-+ when the view shading model is NONE. */
-
--#define GER61454 //GG 14-09-99 Activates model clipping planes
-+#define GER61454 /*GG 14-09-99 Activates model clipping planes */
-
--#define IMP140100 //GG14-01-00 Add ViewManager( ) method
-+#define IMP140100 /*GG14-01-00 Add ViewManager( ) method */
-
--#define G003 //EUG 30-09-00 Degeneration management
--// Backfacing management
-+#define G003 /*EUG 30-09-00 Degeneration management
-+ Backfacing management */
-
--#define RIC120302 //GG Add a NEW SetWindow method which enable
--// to connect a graphic widget and context to OGL.
-+#define RIC120302 /*GG Add a NEW SetWindow method which enable
-+ to connect a graphic widget and context to OGL. */
-
- #define BUC61044 /* 25/10/01 SAV ; added functionality to control gl depth testing
- from higher API */
-@@ -110,7 +110,7 @@
- #include <windows.h>
- #endif
-
--// for the class
-+/* for the class */
- #include <Visual3d_View.ixx>
- #include <Visual3d_View.pxx>
- #include <Visual3d_DepthCueingDefinitionError.hxx>
-@@ -153,13 +153,13 @@
- # include <Xw_Window.hxx>
- #else
- # include <WNT_Window.hxx>
--#endif // WNT
-+#endif /* WNT */
-
--//-Aliases
-+/*-Aliases*/
-
--//-Global data definitions
-+/*-Global data definitions */
-
--//-Constructors
-+/*-Constructors */
-
- Visual3d_View::Visual3d_View (const Handle(Visual3d_ViewManager)& AManager):
- MyContext (),
-@@ -222,14 +222,14 @@
- MyCView.Orientation.ViewScaleY = float (Sy);
- MyCView.Orientation.ViewScaleZ = float (Sz);
-
-- // NKV : 23/07/07 - Define custom MODELVIEW matrix
-+ /* NKV : 23/07/07 - Define custom MODELVIEW matrix */
- MyCView.Orientation.IsCustomMatrix = 0;
- memset( (float*)MyCView.Orientation.ModelViewMatrix, 0, 16*sizeof( float ) );
- MyCView.Orientation.ModelViewMatrix[0][0] =
- MyCView.Orientation.ModelViewMatrix[1][1] =
- MyCView.Orientation.ModelViewMatrix[2][2] =
- MyCView.Orientation.ModelViewMatrix[3][3] = 1.;
-- //
-+ /**/
-
- Standard_Real um, vm, uM, vM;
-
-@@ -250,14 +250,14 @@
- MyCView.Mapping.WindowLimit.uM = float (uM);
- MyCView.Mapping.WindowLimit.vM = float (vM);
-
-- // NKV : 23/07/07 - Define custom MODELVIEW matrix
-+ /* NKV : 23/07/07 - Define custom MODELVIEW matrix */
- MyCView.Mapping.IsCustomMatrix = 0;
- memset( (float*)MyCView.Mapping.ProjectionMatrix, 0, 16*sizeof( float ) );
- MyCView.Mapping.ProjectionMatrix[0][0] =
- MyCView.Mapping.ProjectionMatrix[1][1] =
- MyCView.Mapping.ProjectionMatrix[2][2] =
- MyCView.Mapping.ProjectionMatrix[3][3] = 1.;
-- //
-+ /**/
-
- MyCView.Context.ZBufferActivity = -1;
-
-@@ -273,7 +273,7 @@
- MyCView.IsDegeneratesPrev = 0;
- ComputedModeIsActive = Standard_False;
- MyCView.Backfacing = 0;
--#endif // G003
-+#endif /* G003 */
-
- MyCView.DefBitmap.bitmap = 0;
- MyCView.ptrUnderLayer = 0;
-@@ -350,8 +350,8 @@
- MyCView.Orientation.ViewScaleX = float (Sx);
- MyCView.Orientation.ViewScaleY = float (Sy);
- MyCView.Orientation.ViewScaleZ = float (Sz);
--
-- // NKV : 23/07/07 - Define custom MODELVIEW matrix
-+
-+ /* NKV : 23/07/07 - Define custom MODELVIEW matrix */
- if (MyViewOrientation.IsCustomMatrix()) {
- MyCView.Orientation.IsCustomMatrix = 1;
- for ( i = 0; i < 4; i++)
-@@ -366,7 +366,7 @@
- MyCView.Orientation.ModelViewMatrix[2][2] =
- MyCView.Orientation.ModelViewMatrix[3][3] = 1.;
- }
-- //
-+ /**/
-
- Standard_Real um, vm, uM, vM;
-
-@@ -387,7 +387,7 @@
- MyCView.Mapping.WindowLimit.uM = float (uM);
- MyCView.Mapping.WindowLimit.vM = float (vM);
-
-- // NKV : 23/07/07 - Define custom MODELVIEW matrix
-+ /* NKV : 23/07/07 - Define custom MODELVIEW matrix */
- if (MyViewMapping.IsCustomMatrix()) {
- MyCView.Mapping.IsCustomMatrix = 1;
- for ( i = 0; i < 4; i++)
-@@ -402,8 +402,8 @@
- MyCView.Mapping.ProjectionMatrix[2][2] =
- MyCView.Mapping.ProjectionMatrix[3][3] = 1.;
- }
-- //
--
-+ /**/
-+
- MyCView.Context.ZBufferActivity = -1;
-
- MyMatOfMapIsModified = Standard_True;
-@@ -415,7 +415,7 @@
- MyCView.IsDegenerates = 0;
- MyCView.IsDegeneratesPrev = 0;
- ComputedModeIsActive = Standard_False;
--#endif // G003
-+#endif /* G003 */
-
- MyCView.DefBitmap.bitmap = 0;
- MyCView.ptrUnderLayer = 0;
-@@ -431,10 +431,10 @@
-
- }
-
--//-Destructors
-+/*-Destructors */
-
--//-Methods, in order
--// RIC120302
-+/*-Methods, in order*/
-+/* RIC120302 */
- void Visual3d_View::SetWindow (const Handle(Aspect_Window)& AWindow,
- const Aspect_RenderingContext AContext,
- const Aspect_GraphicCallbackProc& ADisplayCB,
-@@ -486,8 +486,8 @@
-
- Standard_Integer Width, Height;
- AWindow->Size (Width, Height);
--
-- MyCView.DefWindow.dx = float( Width );
-+
-+ MyCView.DefWindow.dx = float( Width );
- MyCView.DefWindow.dy = float( Height );
-
- Standard_Real R, G, B;
-@@ -628,7 +628,7 @@
- MyViewMapping.WindowLimit(Umin,Vmin,Umax,Vmax) ;
- Xc = (Umin + Umax)/2. ; Yc = (Vmin + Vmax)/2. ;
- Dxv = Umax - Umin ; Dyv = Vmax - Vmin ;
-- if( Dxw > 0 && Dyw > 0 ) Rap = (Standard_Real)Dyw/(Standard_Real)Dxw ;
-+ if( Dxw > 0 && Dyw > 0 ) Rap = (Standard_Real)Dyw/(Standard_Real)Dxw;
- if( Rap > 0.0 ) {
-
- if( Dxv <= Dyv )
-@@ -665,11 +665,11 @@
-
- // Mise a jour avant le SetViewMapping.
-
-- MyCView.DefWindow.dx = float( Dxw );
-- MyCView.DefWindow.dy = float( Dyw );
-+ MyCView.DefWindow.dx = float( Dxw );
-+ MyCView.DefWindow.dy = float( Dyw );
-
- SetViewMapping (MyViewMapping);
--// SetViewMappingDefault ();
-+ // SetViewMappingDefault ();
- // FMN+ Mise a jout Ratio pour le MyViewMappingReset
-
- MyViewMappingReset.WindowLimit(Umin,Vmin,Umax,Vmax) ;
-@@ -1109,7 +1109,7 @@
- MyCView.Orientation.ViewScaleY = float (Sy);
- MyCView.Orientation.ViewScaleZ = float (Sz);
-
-- CustomIsModified =
-+ CustomIsModified =
- MyCView.Orientation.IsCustomMatrix != MyViewOrientation.IsCustomMatrix();
- MyCView.Orientation.IsCustomMatrix = MyViewOrientation.IsCustomMatrix();
- if ( MyViewOrientation.IsCustomMatrix() ) {
-@@ -1121,14 +1121,14 @@
- MyCView.Orientation.ModelViewMatrix[i][j] = MyViewOrientation.MyModelViewMatrix->Value(i,j);
- }
- }
--
-+
- #ifdef TRACE_TRSF
- cout << "Visual3d_View::SetViewOrientation\n";
-- if (VUPIsModified || VRPIsModified || VRUIsModified || CustomIsModified)
-- cout << "VUPIsModified : " << VUPIsModified
-- << ", VRPIsModified : " << VRPIsModified
-- << ", VRUIsModified : " << VRUIsModified
-- << ", CustomIsModified : " << CustomIsModified << "\n" << flush;
-+ if (VUPIsModified || VRPIsModified || VRUIsModified || CustomIsModified)
-+ cout << "VUPIsModified : " << VUPIsModified
-+ << ", VRPIsModified : " << VRPIsModified
-+ << ", VRUIsModified : " << VRUIsModified
-+ << ", CustomIsModified : " << CustomIsModified << "\n" << flush;
- else
- cout << "no modification\n" << flush;
- #endif
-@@ -1297,14 +1297,14 @@
- MyCView.Mapping.WindowLimit.uM = float (uM);
- MyCView.Mapping.WindowLimit.vM = float (vM);
-
-- MyCView.Mapping.IsCustomMatrix = MyViewMapping.IsCustomMatrix();
-+ MyCView.Mapping.IsCustomMatrix = MyViewMapping.IsCustomMatrix();
- if (MyViewMapping.IsCustomMatrix()) {
- Standard_Integer i, j;
- for (i = 0; i < 4; i++)
- for (j = 0; j < 0; j++)
- MyCView.Mapping.ProjectionMatrix[i][j] = MyViewMapping.MyProjectionMatrix->Value(i,j);
- }
--
-+
- MyMatOfMapIsModified = Standard_True;
- MyMatOfMapIsEvaluated = Standard_False;
-
-@@ -1365,7 +1365,7 @@
- MyCView.Mapping.WindowLimit.uM = float (uM);
- MyCView.Mapping.WindowLimit.vM = float (vM);
-
-- MyCView.Mapping.IsCustomMatrix = MyViewMapping.IsCustomMatrix();
-+ MyCView.Mapping.IsCustomMatrix = MyViewMapping.IsCustomMatrix();
- if (MyViewMapping.IsCustomMatrix()) {
- Standard_Integer i, j;
- for (i = 0; i < 4; i++)
-@@ -1605,11 +1605,11 @@
-
- }
-
--void Visual3d_View::DisplayedStructures (Graphic3d_MapOfStructure& SG) const
-+void Visual3d_View::DisplayedStructures (Graphic3d_MapOfStructure& SG) const
- {
-
- if (IsDeleted ()) return;
--
-+
- Graphic3d_MapIteratorOfMapOfStructure Iterator (MyDisplayedStructure);
-
- while (Iterator.More ()) {
-@@ -1647,7 +1647,7 @@
- * la vue directement, si la structure n'est pas deja
- * affichee et si la vue l'accepte dans son contexte.
- */
--
-+
- Visual3d_TypeOfAnswer Answer;
- Graphic3d_MapOfStructure Map;
- MyViewManager->DisplayedStructures(Map);
-@@ -1718,7 +1718,8 @@
- * effacee et si la vue l'accepte dans son contexte.
- */
-
-- Visual3d_TypeOfAnswer Answer;
-+
-+ Visual3d_TypeOfAnswer Answer;
- Graphic3d_MapOfStructure Map;
- MyViewManager->DisplayedStructures(Map);
- Graphic3d_MapIteratorOfMapOfStructure it(Map);
-@@ -2083,10 +2084,10 @@
- Index = 0;
- }
-
-- Visual3d_TypeOfAnswer Answer = AcceptDisplay (AStructure);
-+ Visual3d_TypeOfAnswer Answer = AcceptDisplay (AStructure);
-
- #ifdef TRACE_DISPLAY
-- Standard_Integer StructId = AStructure->Identification ();
-+ Standard_Integer StructId = AStructure->Identification ();
- cout << "Visual3d_View" << MyCView.ViewId << "::Display ("
- << StructId << ");\n";
- cout << flush;
-@@ -2094,8 +2095,8 @@
-
- if (Answer == Visual3d_TOA_NO) {
- #ifdef TRACE_DISPLAY
-- cout << "Answer : Visual3d_TOA_NO\n";
-- cout << flush;
-+ cout << "Answer : Visual3d_TOA_NO\n";
-+ cout << flush;
- #endif
- return;
- }
-@@ -2880,24 +2881,25 @@
- APX = ( APX + 1 ) * 0.5 * (uM - um) + um;
- APY = ( APY + 1 ) * 0.5 * (vM - vm) + vm;
- } else {
-- Ratio = (uM - um) / (vM - vm);
-- if (Ratio >= 1.0)
-- APY *= Ratio;
-- else
-- APX /= Ratio;
--
-- /*
-- * Les coordonnees de APX, APY, APZ sont decrites dans
-- * l'espace [0-1]x[0-1]x[0-1].
-- * Il faut transformer x et y dans le window space.
-- * Il faut transformer z dans l'espace du back et front
-- * plane, en pensant aux plans de clipping.
-- * Ces plans de z clipping sont definis entre 0 et 1.
-- */
-- APX = APX * (uM - um) + um;
-- APY = APY * (vM - vm) + vm;
-- }
-- APZ = APZ * (fpd - bpd) + bpd;
-+ Ratio = (uM - um) / (vM - vm);
-+ if (Ratio >= 1.0)
-+ APY *= Ratio;
-+ else
-+ APX /= Ratio;
-+
-+ /*
-+ * Les coordonnees de APX, APY, APZ sont decrites dans
-+ * l'espace [0-1]x[0-1]x[0-1].
-+ * Il faut transformer x et y dans le window space.
-+ * Il faut transformer z dans l'espace du back et front
-+ * plane, en pensant aux plans de clipping.
-+ * Ces plans de z clipping sont definis entre 0 et 1.
-+ */
-+
-+ APX = APX * (uM - um) + um;
-+ APY = APY * (vM - vm) + vm;
-+ }
-+ APZ = APZ * (fpd - bpd) + bpd;
- }
-
- Standard_Integer Visual3d_View::Identification () const {
-@@ -3094,7 +3096,7 @@
- MyCOMPUTEDSequence.Value (Index)->Identification ();
- #ifdef TRACE_COMP
- Standard_Integer StructId = AStructure->Identification ();
-- cout << "La structure " << StructId
-+ cout << "La structure " << StructId
- << " calculee, dans la view "
- << Identification () << ", par la structure "
- << OldStructId << " est recalculee.\n";
-diff -Naur OpenCASCADE6.3.0/ros/src/WNT/WNT_Window.cdl OpenCASCADE6.3.0sp6/ros/src/WNT/WNT_Window.cdl
---- OpenCASCADE6.3.0/ros/src/WNT/WNT_Window.cdl 2005-08-26 18:28:43.000000000 +0200
-+++ OpenCASCADE6.3.0sp6/ros/src/WNT/WNT_Window.cdl 2009-10-03 01:04:53.000000000 +0200
-@@ -16,6 +16,12 @@
- -- Warning: The position and size for the creation of the window
- -- are defined in Device Screen Unit (DSU)
- -- floating [0,1] space.
-+ --
-+ -- As 3D view window is the main purpose of this class,
-+ -- and 3D view does not need its background to be drawn
-+ -- by the system, by default the window background is not drawn.
-+ -- This can be overridden by calling ClearFlags( WDF_NOERASEBKGRND ).
-+ -- See also WNT_WndProc.cxx and InterfaceGraphic_WNT.hxx.
-
- uses
-
-@@ -335,11 +341,15 @@
- is static;
- ---Level: Public
- ---Purpose: Sets user defined flags in the extra window data area.
-+ -- Supported flags WDF_* are listed in InterfaceGraphic_WNT.hxx
-+ -- In particular, the window backround can be turned off using this method.
-
- ResetFlags ( me : mutable; aFlags : Integer from Standard )
- is static;
- ---Level: Public
- ---Purpose: Reset specified flags in the extra window data area.
-+ -- Supported flags WDF_* are listed in InterfaceGraphic_WNT.hxx
-+ -- In particular, the window backround can be turned on using this method.
-
-
- ----------------------------
-diff -Naur OpenCASCADE6.3.0/ros/src/WNT/WNT_Window.cxx OpenCASCADE6.3.0sp6/ros/src/WNT/WNT_Window.cxx
---- OpenCASCADE6.3.0/ros/src/WNT/WNT_Window.cxx 2008-07-04 17:36:55.000000000 +0200
-+++ OpenCASCADE6.3.0sp6/ros/src/WNT/WNT_Window.cxx 2009-10-03 01:04:53.000000000 +0200
-@@ -67,13 +67,13 @@
- const Aspect_Handle aMenu,
- const Standard_Address aClientStruct
- ) : Aspect_Window ( aDevice ), myWClass ( aClass )
--{
-+{
- int x, y, w, h, px, py, pw, ph;
- DWORD dwStyle = aStyle;
- const Handle( WNT_GraphicDevice )& dev = Handle( WNT_GraphicDevice ) ::
- DownCast ( MyGraphicDevice );
-
-- if ( Xc < 0. || Xc > 1. || Yc < 0. || Yc > 1. ||
-+ if ( Xc < 0. || Xc > 1. || Yc < 0. || Yc > 1. ||
- aWidth <= 0. || aHeight <= 0. )
-
- Aspect_WindowDefinitionError :: Raise ( "Coordinate(s) out of range" );
-@@ -150,8 +150,7 @@
- myHPixmap = 0;
- myHParentWindow = aParent;
- myWndProc = myWClass -> WndProc ();
-- myHParentWindow = aParent;
--
-+ myHParentWindow = aParent;
- SetBackground ( aBackColor );
- #ifndef _WIN64
- SetWindowLong ( ( HWND )myHWindow, GWL_WNDPROC, ( LONG )WNT_WndProc );
-@@ -177,6 +176,11 @@
- myImages = new WNT_ImageManager ( this );
- myFormat = WNT_TOI_XWD;
-
-+ /* Bug OCC20596 */
-+ SetFlags(WDF_NOERASEBKGRND);
-+
-+
-+
- } // end constructor
- //***//
- //************************* Constructor **********************************//
-@@ -189,6 +193,9 @@
-
- doCreate ( aDevice, aHandle, aBackColor );
-
-+ /* Bug OCC20596 */
-+ SetFlags(WDF_NOERASEBKGRND);
-+
- } // end constructor
- //***//
- //************************* Constructor **********************************//
-@@ -204,6 +211,9 @@
-
- doCreate ( aDevice, aHandle, aBackColor );
-
-+ /* Bug OCC20596 */
-+ SetFlags(WDF_NOERASEBKGRND);
-+
- } // end constructor
- //***//
- //***************************** Destroy **********************************//