Salome HOME
Fix of transparency on Mandriva2010: it didn't worked because of the returned 'testRe...
[modules/geom.git] / src / GEOM_SWIG / GEOM_TestAll.py
index 317f1dc40abeab3c51208b0e458c9ef5d725309f..98d1de80011d12cb344eefc4319b147642bc18e9 100644 (file)
@@ -1,4 +1,5 @@
-#  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+#  -*- coding: iso-8859-1 -*-
+#  Copyright (C) 2007-2010  CEA/DEN, EDF R&D, OPEN CASCADE
 #
 #  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 #  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
 #
 #  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
+
 #  GEOM GEOM_SWIG : binding of C++ omplementaion with Python
 #  File   : GEOM_usinggeom.py
 #  Author : Damien COQUERET, Open CASCADE
 #  Module : GEOM
-#
+
 # ! Please, if you edit this example file, update also
 # ! GEOM_SRC/doc/salome/gui/GEOM/input/tui_test_all.doc
 # ! as some sequences of symbols from this example are used during
 # ! documentation generation to identify certain places of this file
-#
-def TestAll (geompy, math):
 
+def TestAll (geompy, math):
+  import GEOM
+  
   #Create base Variables
   nbtimes1  = 5      #Short
   nbtimes2  = 5
   mindeg = 2
   maxdeg = 5
   nbiter = 5
-  ShapeTypeFace = geompy.ShapeType["FACE"]
-  ShapeTypeEdge = geompy.ShapeType["EDGE"]
   WantPlanarFace = 1 #True
 
   radius  = 10.  #Double
@@ -89,6 +90,8 @@ def TestAll (geompy, math):
   Line2  = geompy.MakeLineTwoPnt(pxyz, pz)                  #(2 GEOM_Object_ptr)->GEOM_Object_ptr
   Plane  = geompy.MakePlane(pz, vxyz, trimsize)             #(2 GEOM_Object_ptr, Double)->GEOM_Object_ptr
   Plane1 = geompy.MakePlaneThreePnt(px, pz, p200, trimsize) #(4 Doubles)->GEOM_Object_ptr
+  Plane2 = geompy.MakePlane2Vec(vx, vz, trimsize)          #(2 GEOM_Object_ptr, Double)->GEOM_Object_ptr
+  Plane3 = geompy.MakePlaneLCS(cs1, trimsize, 3)           #(1 GEOM_Object_ptr, 2 Double)->GEOM_Object_ptr
 
   Arc      = geompy.MakeArc(py, pz, px)                   #(3 GEOM_Object_ptr)->GEOM_Object_ptr
   Arc2     = geompy.MakeArcCenter(py, pz, px,0)           #(3 GEOM_Object_ptr,Boolean)->GEOM_Object_ptr
@@ -99,19 +102,33 @@ def TestAll (geompy, math):
   Ellipse  = geompy.MakeEllipse(p0, vy, radius2, radius1) #(2 GEOM_Object_ptr, 2 Doubles)->GEOM_Object_ptr
   Polyline = geompy.MakePolyline([p0, pz, py, p200])      #(List of GEOM_Object_ptr)->GEOM_Object_ptr
   Bezier   = geompy.MakeBezier([p0, pz, p200, px])        #(List of GEOM_Object_ptr)->GEOM_Object_ptr
-  Interpol = geompy.MakeInterpol([px, py, p200, pxyz])    #(List of GEOM_Object_ptr)->GEOM_Object_ptr
+  Interpol = geompy.MakeInterpol([px, py, p200, pxyz], True) #(List of GEOM_Object_ptr,Boolean)->GEOM_Object_ptr
   Sketcher = geompy.MakeSketcher("Sketcher:F -100 -100:TT 250 -100:R 0:C 100 150:R 0:L 300:WW",
                                  [100,0,0, 1,1,1, -1,1,0]) #(String, List of Doubles)->GEOM_Object_ptr
   Sketcher3d = geompy.Make3DSketcher([0,0,0, 50,50,50, 0,50,50, 10,0,0])
+  
+  #Create local coordinate system from shape
+  cs4 = geompy.MakeMarkerFromShape(Plane)
 
   #Test point on curve creation
   p_on_arc = geompy.MakeVertexOnCurve(Arc, 0.25) #(GEOM_Object_ptr, Double)->GEOM_Object_ptr
+  p_on_arc2 = geompy.MakeVertexOnCurveByCoord(Arc, 100, -10, 10 ) #(GEOM_Object_ptr, Double)->GEOM_Object_ptr
+  p_on_arc3 = geompy.MakeVertexOnCurveByLength(Arc, 50, True) #(GEOM_Object_ptr, Double, Boolean)->GEOM_Object_ptr
 
   #Test point on lines intersection
   p_on_l1l2 = geompy.MakeVertexOnLinesIntersection(Line1, Line2) #(2 GEOM_Object_ptr)->GEOM_Object_ptr
 
   #Test tangent on curve creation
   tan_on_arc = geompy.MakeTangentOnCurve(Arc, 0.7) #(GEOM_Object_ptr, Double)->GEOM_Object_ptr
