0031442: Samples - remove unsupported sample mfc/occtdemo
[occt.git] / samples / mfc / occtdemo / Transform / Transform_Presentation.cpp
diff --git a/samples/mfc/occtdemo/Transform/Transform_Presentation.cpp b/samples/mfc/occtdemo/Transform/Transform_Presentation.cpp
deleted file mode 100755 (executable)
index 08c6996..0000000
+++ /dev/null
@@ -1,458 +0,0 @@
-// Transform_Presentation.cpp: implementation of the Transform_Presentation class.
-// Transform shapes: apply gp_Trsf or gp_GTrsf transformation
-////////////////////////////////////////////////////////////////////////////
-
-#include "stdafx.h"
-#include "Transform_Presentation.h" 
-#include <BRep_Builder.hxx>
-#include <BRepTools.hxx>
-#include <BRepBuilderAPI_Transform.hxx>
-#include <AIS_Axis.hxx>
-#include <Geom_Axis1Placement.hxx>
-#include <Geom_Line.hxx>
-#include <Geom_Circle.hxx>
-#include <Geom_TrimmedCurve.hxx>
-#include <Prs3d_Drawer.hxx>
-#include <Prs3d_ArrowAspect.hxx>
-#include <Geom_Plane.hxx>
-#include <Geom_RectangularTrimmedSurface.hxx>
-#include <gp_GTrsf.hxx>
-#include <BRepBuilderAPI_GTransform.hxx>
-
-
-#ifdef WNT
- #define EOL "\r\n"
- #define DELIM "\\"
-#else
- #define EOL "\n"
- #define DELIM "/"
-#endif
-
-// Initialization of global variable with an instance of this class
-OCCDemo_Presentation* OCCDemo_Presentation::Current = new Transform_Presentation;
-
-// Initialization of array of samples
-const Transform_Presentation::PSampleFuncType Transform_Presentation::SampleFuncs[] =
-{
-  &Transform_Presentation::sample1,
-  &Transform_Presentation::sample2
-};
-
-//////////////////////////////////////////////////////////////////////
-// Construction/Destruction
-//////////////////////////////////////////////////////////////////////
-
-Transform_Presentation::Transform_Presentation()
-{
-  myNbSamples = sizeof(SampleFuncs)/sizeof(PSampleFuncType);
-  setName ("Transform shapes");
-}
-
-//////////////////////////////////////////////////////////////////////
-// Sample execution
-//////////////////////////////////////////////////////////////////////
-
-void Transform_Presentation::DoSample()
-{
-  getAISContext()->EraseAll();
-  if (myIndex >=0 && myIndex < myNbSamples)
-    (this->*SampleFuncs[myIndex])();
-}
-
-//////////////////////////////////////////////////////////////////////
-// Auxiliary functions
-//////////////////////////////////////////////////////////////////////
-
-Standard_Boolean Transform_Presentation::readShape(const Standard_CString theFileName,
-                                                   TopoDS_Shape& theShape)
-{
-  theShape.Nullify();
-  TCollection_AsciiString aPath;
-  aPath = aPath + GetDataDir() + DELIM + theFileName;
-  BRep_Builder aBld;
-  Standard_Boolean isRead = BRepTools::Read (theShape, aPath.ToCString(), aBld);
-  if (!isRead)
-  {
-    aPath = aPath + " is not found";
-    setResultText(aPath.ToCString());
-  }
-  return isRead;
-}
-
-// apply standard transformation and get transformed shape
-static TopoDS_Shape Transform(const TopoDS_Shape& aShape, const gp_Trsf& aTrsf)
-{
-  BRepBuilderAPI_Transform aTransform(aTrsf);
-  Standard_Boolean toCopy = Standard_False;  // share entities if possible
-  aTransform.Perform(aShape, toCopy);
-  if (aTransform.IsDone())
-    return aTransform.Shape();
-  return TopoDS_Shape();
-}
-
-// apply general transformation and get transformed shape
-static TopoDS_Shape GTransform(const TopoDS_Shape& aShape, const gp_GTrsf& aTrsf)
-{
-  BRepBuilderAPI_GTransform aTransform(aTrsf);
-  Standard_Boolean toCopy = Standard_False;  // share entities if possible
-  aTransform.Perform(aShape, toCopy);
-  if (aTransform.IsDone())
-    return aTransform.Shape();
-  return TopoDS_Shape();
-}
-
-//////////////////////////////////////////////////////////////////////
-// Sample functions
-//////////////////////////////////////////////////////////////////////
-
-void Transform_Presentation::sample1()
-{
-  SetViewScale(4);
-  setResultTitle ("Standard transformations");
-
-  // define initial shape
-  static TopoDS_Shape aShape;
-  TopoDS_Shape aNewShape;
-  if (aShape.IsNull() && !readShape("shape1.brep",aShape))
-    return;
-
-  TCollection_AsciiString aText;
-  aText +=
-    "// Apply standard transformation and get transformed shape" EOL
-    "TopoDS_Shape Transform(const TopoDS_Shape& aShape, const gp_Trsf& aTrsf)" EOL
-    "{" EOL
-    "  BRepBuilderAPI_Transform aTransform(aTrsf);" EOL
-    "  Standard_Boolean toCopy = Standard_False;  // share entities if possible" EOL
-    "  aTransform.Perform(aShape, toCopy);" EOL
-    "  if (aTransform.IsDone())" EOL
-    "    return aTransform.Shape();" EOL
-    "  return TopoDS_Shape();" EOL
-    "}" EOL EOL
-
-    "// ..." EOL EOL
-
-    "  // define initial shape and shape used for result" EOL
-    "  TopoDS_Shape aShape, aNewShape;" EOL
-    "  // aShape = ... ;" EOL EOL
-
-    "  // create standard transformation" EOL
-    "  gp_Trsf aTrsf;" EOL EOL
-
-    "  // define translation" EOL
-    "  Standard_Real dx=-80, dy=-60, dz=-50;" EOL
-    "  gp_Vec aVec(dx,dy,dz);" EOL
-    "  aTrsf.SetTranslation(aVec);" EOL EOL
-
-    "  aNewShape = Transform(aShape, aTrsf);" EOL EOL
-
-    "  // add rotation" EOL
-    "  gp_Trsf aRotTrsf;" EOL
-    "  gp_Pnt ax1Pnt(dx,dy,dz);" EOL
-    "  gp_Dir ax1Dir(0,0,1);" EOL
-    "  gp_Ax1 ax1 (ax1Pnt,ax1Dir);" EOL
-    "  Standard_Real angle = 60. * PI / 180;" EOL
-    "  aRotTrsf.SetRotation(ax1, angle);" EOL
-    "  aTrsf = aRotTrsf * aTrsf;" EOL EOL
-
-    "  aNewShape = Transform(aShape, aTrsf);" EOL EOL
-
-    "  // add scaling" EOL
-    "  gp_Trsf aScaleTrsf;" EOL
-    "  gp_Pnt scalePnt = ax1Pnt;" EOL
-    "  Standard_Real scaleFactor = 0.6;" EOL
-    "  aScaleTrsf.SetScale(scalePnt, scaleFactor);" EOL
-    "  aTrsf = aScaleTrsf * aTrsf;" EOL EOL
-
-    "  aNewShape = Transform(aShape, aTrsf);" EOL EOL
-
-    "  // add point mirror" EOL
-    "  gp_Trsf aMir1Trsf;" EOL
-    "  gp_Pnt mirPnt(dx/4,dy/4,dz/4);" EOL
-    "  aMir1Trsf.SetMirror(mirPnt);" EOL
-    "  aTrsf = aMir1Trsf * aTrsf;" EOL EOL
-
-    "  aNewShape = Transform(aShape, aTrsf);" EOL EOL
-
-    "  // add axial mirror" EOL
-    "  gp_Trsf aMir2Trsf;" EOL
-    "  gp_Ax1 mirAx1(gp_Pnt(0,0,0),gp_Dir(0,0,1));" EOL
-    "  aMir2Trsf.SetMirror(mirAx1);" EOL
-    "  aTrsf = aMir2Trsf * aTrsf;" EOL EOL
-
-    "  aNewShape = Transform(aShape, aTrsf);" EOL EOL
-
-    "  // add planar mirror" EOL
-    "  gp_Trsf aMir3Trsf;" EOL
-    "  gp_Ax2 mirAx2(gp_Pnt(-dx/4,0,0),gp_Dir(1,0,0));" EOL
-    "  aMir3Trsf.SetMirror(mirAx2);" EOL
-    "  aTrsf = aMir3Trsf * aTrsf;" EOL EOL
-
-    "  aNewShape = Transform(aShape, aTrsf);" EOL EOL;
-  setResultText(aText.ToCString());
-
-  Handle(AIS_InteractiveObject) aIShape = drawShape (aShape);
-  if (WAIT_A_SECOND) return;
-
-  // create standard transformation
-  gp_Trsf aTrsf;
-
-  // define translation
-  Standard_Real dx=-80, dy=-60, dz=-50;
-  gp_Vec aVec(dx,dy,dz);
-  aTrsf.SetTranslation(aVec);
-
-  Handle(AIS_InteractiveObject) aIVec = drawVector(gp::Origin(),aVec,Quantity_NOC_WHITE);
-  if (WAIT_A_LITTLE) return;
-
-  aNewShape = Transform(aShape, aTrsf);
-
-  if (aNewShape.IsNull())
-  {
-    aText += EOL "Error: transformation failure" EOL;
-    setResultText(aText.ToCString());
-    return;
-  }
-  Handle(AIS_InteractiveObject) oldObj = aIShape;
-  aIShape = drawShape (aNewShape);
-  getAISContext()->Erase(oldObj);
-  if (WAIT_A_SECOND) return;
-  getAISContext()->Erase(aIVec);
-
-  // add rotation
-  gp_Trsf aRotTrsf;
-  gp_Pnt ax1Pnt(dx,dy,dz);
-  gp_Dir ax1Dir(0,0,1);
-  gp_Ax1 ax1 (ax1Pnt,ax1Dir);
-  Standard_Real angle = 60. * PI / 180;
-  aRotTrsf.SetRotation(ax1, angle);
-  aTrsf = aRotTrsf * aTrsf;
-
-  Handle(AIS_InteractiveObject) aIAx1 = drawCurve(new Geom_Line(ax1),Quantity_NOC_WHITE);
-  gp_Ax2 ax2(ax1Pnt.Translated(gp_Vec(0,0,70)),ax1Dir);
-  Handle(Geom_Curve) aCirc = new Geom_TrimmedCurve(new Geom_Circle(ax2,20),0,angle);
-  Handle(AIS_InteractiveObject) aICirc = drawCurve(aCirc,Quantity_NOC_WHITE,Standard_False);
-  Handle(Prs3d_Drawer) aDrawer = new Prs3d_Drawer;
-  aDrawer->Link()->SetLineArrowDraw(Standard_True);
-  aDrawer->Link()->ArrowAspect()->SetLength(2);
-  getAISContext()->SetLocalAttributes (aICirc, aDrawer);
-  getAISContext()->Display (aICirc);
-  if (WAIT_A_LITTLE) return;
-
-  aNewShape = Transform(aShape, aTrsf);
-
-  if (aNewShape.IsNull())
-  {
-    aText += EOL "Error: transformation failure" EOL;
-    setResultText(aText.ToCString());
-    return;
-  }
-  oldObj = aIShape;
-  aIShape = drawShape (aNewShape);
-  getAISContext()->Erase(oldObj);
-  if (WAIT_A_SECOND) return;
-  getAISContext()->Erase(aIAx1);
-  getAISContext()->Erase(aICirc);
-
-  // add scaling
-  gp_Trsf aScaleTrsf;
-  gp_Pnt scalePnt = ax1Pnt;
-  Standard_Real scaleFactor = 0.6;
-  aScaleTrsf.SetScale(scalePnt, scaleFactor);
-  aTrsf = aScaleTrsf * aTrsf;
-
-  Handle(AIS_InteractiveObject) aIPnt = drawPoint(scalePnt, Quantity_NOC_WHITE);
-  if (WAIT_A_LITTLE) return;
-
-  aNewShape = Transform(aShape, aTrsf);
-
-  if (aNewShape.IsNull())
-  {
-    aText += EOL "Error: transformation failure" EOL;
-    setResultText(aText.ToCString());
-    return;
-  }
-  oldObj = aIShape;
-  aIShape = drawShape (aNewShape);
-  getAISContext()->Erase(oldObj);
-  if (WAIT_A_SECOND) return;
-  getAISContext()->Erase(aIPnt);
-
-  // add point mirror
-  gp_Trsf aMir1Trsf;
-  gp_Pnt mirPnt(dx/4,dy/4,dz/4);
-  aMir1Trsf.SetMirror(mirPnt);
-  aTrsf = aMir1Trsf * aTrsf;
-
-  aIPnt = drawPoint(mirPnt, Quantity_NOC_WHITE);
-  if (WAIT_A_LITTLE) return;
-
-  aNewShape = Transform(aShape, aTrsf);
-
-  if (aNewShape.IsNull())
-  {
-    aText += EOL "Error: transformation failure" EOL;
-    setResultText(aText.ToCString());
-    return;
-  }
-  oldObj = aIShape;
-  aIShape = drawShape (aNewShape);
-  getAISContext()->Erase(oldObj);
-  if (WAIT_A_SECOND) return;
-  getAISContext()->Erase(aIPnt);
-
-  // add axial mirror
-  gp_Trsf aMir2Trsf;
-  gp_Ax1 mirAx1(gp_Pnt(0,0,0),gp_Dir(0,0,1));
-  aMir2Trsf.SetMirror(mirAx1);
-  aTrsf = aMir2Trsf * aTrsf;
-
-  aIAx1 = drawCurve(new Geom_Line(mirAx1),Quantity_NOC_WHITE);
-  if (WAIT_A_LITTLE) return;
-
-  aNewShape = Transform(aShape, aTrsf);
-
-  if (aNewShape.IsNull())
-  {
-    aText += EOL "Error: transformation failure" EOL;
-    setResultText(aText.ToCString());
-    return;
-  }
-  oldObj = aIShape;
-  aIShape = drawShape (aNewShape);
-  getAISContext()->Erase(oldObj);
-  if (WAIT_A_SECOND) return;
-  getAISContext()->Erase(aIAx1);
-
-  // add planar mirror
-  gp_Trsf aMir3Trsf;
-  gp_Ax2 mirAx2(gp_Pnt(-dx/4,0,0),gp_Dir(1,0,0));
-  aMir3Trsf.SetMirror(mirAx2);
-  aTrsf = aMir3Trsf * aTrsf;
-
-  Handle(AIS_InteractiveObject) aIAx2 = drawSurface(
-    new Geom_RectangularTrimmedSurface(new Geom_Plane(mirAx2),-50.,50.,-50.,50.),
-    Quantity_NOC_WHITE);
-  if (WAIT_A_LITTLE) return;
-
-  aNewShape = Transform(aShape, aTrsf);
-
-  if (aNewShape.IsNull())
-  {
-    aText += EOL "Error: transformation failure" EOL;
-    setResultText(aText.ToCString());
-    return;
-  }
-  oldObj = aIShape;
-  aIShape = drawShape (aNewShape);
-  getAISContext()->Erase(oldObj);
-  if (WAIT_A_SECOND) return;
-  getAISContext()->Erase(aIAx2);
-}
-
-void Transform_Presentation::sample2()
-{
-  ResetView();
-  SetViewCenter(219.25218771377, 60.449092616063);
-  SetViewScale(3.4554379699768); 
-
-  setResultTitle ("General transformations");
-
-  // define initial shape
-  static TopoDS_Shape aShape;
-  TopoDS_Shape aNewShape;
-  if (aShape.IsNull() && !readShape("Pump_Nut.brep",aShape))
-    return;
-
-  TCollection_AsciiString aText;
-  aText +=
-    "// Apply general transformation and get transformed shape" EOL
-    "TopoDS_Shape GTransform(const TopoDS_Shape& aShape, const gp_GTrsf& aTrsf)" EOL
-    "{" EOL
-    "  BRepBuilderAPI_GTransform aTransform(aTrsf);" EOL
-    "  Standard_Boolean toCopy = Standard_False;  // share entities if possible" EOL
-    "  aTransform.Perform(aShape, toCopy);" EOL
-    "  if (aTransform.IsDone())" EOL
-    "    return aTransform.Shape();" EOL
-    "  return TopoDS_Shape();" EOL
-    "}" EOL EOL
-
-    "// ..." EOL EOL
-
-    "  // define initial shape and shape used for result" EOL
-    "  TopoDS_Shape aShape, aNewShape;" EOL
-    "  // aShape = ... ;" EOL EOL
-
-    "  // create general transformation" EOL
-    "  gp_GTrsf aTrsf;" EOL EOL
-    
-    "  // define affinity respect to line" EOL
-    "  gp_Ax1 ax1(gp_Pnt(81,280,0),gp_Dir(0,1,0));" EOL
-    "  Standard_Real ratio = 2;" EOL
-    "  aTrsf.SetAffinity(ax1, ratio);" EOL EOL
-
-    "  aNewShape = GTransform(aShape, aTrsf);" EOL EOL
-
-    "  // add affinity respect to plane" EOL
-    "  gp_GTrsf aTrsf1;" EOL
-    "  gp_Ax2 ax2(gp_Pnt(81,280,0),gp_Dir(0,1,0));" EOL
-    "  ratio = 8;" EOL
-    "  aTrsf1.SetAffinity(ax2, ratio);" EOL
-    "  aTrsf = aTrsf1 * aTrsf;" EOL EOL
-
-    "  aNewShape = GTransform(aShape, aTrsf);" EOL EOL;
-  setResultText(aText.ToCString());
-
-  Handle(AIS_InteractiveObject) aIShape = drawShape (aShape);
-  if (WAIT_A_SECOND) return;
-
-  // create general transformation
-  gp_GTrsf aTrsf;
-
-  // define affinity respect to line
-  gp_Ax1 ax1(gp_Pnt(81,280,0),gp_Dir(0,1,0));
-  Standard_Real ratio = 2;
-  aTrsf.SetAffinity(ax1, ratio);
-
-  Handle(AIS_InteractiveObject) aIAx1 = drawCurve(new Geom_Line(ax1),Quantity_NOC_WHITE);
-  if (WAIT_A_LITTLE) return;
-
-  aNewShape = GTransform(aShape, aTrsf);
-
-  if (aNewShape.IsNull())
-  {
-    aText += EOL "Error: transformation failure" EOL;
-    setResultText(aText.ToCString());
-    return;
-  }
-  Handle(AIS_InteractiveObject) oldObj = aIShape;
-  aIShape = drawShape (aNewShape);
-  getAISContext()->Erase(oldObj);
-  if (WAIT_A_SECOND) return;
-  getAISContext()->Erase(aIAx1);
-
-  // add affinity respect to plane
-  gp_GTrsf aTrsf1;
-  gp_Ax2 ax2(gp_Pnt(81,280,0),gp_Dir(0,1,0));
-  ratio = 8;
-  aTrsf1.SetAffinity(ax2, ratio);
-  aTrsf.PreMultiply(aTrsf1);
-
-  Handle(AIS_InteractiveObject) aIAx2 = drawSurface(
-    new Geom_RectangularTrimmedSurface(new Geom_Plane(ax2),-100.,100.,-100.,100.),
-    Quantity_NOC_WHITE);
-  if (WAIT_A_LITTLE) return;
-
-  aNewShape = GTransform(aShape, aTrsf);
-
-  if (aNewShape.IsNull())
-  {
-    aText += EOL "Error: transformation failure" EOL;
-    setResultText(aText.ToCString());
-    return;
-  }
-  oldObj = aIShape;
-  aIShape = drawShape (aNewShape);
-  getAISContext()->Erase(oldObj);
-  if (WAIT_A_SECOND) return;
-  getAISContext()->Erase(aIAx2);
-}