8 from __future__
import print_function
11 from opals
import pyDM
13 def output_polyline(line,prefix=""):
14 print(prefix,
"Polyline has",line.sizePart(),
"parts with",line.sizePoint(),
"points")
15 for idx, part
in enumerate(line.parts()):
16 print(
"\tPart",idx,
"with",part.sizePoint(),
"points")
17 for p
in part.points():
18 if sys.float_info.max == p.z:
19 print(
"\t\t(%.3f," % p.x,
" %.3f," % p.y,
"---)")
21 print(
"\t\t(%.3f," % p.x,
" %.3f," % p.y,
"%.3f)" % p.z)
25 def output_search(lines):
26 print(len(lines),
" polylines found")
27 for idx,l
in enumerate(lines):
28 output_polyline(l,str(idx)+
" line:")
31 odm = pyDM.Datamanager.create(
"polyline_query_test.odm",
False)
34 f = pyDM.PolylineFactory()
41 odm.addPolyline( f.getPolyline() )
47 odm.addPolyline( f.getPolyline() )
50 pi = odm.getPolylineIndex()
53 print(
"\nwindow query on polyines:")
54 searchLines = pi.searchGeometry(pyDM.Window(1,1,5,5), pyDM.SpatialQueryMode.intersect)
55 output_search(searchLines)
58 print(
"\nnearest neighbor search:")
59 searchLines = pi.searchGeometry(1,pyDM.Point(0,0,0) )
60 output_search(searchLines)