# -*- coding: iso-8859-1 -*-

###
### This file is generated automatically by SALOME v6.3.0 with dump python functionality
###

import sys
import salome

salome.salome_init()
theStudy = salome.myStudy

import salome_notebook
notebook = salome_notebook.notebook
sys.path.insert( 0, r'/home/carlos/Cylinder')

import iparameters
ipar = iparameters.IParameters(salome.myStudy.GetCommonParameters("Interface Applicative", 1))

#Set up visual properties:
ipar.setProperty("AP_ACTIVE_VIEW", "VTKViewer_0_0")
ipar.setProperty("AP_WORKSTACK_INFO", "0000000100000000000000020100000001000003be000000040000000200000002000000080000001a004f00430043005600690065007700650072005f0030005f00300000000102000000080000001a00560054004b005600690065007700650072005f0030005f00300000000202")
ipar.setProperty("AP_ACTIVE_MODULE", "Mesh")
ipar.setProperty("AP_SAVEPOINT_NAME", "GUI state: 1")
#Set up lists:
# fill list AP_VIEWERS_LIST
ipar.append("AP_VIEWERS_LIST", "OCCViewer_1")
ipar.append("AP_VIEWERS_LIST", "VTKViewer_2")
# fill list OCCViewer_1
ipar.append("OCCViewer_1", "OCC scene:1 - viewer:1")
ipar.append("OCCViewer_1", "scale=3.789433202040e+00*centerX=5.684341886081e-14*centerY=1.224744935397e+02*projX=4.224945902824e-01*projY=-4.420806169510e-01*projZ=-7.912414073944e-01*twist=2.979188538815e-01*atX=-1.015361938477e+02*atY=1.770603027344e+02*atZ=1.999725189209e+02*eyeX=-1.005830591292e+02*eyeY=1.760629825460e+02*eyeZ=1.981875027967e+02*scaleX=1.000000000000e+00*scaleY=1.000000000000e+00*scaleZ=1.000000000000e+00*isVisible=1*size=100.00*gtIsVisible=0*gtDrawNameX=1*gtDrawNameY=1*gtDrawNameZ=1*gtNameX=X*gtNameY=Y*gtNameZ=Z*gtNameColorRX=255*gtNameColorGX=0*gtNameColorBX=0*gtNameColorRY=0*gtNameColorGY=255*gtNameColorBY=0*gtNameColorRZ=0*gtNameColorGZ=0*gtNameColorBZ=255*gtDrawValuesX=1*gtDrawValuesY=1*gtDrawValuesZ=1*gtNbValuesX=3*gtNbValuesY=3*gtNbValuesZ=3*gtOffsetX=2*gtOffsetY=2*gtOffsetZ=2*gtColorRX=255*gtColorGX=0*gtColorBX=0*gtColorRY=0*gtColorGY=255*gtColorBY=0*gtColorRZ=0*gtColorGZ=0*gtColorBZ=255*gtDrawTickmarksX=1*gtDrawTickmarksY=1*gtDrawTickmarksZ=1*gtTickmarkLengthX=5*gtTickmarkLengthY=5*gtTickmarkLengthZ=5")
# fill list VTKViewer_2
ipar.append("VTKViewer_2", "VTK scene:1 - viewer:1")
ipar.append("VTKViewer_2", """<?xml version="1.0"?>
<ViewState>
    <Position X="382.787" Y="-371.433" Z="-1943.78"/>
    <FocalPoint X="0" Y="-3.8147e-06" Z="155.592"/>
    <ViewUp X="0.721721" Y="-0.646972" Z="0.24606"/>
    <ViewScale Parallel="145.099" X="1" Y="1" Z="1"/>
    <DisplayCubeAxis Show="0"/>
    <GraduatedAxis Axis="X">
        <Title isVisible="1" Text="X" Font="0" Bold="0" Italic="0" Shadow="0">
            <Color R="1" G="0" B="0"/>
        </Title>
        <Labels isVisible="1" Number="3" Offset="2" Font="0" Bold="0" Italic="0" Shadow="0">
            <Color R="1" G="0" B="0"/>
        </Labels>
        <TickMarks isVisible="1" Length="5"/>
    </GraduatedAxis>
    <GraduatedAxis Axis="Y">
        <Title isVisible="1" Text="Y" Font="0" Bold="0" Italic="0" Shadow="0">
            <Color R="0" G="1" B="0"/>
        </Title>
        <Labels isVisible="1" Number="3" Offset="2" Font="0" Bold="0" Italic="0" Shadow="0">
            <Color R="0" G="1" B="0"/>
        </Labels>
        <TickMarks isVisible="1" Length="5"/>
    </GraduatedAxis>
    <GraduatedAxis Axis="Z">
        <Title isVisible="1" Text="Z" Font="0" Bold="0" Italic="0" Shadow="0">
            <Color R="0" G="0" B="1"/>
        </Title>
        <Labels isVisible="1" Number="3" Offset="2" Font="0" Bold="0" Italic="0" Shadow="0">
            <Color R="0" G="0" B="1"/>
        </Labels>
        <TickMarks isVisible="1" Length="5"/>
    </GraduatedAxis>
    <Trihedron isShown="1" Size="105"/>
</ViewState>
""")
# fill list AP_MODULES_LIST
ipar.append("AP_MODULES_LIST", "Geometry")
ipar.append("AP_MODULES_LIST", "Mesh")


