Source code for compas_wood.binding.binding_read_xml_polylines
from wood_nano import read_xml_polylines as wood_nano_read_xml_polylines
from wood_nano import double2
from compas.geometry import Polyline
from compas.geometry import Scale
[docs]def read_xml_polylines(
foldername="/home/petras/brg/2_code/wood_nano/src/wood/cmake/src/wood/dataset/",
filename="type_plates_name_cross_vda_hexshell_reciprocal",
scale=1,
):
"""Read polylines from XML file.
Parameters
----------
foldername : str, optional
Foldername.
filename_of_dataset : str, optional
Filename of dataset.
scale : float, optional
Scale.
Returns
-------
list[compas.geometry.Polyline]
List of polylines.
"""
polylines_coordinates = double2()
wood_nano_read_xml_polylines(
foldername,
filename,
polylines_coordinates,
)
polylines = []
xform = Scale.from_factors([scale, scale, scale])
for polyline in polylines_coordinates:
points = []
for i in range(0, len(polyline), 3):
points.append([polyline[i], polyline[i + 1], polyline[i + 2]])
polyline = Polyline(points)
polyline.transform(xform)
polylines.append(polyline)
return polylines
if __name__ == "__main__":
polylines = read_xml_polylines()
import sys
if sys.version_info >= (3, 9):
from compas_viewer import Viewer
viewer = Viewer()
for polyline in polylines:
viewer.scene.add(polyline, show_points=False)
viewer.show()