+  
+  #Test tangent on face creation
+  tan_vertex_1 = geompy.MakeVertex(0, 0, 0)
+  tan_vertex_2 = geompy.MakeVertex(0, 90, 30)
+  tan_vertex_3 = geompy.MakeVertex(100, 90, 0)
+  tan_vertex_4 = geompy.MakeVertex(-100, 90, 0)
+  tan_curve = geompy.MakeInterpol([tan_vertex_4, tan_vertex_2, tan_vertex_3, tan_vertex_1], False)
+  tan_extrusion = geompy.MakePrismDXDYDZ(tan_curve, 0, 30, -60)
+  tan_on_face = geompy.MakeTangentPlaneOnFace(tan_extrusion, 0.7, 0.5, 150)
 
   #Create base geometry 3D
   Box      = geompy.MakeBoxTwoPnt(p0, p200)                   #(2 GEOM_Object_ptr)->GEOM_Object_ptr
@@ -148,7 +165,7 @@ def TestAll (geompy, math):
   Shell    = geompy.MakeShell([Face, Face1])         #(List of GEOM_Object_ptr)->GEOM_Object_ptr
 
   Prism1   = geompy.MakePrism(Face2, p0, pxyz)       #(3 GEOM_Object_ptr)->GEOM_Object_ptr
-  prism1_faces = geompy.SubShapeAllSorted(Prism1, ShapeTypeFace)
+  prism1_faces = geompy.SubShapeAllSortedCentres(Prism1, geompy.ShapeType["FACE"])
   Shell1   = geompy.MakeShell([prism1_faces[0], prism1_faces[1],
                                prism1_faces[3], prism1_faces[4],
                                prism1_faces[5], prism1_faces[2]])
@@ -164,6 +181,7 @@ def TestAll (geompy, math):
 
   #Test point on surface creation
   p_on_face = geompy.MakeVertexOnSurface(Face, 0.1, 0.8) #(GEOM_Object_ptr, Double, Double)->GEOM_Object_ptr
+  p_on_face2 = geompy.MakeVertexOnSurfaceByCoord(Face, 0., 0., 0.) #(GEOM_Object_ptr, Double, Double, Double)->GEOM_Object_ptr
 
   # Test plane from existing face creation
   Plane2 = geompy.MakePlaneFace(Face, trimsize)      #(GEOM_Object_ptr, Double)->GEOM_Object_ptr
@@ -212,7 +230,7 @@ def TestAll (geompy, math):
   Orientation = geompy.ChangeOrientation(Box)
 
   #IDList for Fillet/Chamfer
-  prism_edges = geompy.SubShapeAllSorted(Prism, ShapeTypeEdge)
+  prism_edges = geompy.ExtractShapes(Prism, geompy.ShapeType["EDGE"], True)
 
   for anEdge in prism_edges:
     eid = geompy.GetSubShapeID(Prism, anEdge)
@@ -227,7 +245,7 @@ def TestAll (geompy, math):
   IDlist_e.append(geompy.GetSubShapeID(Prism, prism_edges[1]))
   IDlist_e.append(geompy.GetSubShapeID(Prism, prism_edges[2]))
 
-  prism_faces = geompy.SubShapeAllSorted(Prism, ShapeTypeFace)
+  prism_faces = geompy.ExtractShapes(Prism, geompy.ShapeType["FACE"], True)
 
   f_ind_1 = geompy.GetSubShapeID(Prism, prism_faces[0])
   f_ind_2 = geompy.GetSubShapeID(Prism, prism_faces[1])
@@ -236,9 +254,9 @@ def TestAll (geompy, math):
   
   #Local operations
   Fillet2d = geompy.MakeFillet2D(Face3, radius, [4, 7, 9]) #(GEOM_Object_ptr, Double, ListOfLong)->GEOM_Object_ptr
