Salome HOME
Fix: getCellsContainingPoints() in case of polyhedron with a face containing colinear...
[tools/medcoupling.git] / doc / user / images / intersect_2d1d.py
1 # -*- coding: utf-8 -*-
2
3 ###
4 ### This script is intended to be launched in a new SALOME study
5 ###
6
7 import sys
8 import salome
9 import math
10
11 salome.salome_init()
12 theStudy = salome.myStudy
13
14 import iparameters
15 ipar = iparameters.IParameters(salome.myStudy.GetCommonParameters("Interface Applicative", 1), True)
16
17 #Set up visual properties:
18 ipar.setProperty("AP_ACTIVE_VIEW", "VTKViewer_0_0")
19 ipar.setProperty("AP_WORKSTACK_INFO", "0000000100000000000000020100000001000003a0000000040000000100000002000000080000001a00560054004b005600690065007700650072005f0030005f00300000000202")
20 ipar.setProperty("AP_ACTIVE_MODULE", "Mesh")
21 ipar.setProperty("AP_SAVEPOINT_NAME", "GUI state: 2")
22 #Set up lists:
23 # fill list AP_VIEWERS_LIST
24 ipar.append("AP_VIEWERS_LIST", "VTKViewer_1")
25 # fill list VTKViewer_1
26 ipar.append("VTKViewer_1", "VTK scene:1 - viewer:1")
27 ipar.append("VTKViewer_1", """<?xml version="1.0"?>
28 <ViewState>
29     <Position X="4.41007" Y="1.25267" Z="-97.8303"/>
30     <FocalPoint X="2.00346" Y="1.42923" Z="0.314897"/>
31     <ViewUp X="0.000135221" Y="-0.999998" Z="0.00180225"/>
32     <ViewScale Parallel="5.42135" X="1" Y="1" Z="1"/>
33     <DisplayCubeAxis Show="0"/>
34     <GraduatedAxis Axis="X">
35         <Title isVisible="1" Text="X" Font="0" Bold="0" Italic="0" Shadow="0">
36             <Color R="1" G="0" B="0"/>
37         </Title>
38         <Labels isVisible="1" Number="3" Offset="2" Font="0" Bold="0" Italic="0" Shadow="0">
39             <Color R="1" G="0" B="0"/>
40         </Labels>
41         <TickMarks isVisible="1" Length="5"/>
42     </GraduatedAxis>
43     <GraduatedAxis Axis="Y">
44         <Title isVisible="1" Text="Y" Font="0" Bold="0" Italic="0" Shadow="0">
45             <Color R="0" G="1" B="0"/>
46         </Title>
47         <Labels isVisible="1" Number="3" Offset="2" Font="0" Bold="0" Italic="0" Shadow="0">
48             <Color R="0" G="1" B="0"/>
49         </Labels>
50         <TickMarks isVisible="1" Length="5"/>
51     </GraduatedAxis>
52     <GraduatedAxis Axis="Z">
53         <Title isVisible="1" Text="Z" Font="0" Bold="0" Italic="0" Shadow="0">
54             <Color R="0" G="0" B="1"/>
55         </Title>
56         <Labels isVisible="1" Number="3" Offset="2" Font="0" Bold="0" Italic="0" Shadow="0">
57             <Color R="0" G="0" B="1"/>
58         </Labels>
59         <TickMarks isVisible="1" Length="5"/>
60     </GraduatedAxis>
61     <Trihedron isShown="0" Size="100"/>
62     <Background Value="bt=1;fn=;tm=0;ts=false;c1=#ffffff;c2=#000000;gt=-1;gr="/>
63 </ViewState>
64 """)
65 # fill list AP_MODULES_LIST
66 ipar.append("AP_MODULES_LIST", "Mesh")
67
68 if sys.platform == "win32":
69     from MEDCouplingCompat import *
70 else:
71     from MEDCoupling import *
72
73 coordsArr=DataArrayDouble(range(6))
74 mesh2d=MEDCouplingCMesh("mesh2d")
75 mesh2d.setCoords(coordsArr,coordsArr[:2])
76 mesh2d=mesh2d.buildUnstructured()
77
78 mesh1d=MEDCouplingCMesh("mesh1d")
79 mesh1d.setCoords(coordsArr,coordsArr[:1])
80 mesh1d=mesh1d.buildUnstructured()
81 mesh1d.rotate( [2.3,0], math.radians( 25 ))
82 mesh1d.translate( [0.2,0.4] )
83
84 m2d,m1d,a2d,a1d=MEDCouplingUMesh.Intersect2DMeshWith1DLine( mesh2d, mesh1d, 1e-12 )
85 m1d.setName("m1d")
86
87 from MEDLoader import WriteMesh
88 WriteMesh("mesh1.med",mesh2d,True)
89 WriteMesh("mesh1.med",mesh1d,False)
90 WriteMesh("mesh1.med",m2d,False)
91 WriteMesh("mesh1.med",m1d,False)
92
93 ###
94 ### SMESH component
95 ###
96
97 import  SMESH, SALOMEDS
98 from salome.smesh import smeshBuilder
99
100 smesh = smeshBuilder.New(theStudy)
101 ([m_1d, m_2d, mesh_1d, mesh_2d], status) = smesh.CreateMeshesFromMED(r'mesh1.med')
102
103 m_1d.TranslateObject( m_1d, [0,2,0], False )
104 m_2d.TranslateObject( m_2d, [0,2,0], False )
105
106 m_1d.MakeGroup   ( "nodes", SMESH.NODE, SMESH.FT_NodeConnectivityNumber,">",0)
107 mesh_1d.MakeGroup( "all nodes", SMESH.NODE, SMESH.FT_RangeOfIds,"=","1-20")
108
109
110 ### Store presentation parameters of displayed objects
111 import iparameters
112 ipar = iparameters.IParameters(theStudy.GetModuleParameters("Interface Applicative", "SMESH", 1))
113
114 #Set up entries:
115 # set up entry SMESH_4 (merge) parameters
116 ipar.setParameter("SMESH_4", "VTKViewer_0_Visibility", "On")
117 ipar.setParameter("SMESH_4", "VTKViewer_0_Representation", "2")
118 ipar.setParameter("SMESH_4", "VTKViewer_0_IsShrunk", "1")
119 ipar.setParameter("SMESH_4", "VTKViewer_0_Entities", "e:0:f:1:v:0:0d:0:b:0")
120 ipar.setParameter("SMESH_4", "VTKViewer_0_Colors", "surface:0:0.666667:1:backsurface:100:volume:1:0:0.666667:-100:edge:0:0.666667:1:node:1:0:0:outline:0:0.27451:0:elem0d:0:1:0:ball:0:0.333333:1:orientation:1:1:1")
121 ipar.setParameter("SMESH_4", "VTKViewer_0_Sizes", "line:1:outline:1:elem0d:5:ball:10:1:shrink:0.75:orientation:0.1:0")
122 ipar.setParameter("SMESH_4", "VTKViewer_0_PointMarker", "std:1:9")
123 ipar.setParameter("SMESH_4", "VTKViewer_0_Opacity", "1")
124 ipar.setParameter("SMESH_4", "VTKViewer_0_ClippingPlane", "Off")
125 # set up entry SMESH_3 (m1d) parameters
126 ipar.setParameter("SMESH_3", "VTKViewer_0_Visibility", "On")
127 ipar.setParameter("SMESH_3", "VTKViewer_0_Representation", "1")
128 ipar.setParameter("SMESH_3", "VTKViewer_0_IsShrunk", "0")
129 ipar.setParameter("SMESH_3", "VTKViewer_0_Entities", "e:1:f:0:v:0:0d:0:b:0")
130 ipar.setParameter("SMESH_3", "VTKViewer_0_Colors", "surface:0:0.666667:1:backsurface:100:volume:1:0:0.666667:-100:edge:0:0.666667:1:node:1:0:0:outline:0:0.27451:0:elem0d:0:1:0:ball:0:0.333333:1:orientation:1:1:1")
131 ipar.setParameter("SMESH_3", "VTKViewer_0_Sizes", "line:1:outline:1:elem0d:5:ball:10:1:shrink:0.75:orientation:0.1:0")
132 ipar.setParameter("SMESH_3", "VTKViewer_0_PointMarker", "std:1:9")
133 ipar.setParameter("SMESH_3", "VTKViewer_0_Opacity", "1")
134 ipar.setParameter("SMESH_3", "VTKViewer_0_ClippingPlane", "Off")
135 # set up entry SMESH_5 (mesh1d) parameters
136 ipar.setParameter("SMESH_5", "VTKViewer_0_Visibility", "On")
137 ipar.setParameter("SMESH_5", "VTKViewer_0_Representation", "1")
138 ipar.setParameter("SMESH_5", "VTKViewer_0_IsShrunk", "0")
139 ipar.setParameter("SMESH_5", "VTKViewer_0_Entities", "e:1:f:0:v:0:0d:0:b:0")
140 ipar.setParameter("SMESH_5", "VTKViewer_0_Colors", "surface:0:0.666667:1:backsurface:100:volume:1:0:0.666667:-100:edge:0:0.666667:1:node:1:0:0:outline:0:0.27451:0:elem0d:0:1:0:ball:0:0.333333:1:orientation:1:1:1")
141 ipar.setParameter("SMESH_5", "VTKViewer_0_Sizes", "line:1:outline:1:elem0d:5:ball:10:1:shrink:0.75:orientation:0.1:0")
142 ipar.setParameter("SMESH_5", "VTKViewer_0_PointMarker", "std:1:9")
143 ipar.setParameter("SMESH_5", "VTKViewer_0_Opacity", "1")
144 ipar.setParameter("SMESH_5", "VTKViewer_0_ClippingPlane", "Off")
145 # set up entry SMESH_6 (mesh2d) parameters
146 ipar.setParameter("SMESH_6", "VTKViewer_0_Visibility", "On")
147 ipar.setParameter("SMESH_6", "VTKViewer_0_Representation", "2")
148 ipar.setParameter("SMESH_6", "VTKViewer_0_IsShrunk", "1")
149 ipar.setParameter("SMESH_6", "VTKViewer_0_Entities", "e:0:f:1:v:0:0d:0:b:0")
150 ipar.setParameter("SMESH_6", "VTKViewer_0_Colors", "surface:0:0.666667:1:backsurface:100:volume:1:0:0.666667:-100:edge:0:0.666667:1:node:1:0:0:outline:0:0.27451:0:elem0d:0:1:0:ball:0:0.333333:1:orientation:1:1:1")
151 ipar.setParameter("SMESH_6", "VTKViewer_0_Sizes", "line:1:outline:1:elem0d:5:ball:10:1:shrink:0.75:orientation:0.1:0")
152 ipar.setParameter("SMESH_6", "VTKViewer_0_PointMarker", "std:1:9")
153 ipar.setParameter("SMESH_6", "VTKViewer_0_Opacity", "1")
154 ipar.setParameter("SMESH_6", "VTKViewer_0_ClippingPlane", "Off")
155 # set up entry SMESH_3:11:1 (nodes) parameters
156 ipar.setParameter("SMESH_3:11:1", "VTKViewer_0_Visibility", "On")
157 ipar.setParameter("SMESH_3:11:1", "VTKViewer_0_Representation", "0")
158 ipar.setParameter("SMESH_3:11:1", "VTKViewer_0_IsShrunk", "0")
159 ipar.setParameter("SMESH_3:11:1", "VTKViewer_0_Entities", "e:1:f:1:v:1:0d:1:b:1")
160 ipar.setParameter("SMESH_3:11:1", "VTKViewer_0_Colors", "surface:0:0.666667:1:backsurface:100:volume:1:0:0.666667:-100:edge:0:0.666667:1:node:1:0.666667:0:outline:0:0.27451:0:elem0d:0:1:0:ball:0:0.333333:1:orientation:1:1:1")
161 ipar.setParameter("SMESH_3:11:1", "VTKViewer_0_Sizes", "line:1:outline:1:elem0d:5:ball:10:1:shrink:0.75:orientation:0.1:0")
162 ipar.setParameter("SMESH_3:11:1", "VTKViewer_0_PointMarker", "std:1:9")
163 ipar.setParameter("SMESH_3:11:1", "VTKViewer_0_Opacity", "1")
164 ipar.setParameter("SMESH_3:11:1", "VTKViewer_0_ClippingPlane", "Off")
165 # set up entry SMESH_5:11:1 (all nodes) parameters
166 ipar.setParameter("SMESH_5:11:1", "VTKViewer_0_Visibility", "On")
167 ipar.setParameter("SMESH_5:11:1", "VTKViewer_0_Representation", "0")
168 ipar.setParameter("SMESH_5:11:1", "VTKViewer_0_IsShrunk", "0")
169 ipar.setParameter("SMESH_5:11:1", "VTKViewer_0_Entities", "e:1:f:1:v:1:0d:1:b:1")
170 ipar.setParameter("SMESH_5:11:1", "VTKViewer_0_Colors", "surface:0:0.666667:1:backsurface:100:volume:1:0:0.666667:-100:edge:0:0.666667:1:node:1:0.666667:0:outline:0:0.27451:0:elem0d:0:1:0:ball:0:0.333333:1:orientation:1:1:1")
171 ipar.setParameter("SMESH_5:11:1", "VTKViewer_0_Sizes", "line:1:outline:1:elem0d:5:ball:10:1:shrink:0.75:orientation:0.1:0")
172 ipar.setParameter("SMESH_5:11:1", "VTKViewer_0_PointMarker", "std:1:9")
173 ipar.setParameter("SMESH_5:11:1", "VTKViewer_0_Opacity", "1")
174 ipar.setParameter("SMESH_5:11:1", "VTKViewer_0_ClippingPlane", "Off")
175
176
177 if salome.sg.hasDesktop():
178   salome.sg.updateObjBrowser(True)
179   iparameters.getSession().restoreVisualState(1)