###
### GEOM component
###

import GEOM
import geompy
import math
import SALOMEDS


geompy.init_geom(theStudy)

Cylinder_1 = geompy.MakeCylinderRH(10, 300)
Cylinder_2 = geompy.MakeCylinderRH(15, 30)
Vector_1 = geompy.MakeVectorDXDYDZ(0, 1, 0)
geompy.TranslateDXDYDZ(Cylinder_2, 0, 0, -15)
geompy.Rotate(Cylinder_2, Vector_1, 90*math.pi/180.0)
Cut_1 = geompy.MakeCut(Cylinder_1, Cylinder_2)
[CutFace,Face_2,Face_3] = geompy.ExtractShapes(Cut_1, geompy.ShapeType["FACE"], True)

[Edge_1] = geompy.ExtractShapes(Face_3, geompy.ShapeType["EDGE"], True)

[Vertex_2] = geompy.ExtractShapes(Edge_1, geompy.ShapeType["VERTEX"], True)
Vertex_1 = geompy.MakeVertexOnCurve(Edge_1, 0.5)
NewTop = geompy.MakePartition([Face_3], [Vertex_1, Vertex_2], [], [], geompy.ShapeType["FACE"], 0, [], 0)
Shell_1 = geompy.MakeShell([NewTop, CutFace, Face_2])
NewCyl = geompy.MakeSolid([Shell_1])
listSubShapeIDs = geompy.SubShapeAllIDs(NewCyl, geompy.ShapeType["FACE"])
listSubShapeIDs = geompy.SubShapeAllIDs(NewCyl, geompy.ShapeType["FACE"])
Top = geompy.CreateGroup(NewCyl, geompy.ShapeType["FACE"])
geompy.UnionIDs(Top, [3])
Bottom = geompy.CreateGroup(NewCyl, geompy.ShapeType["FACE"])
geompy.UnionIDs(Bottom, [16])
geompy.addToStudy( Cylinder_1, 'Cylinder_1' )
geompy.addToStudy( Cylinder_2, 'Cylinder_2' )
geompy.addToStudy( Vector_1, 'Vector_1' )
geompy.addToStudy( Cut_1, 'Cut_1' )
geompy.addToStudyInFather( Cut_1, CutFace, 'CutFace' )
geompy.addToStudyInFather( Cut_1, Face_2, 'Face_2' )
geompy.addToStudyInFather( Cut_1, Face_3, 'Face_3' )
geompy.addToStudyInFather( Face_3, Edge_1, 'Edge_1' )
geompy.addToStudy( Vertex_1, 'Vertex_1' )
geompy.addToStudyInFather( Edge_1, Vertex_2, 'Vertex_2' )
geompy.addToStudy( NewTop, 'NewTop' )
geompy.addToStudy( Shell_1, 'Shell_1' )
geompy.addToStudy( NewCyl, 'NewCyl' )
geompy.addToStudyInFather( NewCyl, Top, 'Top' )
geompy.addToStudyInFather( NewCyl, Bottom, 'Bottom' )