-  Fillet   = geompy.MakeFillet (Prism, radius, ShapeTypeEdge,
+  Fillet   = geompy.MakeFillet (Prism, radius, geompy.ShapeType["EDGE"],
                                 IDlist_e) #(GEOM_Object_ptr, Double, Short, ListOfLong)->GEOM_Object_ptr
-  Fillet2  = geompy.MakeFilletR1R2 (Prism, 7., 13., ShapeTypeEdge,
+  Fillet2  = geompy.MakeFilletR1R2 (Prism, 7., 13., geompy.ShapeType["EDGE"],
                                     IDlist_e) #(GEOM_Object_ptr, Double, Double, Short, ListOfLong)->GEOM_Object_ptr
   Chamfer  = geompy.MakeChamferEdge(Prism, d1, d2,
                                     f_ind_1, f_ind_2) #(GEOM_Object_ptr, 2 Doubles, 2 Long)->GEOM_Object_ptr
@@ -288,12 +306,15 @@ def TestAll (geompy, math):
   id_cs1 = geompy.addToStudy(cs1, "CS 50,50,50, 1,0,0, 0,1,0")
   id_cs2 = geompy.addToStudy(cs2, "CS 70,80,10, 1,0,1, 1,1,0")
   id_cs3 = geompy.addToStudy(cs3, "CS: pz, vxy, vz")
+  id_cs4 = geompy.addToStudy(cs4, "CS: Plane")
 
   id_Line   = geompy.addToStudy(Line,   "Line")
   id_Line1  = geompy.addToStudy(Line1,  "Line by point and vector")
   id_Line3  = geompy.addToStudy(Line3,  "Line on Two Faces Intersection")
   id_Plane  = geompy.addToStudy(Plane,  "Plane")
   id_Plane1 = geompy.addToStudy(Plane1,  "Plane by 3 points")
+  id_Plane2 = geompy.addToStudy(Plane2,  "Plane by 2 vectors")
+  id_Plane3 = geompy.addToStudy(Plane3,  "Plane by LCS")
 
   id_Arc      = geompy.addToStudy(Arc,      "Arc")
   id_Arc2     = geompy.addToStudy(Arc2,     "Arc2")
@@ -309,9 +330,12 @@ def TestAll (geompy, math):
   id_Sketcher3d = geompy.addToStudy(Sketcher3d, "Sketcher 3D")
 
   id_p_on_arc  = geompy.addToStudy(p_on_arc,  "Vertex on Arc (0.25)")
+  id_p_on_arc2 =  geompy.addToStudy(p_on_arc2, "Vertex on Arc at(100, -10, 10)" )
+  
   id_p_on_l1l2 = geompy.addToStudy(p_on_l1l2, "Vertex on Lines Intersection")
 
-  id_tan_on_arc = geompy.addToStudy(tan_on_arc, "Tangent on Arc (0.7)")
+  id_tan_on_arc  = geompy.addToStudy(tan_on_arc, "Tangent on Arc (0.7)")
+  id_tan_on_face = geompy.addToStudy(tan_on_face, "Tangent on Face")
 
   id_Box      = geompy.addToStudy(Box,      "Box")
   id_Box1     = geompy.addToStudy(Box1,     "Box 10x20x30")
@@ -344,6 +368,7 @@ def TestAll (geompy, math):
   id_Shell    = geompy.addToStudy(Shell,    "Shell")
 
   id_p_on_face = geompy.addToStudy(p_on_face, "Vertex on Face (0.1, 0.8)")
+  id_p_on_face2 = geompy.addToStudy(p_on_face2, "Vertex on Face at(0., 0., 0.)")
 
   id_Prism1   = geompy.addToStudy(Prism1,     "Prism by Two Pnt")
   id_Shell1   = geompy.addToStudy(Shell1,   "Shell from Prism1 faces")
@@ -407,11 +432,19 @@ def TestAll (geompy, math):
   name       = geompy.SubShapeName(SubFace, Box)
   id_SubFace = geompy.addToStudyInFather(Box, SubFace, name)
 
-  # SubShapeSorted
-  SubFaceS   = geompy.SubShapeSorted(Box, geompy.ShapeType["FACE"], [5])
+  # SubShapeSortedCentres
+  SubFaceS   = geompy.SubShapeSortedCentres(Box, geompy.ShapeType["FACE"], [5])
   nameS      = geompy.SubShapeName(SubFaceS, Box)
   id_SubFace = geompy.addToStudyInFather(Box, SubFaceS, nameS)
 
+  # GetExistingSubObjects
+  SubObjsAll = geompy.GetExistingSubObjects(Box, True)
+  print "For now, Box has the following created sub-objects:", SubObjsAll
+
+  # GetGroups
+  SubGrpsAll = geompy.GetGroups(Box)
+  print "For now, Box has the following created groups:", SubGrpsAll
+
   # SubShapeAll
   SubEdgeList = geompy.SubShapeAll(SubFace, geompy.ShapeType["EDGE"])
   i=0
@@ -426,8 +459,8 @@ def TestAll (geompy, math):
   geompy.UnionIDs(group, SubEdgeIDsList)
   geompy.addToStudyInFather(SubFace, group, "Group of all edges")
 
-  # SubShapeAllSortedIDs
-  SubEdgeIDsList = geompy.SubShapeAllSortedIDs(SubFace, geompy.ShapeType["EDGE"])
+  # SubShapeAllSortedCentresIDs
+  SubEdgeIDsList = geompy.SubShapeAllSortedCentresIDs(SubFace, geompy.ShapeType["EDGE"])
   print "IDs of edges of SubFace:", SubEdgeIDsList, "(sorted)"
 
   # GetSubShape and GetSubShapeID
@@ -437,4 +470,10 @@ def TestAll (geompy, math):
     if ind_e != ind:
       print "Error in GetSubShape or GetSubShapeID"
 
+  # RestoreSubShapes
+  geompy.RestoreSubShapes(Copy)
+  geompy.RestoreSubShapes(RotatPnt, [], GEOM.FSM_Transformed)
+  geompy.RestoreSubShapes(Partition, [Box])
+  geompy.RestoreSubShapes(Partition1)
+
   print "DONE"