0031442: Samples - remove unsupported sample mfc/occtdemo
[occt.git] / samples / mfc / occtdemo / ThruSections / ThruSections_Presentation.cpp
diff --git a/samples/mfc/occtdemo/ThruSections/ThruSections_Presentation.cpp b/samples/mfc/occtdemo/ThruSections/ThruSections_Presentation.cpp
deleted file mode 100755 (executable)
index 381ea4d..0000000
+++ /dev/null
@@ -1,516 +0,0 @@
-// ThruSections_Presentation.cpp: implementation of the ThruSections_Presentation class.
-// Building shapes passed through sections.
-//////////////////////////////////////////////////////////////////////
-
-#include "stdafx.h"
-#include "ThruSections_Presentation.h"
-
-#include <Standard.hxx>
-#include <Precision.hxx>
-
-#include <BRepBuilderAPI_MakePolygon.hxx>
-#include <BRepBuilderAPI_MakeEdge.hxx>
-#include <BRepBuilderAPI_MakeWire.hxx>
-#include <BRepOffsetAPI_ThruSections.hxx>
-
-#include <TopoDS.hxx>
-#include <TopoDS_Wire.hxx>
-
-#include <gce_MakeCirc.hxx>
-#include <gce_MakeElips.hxx>
-#include <gp.hxx>
-#include <gp_Pnt.hxx>
-#include <gp_Dir.hxx>
-
-#include <Geom_BSplineCurve.hxx>
-#include <GeomAPI_PointsToBSpline.hxx>
-#include <Geom_Plane.hxx>
-
-#include <TColgp_Array1OfPnt.hxx>
-
-
-
-// Initialization of global variable with an instance of this class
-OCCDemo_Presentation* OCCDemo_Presentation::Current = new ThruSections_Presentation;
-
-// Initialization of array of samples
-const ThruSections_Presentation::PSampleFuncType ThruSections_Presentation::SampleFuncs[] =
-{
-  &ThruSections_Presentation::sample1,
-  &ThruSections_Presentation::sample2
-};
-
-#ifdef WNT
- #define EOL "\r\n"
-#else
- #define EOL "\n"
-#endif
-
-
-//////////////////////////////////////////////////////////////////////
-// Construction/Destruction
-//////////////////////////////////////////////////////////////////////
-
-ThruSections_Presentation::ThruSections_Presentation()
-{
-  myNbSamples = sizeof(SampleFuncs)/sizeof(PSampleFuncType);
-  setName("Lofting through sections");
-}
-
-//////////////////////////////////////////////////////////////////////
-// Sample execution
-//////////////////////////////////////////////////////////////////////
-
-void ThruSections_Presentation::DoSample()
-{
-  getAISContext()->EraseAll();
-  if (myIndex >=0 && myIndex < myNbSamples)
-    (this->*SampleFuncs[myIndex])();
-}
-
-//////////////////////////////////////////////////////////////////////
-// Sample functions
-//////////////////////////////////////////////////////////////////////
-
-//////////////////////////////////////////////////////////////////////
-// function: CreateCurve
-// purpose:
-//////////////////////////////////////////////////////////////////////
-
-static Handle(Geom_BSplineCurve) CreateCurve(Standard_Real aCoords[][3],Standard_Integer nPoles)                     
-{
-  TColgp_Array1OfPnt aCurvePoint (1, nPoles);
-
-  for (Standard_Integer i=0; i < nPoles; i++)
-    aCurvePoint(i+1) = gp_Pnt (aCoords[i][0], aCoords[i][1], aCoords[i][2]);
-
-  GeomAPI_PointsToBSpline aPTB (aCurvePoint);
-
-  Handle (Geom_BSplineCurve) aCurve = aPTB.Curve();
-  return aCurve;
-}
-
-//////////////////////////////////////////////////////////////////////
-// function: CreateShape
-// purpose:
-//////////////////////////////////////////////////////////////////////
-
-TopoDS_Shape ThruSections_Presentation::CreateShape(TopTools_SequenceOfShape& aWires,
-                                                    Standard_Boolean IsSolid,
-                                                    Standard_Boolean IsRuled,
-                                                    Standard_Real aPrec)
-{
-  BRepOffsetAPI_ThruSections aTSec(IsSolid,IsRuled,aPrec);
-
-  for(Standard_Integer i = 1 ; i < aWires.Length() + 1 ; i++)
-    aTSec.AddWire(TopoDS::Wire(aWires(i)));
-
-  aTSec.Build();
-
-  TopoDS_Shape aShape = aTSec.Shape();
-  return aShape;
-}
-
-//////////////////////////////////////////////////////////////////////
-// function: sample1
-// purpose:
-//////////////////////////////////////////////////////////////////////
-
-void ThruSections_Presentation::sample1()
-{
-  ResetView();
-  SetViewCenter(-5.5147159194746e-007, 2.4494893207696);
-  SetViewScale(75.788671414734); 
-
-  setResultTitle("Lofting through closed sections");
-  TCollection_AsciiString aText;
-  aText = (
-  "// this data used for building a shape through sections:" EOL
-  "Standard_Boolean IsSolid,IsRuled;" EOL
-  "Standard_Real aPrec;" EOL EOL
-
-  "// creates wires:" EOL
-  "TopoDS_Wire aWire1,aWire2,aWire3;" EOL EOL
-
-  "// initializes these wires:" EOL
-  "//aWire1 = ... ; aWire2 = ...; aWire3 = ...;" EOL EOL
-
-  "// creates an algorithm for building a shell or " EOL
-  "//solid passing through a set of wires:" EOL
-  "BRepOffsetAPI_ThruSections aTSec;" EOL EOL
-
-  "// adds wires to the set of wires:" EOL
-  "aTSec.AddWire(aWire1);" EOL
-  "aTSec.AddWire(aWire2);" EOL 
-  "aTSec.AddWire(aWire3);" EOL EOL
-
-  "// Initializes algorithm for building a shell " EOL
-  "//passing through a set of wires with the faces are" EOL
-  "//smoothed out by approximation:" EOL
-  "aTSec.Init();" EOL
-  "// builds the shell:" EOL
-  "aTSec.Build();" EOL 
-  "// takes this shape:" EOL
-  "TopoDS_Shape aShape = aTSec.Shape();" EOL EOL
-
-  "// Initializes algorithm for building a shell " EOL
-  "//passing through a set of wires with the faces are ruled:" EOL
-  "IsSolid = Standard_False;" EOL
-  "IsRuled = Standard_True;" EOL
-  "aTSec.Init(IsSolid,IsRuled);" EOL
-  "// builds the shell:" EOL
-  "aTSec.Build();" EOL 
-  "// takes this shape:" EOL
-  "TopoDS_Shape aShape = aTSec.Shape();" EOL EOL
-
-  "// Initializes algorithm for building a solid" EOL
-  "//passing through a set of wires with the faces are" EOL
-  "//smoothed out by approximation:" EOL
-  "IsSolid = Standard_True;" EOL
-  "aTSec.Init(IsSolid);" EOL
-  "// builds the solid:" EOL
-  "aTSec.Build();" EOL 
-  "// takes this shape:" EOL
-  "TopoDS_Shape aShape = aTSec.Shape();" EOL EOL
-
-  "// Initializes algorithm for building a solid" EOL
-  "//passing through a set of wires with the faces are" EOL
-  "//smoothed out by approximation with precision aPrec:" EOL
-  "IsSolid = Standard_True;" EOL
-  "IsRuled = Standard_False;" EOL
-  "aPrec = 0.5;" EOL
-  "aTSec.Init(IsSolid,IsRuled,aPrec);" EOL
-  "// builds the solid:" EOL
-  "aTSec.Build();" EOL 
-  "// takes this shape:" EOL
-  "TopoDS_Shape aShape = aTSec.Shape();" EOL EOL
-
-    );
-
-  setResultText(aText.ToCString());
-
-//====================================================================
-
-  Handle(AIS_InteractiveObject) aShow1,aShow2,aShowWire;
-
-  // this data used for building a shape through sections:
-  Standard_Boolean IsSolid,IsRuled;
-  Standard_Real aPrec;
-
-  // the number of points of wires:
-  const Standard_Integer aNbOfPnt = 4;
-
-  // creates arrays of coordinates of wires:
-  Standard_Real aCoords [][aNbOfPnt][3] =
-  {
-    {{-4,0,0},{0,4,0},{4,0,0},{0,-4,0}},
-    {{-2,-2,4},{-2,2,4},{2,2,4},{2,-2,4}}
-  };
-
-
-  // the number of wires:
-  Standard_Integer aNbOfWire = (sizeof(aCoords)/(sizeof(Standard_Real)*3))/aNbOfPnt;
-
-  TopTools_SequenceOfShape aWires;
-  for( Standard_Integer i = 0 ; i < aNbOfWire ; i++)
-  {
-    BRepBuilderAPI_MakePolygon aPol;
-    for( Standard_Integer j = 0 ; j < aNbOfPnt ; j++)
-      aPol.Add(gp_Pnt(aCoords[i][j][0],aCoords[i][j][1],aCoords[i][j][2]));
-
-    aPol.Close();
-
-    TopoDS_Wire aW;
-    aW = aPol.Wire();
-    aWires.Append(aW);
-  }
-
-
-  // creates shell passing through a set of wires
-  //with the faces are smoothed out by approximation:
-  TopoDS_Shape aShape =  CreateShape(aWires);
-
-  //draw this shell:
-  getAISContext()->EraseAll();
-  for( i =1 ; i < aWires.Length() + 1 ; i++)
-    drawShape(TopoDS::Wire(aWires(i)));
-  if(WAIT_A_LITTLE) return;
-  aShow1 = drawShape(aShape);
-  if(WAIT_A_SECOND) return;
-
-  // creates a circle:
-  gp_Pnt aCenter = gp_Pnt(0,0,6);
-  gp_Dir aNorm = gp::DZ();
-  Standard_Real aRad = 5;
-  gce_MakeCirc aMC(aCenter,aNorm,aRad);
-  gp_Circ aCirc = aMC.Value();
-
-  // creates shell passing through a set of wires
-  //with the faces are ruled:
-  aWires.Append(BRepBuilderAPI_MakeWire(BRepBuilderAPI_MakeEdge(aCirc)));
-  IsSolid = Standard_False;
-  IsRuled = Standard_True;
-  aShape = CreateShape(aWires,IsSolid,IsRuled);
-  
-  // draw this shell:
-  aShowWire = drawShape(aWires.Last());
-  if(WAIT_A_SECOND) return;
-  aShow2 = drawShape(aShape);
-  getAISContext()->Erase(aShow1);
-
-  // creates shell passing through a set of wires
-  //with the faces are smoothed out by approximation:
-  aShape = CreateShape(aWires);
-
-  // draw this shell:
-  if(WAIT_A_LITTLE) return;
-  aShow1 = drawShape(aShape);
-  getAISContext()->Erase(aShow2);
-
-  // creates solid passing through a set of wires
-  //with the faces are smoothed out by approximation:
-  IsSolid = Standard_True;
-  aShape = CreateShape(aWires,IsSolid);
-
-  // draw this solid:
-  if(WAIT_A_LITTLE) return;
-  aShow2 = drawShape(aShape);
-  getAISContext()->Erase(aShow1);
-
-  if(WAIT_A_SECOND) return;
-  BRepBuilderAPI_MakeEdge aME1(aCirc,0,PI/4);
-  BRepBuilderAPI_MakeEdge aME2(aCirc,PI,5*PI/4);
-
-  TopoDS_Edge aE1 = aME1.Edge();
-  TopoDS_Edge aE2 = aME2.Edge();
-  TopoDS_Edge aE3 = BRepBuilderAPI_MakeEdge(aME1.Vertex2(),aME2.Vertex1());
-  TopoDS_Edge aE4 = BRepBuilderAPI_MakeEdge(aME2.Vertex2(),aME1.Vertex1());
-  aWires.SetValue(aWires.Length(),BRepBuilderAPI_MakeWire(aE1,aE3,aE2,aE4));
-
-  // creates solid passing through a set of wires
-  //with the faces are smoothed out by approximation with precision aPrec:
-  IsSolid = Standard_True;
-  IsRuled = Standard_False;
-  aPrec = 0.5;
-  aShape = CreateShape(aWires,IsSolid,IsRuled,aPrec);
-
-  // draw this solid:
-  drawShape(TopoDS::Wire(aWires.Last()));
-  getAISContext()->Erase(aShowWire);
-  if(WAIT_A_LITTLE) return;
-  drawShape(aShape);
-  getAISContext()->Erase(aShow2);
-}
-
-
-//////////////////////////////////////////////////////////////////////
-// function: sample2
-// purpose:
-//////////////////////////////////////////////////////////////////////
-
-void ThruSections_Presentation::sample2()
-{
-  ResetView();
-  SetViewCenter(2.4529999187450e-007, 4.0824822167758);
-  SetViewScale(63.822115234655); 
-
-  setResultTitle("Lofting through unclosed sections");
-  TCollection_AsciiString aText;
-  aText = (
-  "// this data used for building a shape through sections:" EOL
-  "const Standard_Boolean IsSolid = Standard_False;" EOL
-  "Standard_Boolean IsRuled;" EOL
-  "Standard_Real aPrec;" EOL EOL
-
-  "// creates wires:" EOL
-  "TopoDS_Wire aWire1,aWire2;" EOL EOL
-
-  "// initializes these wires:" EOL
-  "//aWire1 = ... ; aWire2 = ...;" EOL EOL
-
-  "// creates an algorithm for building a shell or " EOL
-  "//solid passing through a set of wires:" EOL
-  "BRepOffsetAPI_ThruSections aTSec;" EOL EOL
-
-  "// adds wires to the set of wires:" EOL
-  "aTSec.AddWire(aWire1);" EOL
-  "aTSec.AddWire(aWire2);" EOL EOL
-
-  "// Initializes algorithm for building a shell " EOL
-  "//passing through a set of wires with the faces are" EOL
-  "//smoothed out by approximation:" EOL
-  "aTSec.Init();" EOL
-  "// builds the shell:" EOL
-  "aTSec.Build();" EOL 
-  "// takes this shape:" EOL
-  "TopoDS_Shape aShape = aTSec.Shape();" EOL EOL
-
-  "// Initializes algorithm for building a shell" EOL
-  "//passing through a set of wires with the faces are" EOL
-  "//smoothed out by approximation with precision aPrec:" EOL
-  "IsRuled = Standard_False;" EOL
-  "aPrec = 0.5;" EOL
-  "aTSec.Init(IsSolid,IsRuled,aPrec);" EOL
-  "// builds the solid:" EOL
-  "aTSec.Build();" EOL 
-  "// takes this shape:" EOL
-  "TopoDS_Shape aShape = aTSec.Shape();" EOL EOL
-
-  "// Initializes algorithm for building a shell " EOL
-  "//passing through a set of wires with the faces are ruled:" EOL
-  "IsRuled = Standard_True;" EOL
-  "aTSec.Init(IsSolid,IsRuled);" EOL
-  "// builds the shell:" EOL
-  "aTSec.Build();" EOL 
-  "// takes this shape:" EOL
-  "TopoDS_Shape aShape = aTSec.Shape();" EOL EOL
-  
-  );
-
-  setResultText(aText.ToCString());
-
-//====================================================================
-
-  Handle(AIS_InteractiveObject) aShow1,aShow2,aShowWire1,aShowWire2,aShowWire3;
-
-  // this data used for building a shape through sections:
-  const Standard_Boolean IsSolid = Standard_False;
-  Standard_Boolean IsRuled;
-  Standard_Real aPrec;
-
-  // creates arrays of coordinates of wires:
-  Standard_Real aCoords1[][3] = 
-  {
-    {-5,0,0},{-2,3,0},{3,-2.5,0},{5,0,0}
-  };
-
-  Standard_Real aCoords2[][3] = 
-  {
-    {-5,0,7},{-2,3,7},{3,-2.5,7},{5,0,7}
-  };
-
-  Standard_Real aCoords3 [][3] =
-  {
-    {-4,0,10},{0,4,10},{4,0,10},{0,-4,10}
-  };
-
-  // numbers of points for wires:
-  Standard_Integer aSize1 = sizeof(aCoords1)/(sizeof(Standard_Real)*3);
-  Standard_Integer aSize2 = sizeof(aCoords2)/(sizeof(Standard_Real)*3);
-  Standard_Integer aSize3 = sizeof(aCoords3)/(sizeof(Standard_Real)*3);
-
-  // creates curves:
-  Handle(Geom_BSplineCurve) aCurve1 = CreateCurve(aCoords1,aSize1);
-  Handle(Geom_BSplineCurve) aCurve2 = CreateCurve(aCoords2,aSize2);
-
-  // creates wires based on the curves:
-  TopoDS_Wire aW1 = BRepBuilderAPI_MakeWire(BRepBuilderAPI_MakeEdge(aCurve1));
-  TopoDS_Wire aW2 = BRepBuilderAPI_MakeWire(BRepBuilderAPI_MakeEdge(aCurve2));
-
-  // the sequence of wires:
-  TopTools_SequenceOfShape aWires;
-
-  // adds the wires to the sequence:
-  aWires.Append(aW1);
-  aWires.Append(aW2);
-
-  // creates shell passing through a set of wires
-  //with the faces are smoothed out by approximation:
-  TopoDS_Shape aShape = CreateShape(aWires);
-  
-  // draw this shell and wires:
-  aShowWire1 = drawShape(aW1);
-  aShowWire2 = drawShape(aW2);
-  if(WAIT_A_LITTLE) return;
-  aShow1 = drawShape(aShape);
-  if(WAIT_A_SECOND) return;
-
-  // changes coordinates of second array:
-  for( Standard_Integer i = 0 ; i < aSize2 ; i++)
-  {
-    aCoords2[i][0] = 0.5*aCoords2[i][0]; 
-    aCoords2[i][1] = -aCoords2[i][1];
-  }
-
-  // create curve:
-  aCurve2 = CreateCurve(aCoords2,aSize2);
-
-  // create wire:
-  aW2 = BRepBuilderAPI_MakeWire(BRepBuilderAPI_MakeEdge(aCurve2));
-
-  // changes value of the last element of sequence:
-  aWires.SetValue(aWires.Length(),aW2);
-
-  // creates shell with new wire:
-  aPrec = 0.5;
-  IsRuled = Standard_False;
-  aShape = CreateShape(aWires,IsSolid,IsRuled,aPrec);
-
-  // draw this shell and new wire with precision aPrec:
-  aShowWire3 = drawShape(aW2);
-  getAISContext()->Erase(aShowWire2);
-  if(WAIT_A_LITTLE) return;
-  aShow2 = drawShape(aShape);
-  getAISContext()->Erase(aShow1);
-  if(WAIT_A_SECOND) return;
-
-
-  // creates elipses:
-  gce_MakeElips aMEl(gp::XOY(),5,3.5);
-  gce_MakeElips aME2(gp_Pnt(-2.5,0,7),gp_Pnt(0,2,7),gp_Pnt(0,0,7));
-  gp_Elips aElips1 = aMEl.Value();
-  gp_Elips aElips2 = aME2.Value();
-
-  // create edges based on pathes of elipses:
-  TopoDS_Edge aE1 = BRepBuilderAPI_MakeEdge(aElips1,-PI/4,5*PI/4);
-  TopoDS_Edge aE2 = BRepBuilderAPI_MakeEdge(aElips2,-PI/4,5*PI/4);
-
-  // creates wires:
-  aW1 = BRepBuilderAPI_MakeWire(aE1);
-  aW2 = BRepBuilderAPI_MakeWire(aE2);
-
-  // sequence clear: 
-  aWires.Clear();
-
-  // adds wires to sequence:
-  aWires.Append(aW1);
-  aWires.Append(aW2);
-
-  // creates shell based on the new wires:
-  aShape = CreateShape(aWires);
-
-  // draw this shell and new wires:
-  drawShape(aW1);
-  drawShape(aW2);
-  getAISContext()->Erase(aShowWire1);
-  getAISContext()->Erase(aShowWire3);
-  if(WAIT_A_LITTLE) return;
-  aShow1 = drawShape(aShape);
-  getAISContext()->Erase(aShow2);
-  if(WAIT_A_SECOND) return;
-
-  // creates polygon:
-  BRepBuilderAPI_MakePolygon aPol;
-  for( i = 0 ; i < aSize3; i++)
-    aPol.Add(gp_Pnt(aCoords3[i][0],aCoords3[i][1],aCoords3[i][2]));
-
-  // takes the wire:
-  aW2 = aPol.Wire();
-
-  // adds the polygon wire to sequence:
-  aWires.Append(aW2);
-
-  // creates shell passing through a set of wires
-  //with the faces are ruled:
-  IsRuled = Standard_True;
-  aShape = CreateShape(aWires,IsSolid,IsRuled);
-  
-  drawShape(aW2);
-  if(WAIT_A_LITTLE) return;
-  aShow2 = drawShape(aShape);
-  getAISContext()->Erase(aShow1);
-}
-