### Store presentation parameters of displayed objects
import iparameters
ipar = iparameters.IParameters(theStudy.GetModuleParameters("Interface Applicative", "GEOM", 1))

#Set up entries:
# set up entry GEOM_1 (Cylinder_1) parameters
objId = geompy.getObjectID(Cylinder_1)
ipar.setParameter(objId, "OCCViewer_0_Visibility", "On")
ipar.setParameter(objId, "OCCViewer_0_Color", "0:1:1")
# set up entry GEOM_2 (Cylinder_2) parameters
objId = geompy.getObjectID(Cylinder_2)
ipar.setParameter(objId, "OCCViewer_0_Visibility", "On")
ipar.setParameter(objId, "OCCViewer_0_Color", "0:1:1")
# set up entry GEOM_3 (Vector_1) parameters
objId = geompy.getObjectID(Vector_1)
ipar.setParameter(objId, "OCCViewer_0_Visibility", "On")
ipar.setParameter(objId, "OCCViewer_0_Color", "0:1:1")
# set up entry GEOM_4 (Cut_1) parameters
objId = geompy.getObjectID(Cut_1)
ipar.setParameter(objId, "OCCViewer_0_Visibility", "On")
ipar.setParameter(objId, "OCCViewer_0_Color", "0:1:1")
# set up entry GEOM_4:3 (CutFace) parameters
objId = geompy.getObjectID(CutFace)
ipar.setParameter(objId, "OCCViewer_0_Visibility", "On")
ipar.setParameter(objId, "OCCViewer_0_Color", "0:1:1")
# set up entry GEOM_4:4 (Face_2) parameters
objId = geompy.getObjectID(Face_2)
ipar.setParameter(objId, "OCCViewer_0_Visibility", "On")
ipar.setParameter(objId, "OCCViewer_0_Color", "0:1:1")
# set up entry GEOM_4:5 (Face_3) parameters
objId = geompy.getObjectID(Face_3)
ipar.setParameter(objId, "OCCViewer_0_Visibility", "On")
ipar.setParameter(objId, "OCCViewer_0_Color", "0:1:1")
# set up entry GEOM_4:5:2 (Edge_1) parameters
objId = geompy.getObjectID(Edge_1)
ipar.setParameter(objId, "OCCViewer_0_Visibility", "On")
ipar.setParameter(objId, "OCCViewer_0_Color", "0:1:1")
# set up entry GEOM_4:5:2:2 (Vertex_2) parameters
objId = geompy.getObjectID(Vertex_2)
ipar.setParameter(objId, "OCCViewer_0_Visibility", "On")
ipar.setParameter(objId, "OCCViewer_0_Color", "0:1:1")
# set up entry GEOM_5 (Vertex_1) parameters
objId = geompy.getObjectID(Vertex_1)
ipar.setParameter(objId, "OCCViewer_0_Visibility", "On")
ipar.setParameter(objId, "OCCViewer_0_Color", "0:1:1")
# set up entry GEOM_6 (NewTop) parameters
objId = geompy.getObjectID(NewTop)
ipar.setParameter(objId, "OCCViewer_0_Visibility", "On")
ipar.setParameter(objId, "OCCViewer_0_Color", "0:1:1")
# set up entry GEOM_7 (Shell_1) parameters
objId = geompy.getObjectID(Shell_1)
ipar.setParameter(objId, "OCCViewer_0_Visibility", "On")
ipar.setParameter(objId, "OCCViewer_0_Color", "0:1:1")
# set up entry GEOM_8 (NewCyl) parameters
objId = geompy.getObjectID(NewCyl)
ipar.setParameter(objId, "OCCViewer_0_Visibility", "Off")
ipar.setParameter(objId, "OCCViewer_0_Color", "0:1:1")
# set up entry GEOM_8:2 (Top) parameters
objId = geompy.getObjectID(Top)
ipar.setParameter(objId, "OCCViewer_0_Visibility", "On")
ipar.setParameter(objId, "OCCViewer_0_Color", "0:1:1")
# set up entry GEOM_8:3 (Bottom) parameters
objId = geompy.getObjectID(Bottom)
ipar.setParameter(objId, "OCCViewer_0_Visibility", "On")
ipar.setParameter(objId, "OCCViewer_0_Color", "0:1:1")

