0023959: Getting rid of generic classes in Visualization: generic classes were remove...
[occt.git] / src / Prs3d / Prs3d_WFRestrictedFace.gxx
diff --git a/src/Prs3d/Prs3d_WFRestrictedFace.gxx b/src/Prs3d/Prs3d_WFRestrictedFace.gxx
deleted file mode 100755 (executable)
index 4c7b9c3..0000000
+++ /dev/null
@@ -1,491 +0,0 @@
-// Created on: 1994-06-10
-// Created by: Laurent PAINNOT
-// Copyright (c) 1994-1999 Matra Datavision
-// Copyright (c) 1999-2012 OPEN CASCADE SAS
-//
-// The content of this file is subject to the Open CASCADE Technology Public
-// License Version 6.5 (the "License"). You may not use the content of this file
-// except in compliance with the License. Please obtain a copy of the License
-// at http://www.opencascade.org and read it completely before using this file.
-//
-// The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
-// main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
-//
-// The Original Code and all software distributed under the License is
-// distributed on an "AS IS" basis, without warranty of any kind, and the
-// Initial Developer hereby disclaims all such warranties, including without
-// limitation, any warranties of merchantability, fitness for a particular
-// purpose or non-infringement. Please see the License for the specific terms
-// and conditions governing the rights and limitations under the License.
-
-
-#include <Hatch_Hatcher.hxx>
-#include <Graphic3d_Group.hxx>
-#include <gp_Pnt.hxx>
-#include <Prs3d_IsoAspect.hxx>
-#include <Adaptor3d_IsoCurve.hxx>
-#include <Bnd_Box2d.hxx>
-#include <BndLib_Add2dCurve.hxx>
-#include <Precision.hxx>
-#include <GeomAdaptor_Curve.hxx>
-#include <Geom_Curve.hxx>
-#include <GeomAbs_SurfaceType.hxx>
-#include <Geom_Surface.hxx>
-
-//=========================================================================
-// function: Add
-// purpose
-//=========================================================================
-void Prs3d_WFRestrictedFace::Add
-  (const Handle (Prs3d_Presentation)&  aPresentation,
-   const Handle(BRepAdaptor_HSurface)& aFace,
-   const Standard_Boolean              DrawUIso,
-   const Standard_Boolean              DrawVIso,
-   const Quantity_Length               aDeflection,
-   const Standard_Integer              NBUiso,
-   const Standard_Integer              NBViso,
-   const Handle(Prs3d_Drawer)&         aDrawer,
-   Prs3d_NListOfSequenceOfPnt&         Curves)
-{
-  Standard_Real aLimit = aDrawer->MaximalParameterValue();
-  Standard_Integer nbPoints = aDrawer->Discretisation();
-
-  RestrictionTool ToolRst (aFace);
-
-  // compute bounds of the restriction
-  Standard_Real UMin,UMax,VMin,VMax;
-//  Standard_Real u,v,step;
-//  Standard_Integer i, nbp= 10;
-  Standard_Integer i;
-  gp_Pnt2d P1,P2;
-  Bnd_Box2d B;
-  
-  for (ToolRst.Init(); ToolRst.More(); ToolRst.Next()) {
-    Adaptor2d_Curve2dPtr TheRCurve = ToolRst.Value();
-    BndLib_Add2dCurve::Add(*TheRCurve, Precision::PConfusion(), B);
-  }
-  if ( ! B.IsVoid() )
-    B.Get(UMin, VMin, UMax, VMax);
-  else
-  { // no pcurves -- take natural bounds
-    UMin = aFace->Surface().FirstUParameter();
-    VMin = aFace->Surface().FirstVParameter();
-    UMax = aFace->Surface().LastUParameter();
-    VMax = aFace->Surface().LastVParameter();
-  }
-
-  // load the isos
-  Hatch_Hatcher isobuild(1.e-5,ToolRst.IsOriented());
-  Standard_Boolean UClosed = aFace->IsUClosed();
-  Standard_Boolean VClosed = aFace->IsVClosed();
-
-  if ( ! UClosed ) {
-    UMin = UMin + ( UMax - UMin) /1000.;
-    UMax = UMax - ( UMax - UMin) /1000.; 
-  }
-
-  if ( ! VClosed ) {
-    VMin = VMin + ( VMax - VMin) /1000.;
-    VMax = VMax - ( VMax - VMin) /1000.; 
-  }
-
-  if (DrawUIso){
-    if (NBUiso > 0) {
-      UClosed = Standard_False; // En attendant un hatcher de course.
-      Standard_Real du= UClosed ? (UMax-UMin)/NBUiso : (UMax-UMin)/(1+NBUiso);
-      for (i=1; i<=NBUiso;i++){
-       isobuild.AddXLine(UMin+du*i);
-      }
-    }
-  }
-  if (DrawVIso){
-    if ( NBViso > 0) {
-      VClosed = Standard_False;
-      Standard_Real dv= VClosed ?(VMax-VMin)/NBViso : (VMax-VMin)/(1+NBViso);
-      for (i=1; i<=NBViso;i++){
-       isobuild.AddYLine(VMin+dv*i);
-      }
-    }
-  }
-
-  // trim the isos
-  Standard_Real U1, U2, U, DU;
-
-  for (ToolRst.Init(); ToolRst.More(); ToolRst.Next()) {
-    TopAbs_Orientation Orient = ToolRst.Orientation();
-    if ( Orient == TopAbs_FORWARD || Orient == TopAbs_REVERSED ) {
-      Adaptor2d_Curve2dPtr TheRCurve = ToolRst.Value();
-      U1 = TheRCurve->FirstParameter();
-      U2 = TheRCurve->LastParameter();
-      if (TheRCurve->GetType() != GeomAbs_Line) {
-       DU = (U2-U1)/(nbPoints-1);
-       P2 = TheRCurve->Value(U1);
-       for (i = 2; i <= nbPoints; i++) {
-         U = U1 + (i-1)*DU;
-         P1 = P2;
-         P2 = TheRCurve->Value(U);
-         if(Orient == TopAbs_FORWARD )
-           isobuild.Trim(P1,P2);
-         else
-           isobuild.Trim(P2,P1);
-       }
-      }
-      else {
-       P1 = TheRCurve->Value(U1);
-       P2 = TheRCurve->Value(U2);
-       if(Orient == TopAbs_FORWARD )
-         isobuild.Trim(P1,P2);
-       else
-         isobuild.Trim(P2,P1);
-      }          
-    }
-  }
-
-  // draw the isos
-  Adaptor3d_IsoCurve anIso;
-  anIso.Load(aFace);
-  Handle(Geom_Curve) BC;
-  const BRepAdaptor_Surface& BS = *(BRepAdaptor_Surface*)&(aFace->Surface());
-  GeomAbs_SurfaceType thetype = aFace->GetType();
-
-  Standard_Integer NumberOfLines = isobuild.NbLines();
-  Handle(Geom_Surface) GB;
-  if (thetype == GeomAbs_BezierSurface) {
-    GB = BS.Bezier();
-  }
-  else if (thetype == GeomAbs_BSplineSurface){
-    GB = BS.BSpline();
-  }
-
-  for (i = 1; i <= NumberOfLines; i++) {
-    Standard_Integer NumberOfIntervals = isobuild.NbIntervals(i);
-    Standard_Real Coord = isobuild.Coordinate(i);
-    for (Standard_Integer j = 1; j <= NumberOfIntervals; j++) {
-      Standard_Real b1=isobuild.Start(i,j),b2=isobuild.End(i,j);
-
-      if(b1 == RealFirst() || b2 == RealLast())
-        continue;
-      //b1 = b1 == RealFirst() ? - aLimit : b1;
-      //b2 = b2 == RealLast()  ?   aLimit : b2;
-
-      TColgp_SequenceOfPnt Pnts;
-      if (!GB.IsNull()) {
-       if (isobuild.IsXLine(i))
-         BC = GB->UIso(Coord);
-       else 
-         BC = GB->VIso(Coord);
-       //Note that the isos are the part of the shape, it will be displayed after a computation the whole shape
-       //NbPoints = 30 - default parameter for computation of such curves
-       DrawFaceIso::Add(aPresentation,GeomAdaptor_Curve(BC), b1, b2, aDeflection, Pnts, 30, Standard_False);
-       Curves.Append(Pnts);
-      }
-      else {
-       if (isobuild.IsXLine(i))
-         anIso.Load(GeomAbs_IsoU,Coord,b1,b2);
-       else
-         anIso.Load(GeomAbs_IsoV,Coord,b1,b2);
-       DrawFaceIso::Add(aPresentation,anIso, aDeflection, aDrawer, Pnts, Standard_False);
-       Curves.Append(Pnts);
-      }
-    }
-  }
-}
-
-
-//=========================================================================
-// function: Match
-// purpose
-//=========================================================================
-Standard_Boolean Prs3d_WFRestrictedFace::Match
-  (const Quantity_Length X,
-   const Quantity_Length Y,
-   const Quantity_Length Z,
-   const Quantity_Length aDistance,
-   const Handle(BRepAdaptor_HSurface)& aFace,
-   const Standard_Boolean DrawUIso,
-   const Standard_Boolean DrawVIso,
-   const Quantity_Length aDeflection,
-   const Standard_Integer NBUiso,
-   const Standard_Integer NBViso,
-   const Handle(Prs3d_Drawer)& aDrawer)
-{
-  Standard_Real aLimit = aDrawer->MaximalParameterValue();
-  Standard_Integer nbPoints = aDrawer->Discretisation();
-  RestrictionTool ToolRst (aFace);
-
-  // compute bounds of the restriction
-  Standard_Real UMin,UMax,VMin,VMax;
-  Standard_Real u,v,step;
-  Standard_Integer i,nbP = 10;
-  UMin = VMin = RealLast();
-  UMax = VMax = RealFirst();
-  gp_Pnt2d P1,P2;
-
-  for (ToolRst.Init(); ToolRst.More(); ToolRst.Next()) {
-    Adaptor2d_Curve2dPtr TheRCurve = ToolRst.Value();
-    u = TheRCurve->FirstParameter();
-    v = TheRCurve->LastParameter();
-    if (TheRCurve->GetType() != GeomAbs_Line) {
-      step = ( v - u) / nbP;
-      for (i = 0; i <= nbP; i++) {
-       gp_Pnt2d P = TheRCurve->Value(u);
-       if (P.X() < UMin) UMin = P.X();
-       if (P.X() > UMax) UMax = P.X();
-       if (P.Y() < VMin) VMin = P.Y();
-       if (P.Y() > VMax) VMax = P.Y();
-       u += step;
-      }
-    }
-    else {
-      P1 = TheRCurve->Value(u);
-      if (P1.X() < UMin) UMin = P1.X();
-      if (P1.X() > UMax) UMax = P1.X();
-      if (P1.Y() < VMin) VMin = P1.Y();
-      if (P1.Y() > VMax) VMax = P1.Y();
-
-      P2 = TheRCurve->Value(v);
-      if (P2.X() < UMin) UMin = P2.X();
-      if (P2.X() > UMax) UMax = P2.X();
-      if (P2.Y() < VMin) VMin = P2.Y();
-      if (P2.Y() > VMax) VMax = P2.Y();
-    }
-  }
-
-  // load the isos
-  Hatch_Hatcher isobuild(1.e-5,ToolRst.IsOriented());
-  Standard_Boolean UClosed = aFace->IsUClosed();
-  Standard_Boolean VClosed = aFace->IsVClosed();
-
-  if ( ! UClosed ) {
-    UMin = UMin + ( UMax - UMin) /1000.;
-    UMax = UMax - ( UMax - UMin) /1000.; 
-  }
-
-  if ( ! VClosed ) {
-    VMin = VMin + ( VMax - VMin) /1000.;
-    VMax = VMax - ( VMax - VMin) /1000.; 
-  }
-
-  if (DrawUIso){
-    if (NBUiso > 0) {
-      UClosed = Standard_False; // En attendant un hatcher de course.
-      Standard_Real du= UClosed ? (UMax-UMin)/NBUiso : (UMax-UMin)/(1+NBUiso);
-      for (i=1; i<=NBUiso;i++){
-       isobuild.AddXLine(UMin+du*i);
-      }
-    }
-  }
-  if (DrawVIso){
-    if ( NBViso > 0) {
-      VClosed = Standard_False;
-      Standard_Real dv= VClosed ?(VMax-VMin)/NBViso : (VMax-VMin)/(1+NBViso);
-      for (i=1; i<=NBViso;i++){
-       isobuild.AddYLine(VMin+dv*i);
-      }
-    }
-  }
-
-  // trim the isos
-  Standard_Real U1, U2, U, DU;
-
-  for (ToolRst.Init(); ToolRst.More(); ToolRst.Next()) {
-    TopAbs_Orientation Orient = ToolRst.Orientation();
-    if ( Orient == TopAbs_FORWARD || Orient == TopAbs_REVERSED ) {
-      Adaptor2d_Curve2dPtr TheRCurve = ToolRst.Value();
-      U1 = TheRCurve->FirstParameter();
-      U2 = TheRCurve->LastParameter();
-      if (TheRCurve->GetType() != GeomAbs_Line) {
-       DU = (U2-U1)/(nbPoints-1);
-       P2 = TheRCurve->Value(U1);
-       for (i = 2; i <= nbPoints; i++) {
-         U = U1 + (i-1)*DU;
-         P1 = P2;
-         P2 = TheRCurve->Value(U);
-         if(Orient == TopAbs_FORWARD )
-           isobuild.Trim(P1,P2);
-         else
-           isobuild.Trim(P2,P1);
-       }
-      }
-      else {
-       P1 = TheRCurve->Value(U1);
-       P2 = TheRCurve->Value(U2);
-       if(Orient == TopAbs_FORWARD )
-         isobuild.Trim(P1,P2);
-       else
-         isobuild.Trim(P2,P1);
-      }          
-    }
-  }
-  
-  // draw the isos
-
-  Adaptor3d_IsoCurve anIso;
-  anIso.Load(aFace);
-  Standard_Integer NumberOfLines = isobuild.NbLines();
-
-  for (i = 1; i <= NumberOfLines; i++) {
-    Standard_Integer NumberOfIntervals = isobuild.NbIntervals(i);
-    Standard_Real Coord = isobuild.Coordinate(i);
-    for (Standard_Integer j = 1; j <= NumberOfIntervals; j++) {
-      Standard_Real b1=isobuild.Start(i,j),b2=isobuild.End(i,j);
-
-      b1 = b1 == RealFirst() ? - aLimit : b1;
-      b2 = b2 == RealLast()  ?   aLimit : b2;
-
-
-      if (isobuild.IsXLine(i))
-       anIso.Load(GeomAbs_IsoU,Coord,b1,b2);
-      else
-       anIso.Load(GeomAbs_IsoV,Coord,b1,b2);
-    
-      if (DrawFaceIso::Match(X,Y,Z,aDistance,anIso, 
-                            aDeflection, aLimit, nbPoints))
-         return Standard_True;
-       
-       
-    }
-  }
-  return Standard_False;
-}
-
-
-//=========================================================================
-// function: Add
-// purpose
-//=========================================================================
-void Prs3d_WFRestrictedFace::Add
-  (const Handle (Prs3d_Presentation)& aPresentation,
-   const Handle(BRepAdaptor_HSurface)&    aFace,
-   const Handle (Prs3d_Drawer)&       aDrawer)
-{
-  Prs3d_NListOfSequenceOfPnt Curves;
-  Prs3d_WFRestrictedFace::Add (  
-                     aPresentation,
-                     aFace,
-                     Standard_True,
-                     Standard_True,
-                     aDrawer->MaximalChordialDeviation(),
-                     aDrawer->UIsoAspect()->Number(),
-                     aDrawer->VIsoAspect()->Number(),
-                     aDrawer,
-                     Curves);
-}
-
-
-//=========================================================================
-// function: AddUIso
-// purpose
-//=========================================================================
-void Prs3d_WFRestrictedFace::AddUIso
-  (const Handle (Prs3d_Presentation)& aPresentation,
-   const Handle(BRepAdaptor_HSurface)& aFace,
-   const Handle (Prs3d_Drawer)& aDrawer)
-{
-  Prs3d_NListOfSequenceOfPnt Curves;
-  Prs3d_WFRestrictedFace::Add ( 
-                     aPresentation,
-                     aFace,
-                     Standard_True,
-                     Standard_False,
-                     aDrawer->MaximalChordialDeviation(),
-                     aDrawer->UIsoAspect()->Number(),
-                     aDrawer->VIsoAspect()->Number(),
-                     aDrawer,
-                     Curves);
-}
-
-
-//=========================================================================
-// function: AddVIso
-// purpose
-//=========================================================================
-void Prs3d_WFRestrictedFace::AddVIso
-  (const Handle (Prs3d_Presentation)& aPresentation,
-   const Handle(BRepAdaptor_HSurface)& aFace,
-   const Handle (Prs3d_Drawer)& aDrawer)
-{
-  Prs3d_NListOfSequenceOfPnt Curves;
-  Prs3d_WFRestrictedFace::Add ( 
-                     aPresentation,
-                     aFace,
-                     Standard_False,
-                     Standard_True,
-                     aDrawer->MaximalChordialDeviation(),
-                     aDrawer->UIsoAspect()->Number(),
-                     aDrawer->VIsoAspect()->Number(),
-                     aDrawer,
-                     Curves);
-}
-
-
-//=========================================================================
-// function: Match
-// purpose
-//=========================================================================
-Standard_Boolean Prs3d_WFRestrictedFace::Match
-  (const Quantity_Length X,
-   const Quantity_Length Y,
-   const Quantity_Length Z,
-   const Quantity_Length aDistance,
-   const Handle(BRepAdaptor_HSurface)& aFace,
-   const Handle (Prs3d_Drawer)& aDrawer)
-{
-  return Prs3d_WFRestrictedFace::Match (  
-                      X,Y,Z,aDistance,
-                      aFace,
-                      Standard_True,
-                      Standard_True,
-                      aDrawer->MaximalChordialDeviation(),
-                      aDrawer->UIsoAspect()->Number(),
-                      aDrawer->VIsoAspect()->Number(),
-                      aDrawer);
-}
-
-
-//=========================================================================
-// function: MatchUIso
-// purpose
-//=========================================================================
-Standard_Boolean Prs3d_WFRestrictedFace::MatchUIso
-  (const Quantity_Length X,
-   const Quantity_Length Y,
-   const Quantity_Length Z,
-   const Quantity_Length aDistance,
-   const Handle(BRepAdaptor_HSurface)& aFace,
-   const Handle (Prs3d_Drawer)& aDrawer)
-{
-  return Prs3d_WFRestrictedFace::Match ( 
-                      X,Y,Z,aDistance,
-                      aFace,
-                      Standard_True,
-                      Standard_False,
-                      aDrawer->MaximalChordialDeviation(),
-                      aDrawer->UIsoAspect()->Number(),
-                      aDrawer->VIsoAspect()->Number(),
-                      aDrawer);
-}
-
-
-//=========================================================================
-// function: MatchVIso
-// purpose
-//=========================================================================
-Standard_Boolean Prs3d_WFRestrictedFace::MatchVIso
-  (const Quantity_Length X,
-   const Quantity_Length Y,
-   const Quantity_Length Z,
-   const Quantity_Length aDistance,
-   const Handle(BRepAdaptor_HSurface)& aFace,
-   const Handle (Prs3d_Drawer)& aDrawer)
-{
-  return Prs3d_WFRestrictedFace::Match ( 
-                      X,Y,Z,aDistance,
-                      aFace,
-                      Standard_False,
-                      Standard_True,
-                      aDrawer->MaximalChordialDeviation(),
-                      aDrawer->UIsoAspect()->Number(),
-                      aDrawer->VIsoAspect()->Number(),
-                      aDrawer);
-}