###
### SMESH component
###

import smesh, SMESH, SALOMEDS

aMeasurements = smesh.CreateMeasurements()
smesh.SetCurrentStudy(theStudy)
import StdMeshers
Mesh_1 = smesh.Mesh(NewCyl)
Regular_1D = Mesh_1.Segment()
Nb_Segments_1 = Regular_1D.NumberOfSegments(15)
Nb_Segments_1.SetDistrType( 0 )
Quadrangle_2D = Mesh_1.Quadrangle()
Prism_3D = Mesh_1.Prism()
Regular_1D_1 = Mesh_1.Segment(geom=Top)
Nb_Segments_2 = Regular_1D_1.NumberOfSegments(15)
Nb_Segments_2.SetDistrType( 0 )
MEFISTO_2D = Mesh_1.Triangle(geom=Top)
Projection_2D = Mesh_1.Projection2D(geom=Bottom)
Source_Face_1 = Projection_2D.SourceFace(Top,None,None,None,None,None)
isDone = Mesh_1.Compute()
SubMesh_1 = Regular_1D_1.GetSubMesh()
SubMesh_2 = Projection_2D.GetSubMesh()

## set object names
smesh.SetName(Mesh_1.GetMesh(), 'Mesh_1')
smesh.SetName(Regular_1D.GetAlgorithm(), 'Regular_1D')
smesh.SetName(Nb_Segments_1, 'Nb. Segments_1')
smesh.SetName(Quadrangle_2D.GetAlgorithm(), 'Quadrangle_2D')
smesh.SetName(Prism_3D.GetAlgorithm(), 'Prism_3D')
smesh.SetName(Nb_Segments_2, 'Nb. Segments_2')
smesh.SetName(MEFISTO_2D.GetAlgorithm(), 'MEFISTO_2D')
smesh.SetName(Projection_2D.GetAlgorithm(), 'Projection_2D')
smesh.SetName(Source_Face_1, 'Source Face_1')
smesh.SetName(SubMesh_1, 'SubMesh_1')
smesh.SetName(SubMesh_2, 'SubMesh_2')

### Store presentation parameters of displayed objects
import iparameters
ipar = iparameters.IParameters(theStudy.GetModuleParameters("Interface Applicative", "SMESH", 1))

#Set up entries:
# set up entry SMESH_3 (Mesh_1) parameters
ipar.setParameter("SMESH_3", "VTKViewer_0_Visibility", "On")
ipar.setParameter("SMESH_3", "VTKViewer_0_Representation", "2")
ipar.setParameter("SMESH_3", "VTKViewer_0_IsShrunk", "0")
ipar.setParameter("SMESH_3", "VTKViewer_0_Entities", "e:1:f:1:v:1")
ipar.setParameter("SMESH_3", "VTKViewer_0_Colors", "surface:0:0.666667:1:backsurface:0:0:1:edge:0:0.666667:1:node:1:0:0")
ipar.setParameter("SMESH_3", "VTKViewer_0_Sizes", "line:1:shrink:0.75")
ipar.setParameter("SMESH_3", "VTKViewer_0_PointMarker", "std:1:9")
ipar.setParameter("SMESH_3", "VTKViewer_0_Opacity", "1")
ipar.setParameter("SMESH_3", "VTKViewer_0_ClippingPlane", "Off")


if salome.sg.hasDesktop():
  salome.sg.updateObjBrowser(1)
  iparameters.getSession().restoreVisualState(1)
