Source code for compas_wood.binding.binding_get_connection_zones

from wood_nano import get_connection_zones as wood_nano_get_connection_zones
from wood_nano import cut_type2 as wood_nano_cut_type2
from wood_nano import point3 as wood_nano_point3
from wood_nano.conversions_python import to_int2
from wood_nano.conversions_python import to_int1
from wood_nano.conversions_python import to_double1
from wood_nano.conversions_python import from_cut_type2
from compas_wood.conversions_compas import to_point2
from compas_wood.conversions_compas import to_vector2
from compas_wood.conversions_compas import from_point3
from compas_wood.binding import wood_globals
from math import floor


[docs]def get_connection_zones( input_polyline_pairs, input_insertion_vectors=[], input_joint_types=[], input_three_valence_element_indices_and_instruction=[], input_adjacency=[], input_joint_parameters_and_types=[], input_search_type=0, input_scale=[1, 1, 1], input_output_type=3, input_joint_volume_parameters=[0, 0, 0], input_custom_joints=[], input_custom_joints_types=[], ): """ Get connection zones for the given input parameters. Parameters ---------- input_polyline_pairs : list[list[compas.geometry.Polyline]] List of polylines that represents the timber elements. input_insertion_vectors : list[compas.geometry.Vector], optional List of insertion vectors. input_joint_types : list[int], optional List of joint types. input_three_valence_element_indices_and_instruction : list[int], optional List of three valence element indices and instruction. input_adjacency : list[int], optional List of adjacency. input_joint_parameters_and_types : list[float], optional List of joint parameters and types. input_search_type : int, optional Search type. input_scale : list[float], optional Scale. input_output_type : int, optional Output type. input_joint_volume_parameters : list[float], optional Joint volume parameters. input_face_to_face_side_to_side_joints_all_treated_as_rotated : bool, optional Face to face side to side joints all treated as rotated. input_custom_joints : list[compas.geometry.Point], optional Custom joints. input_custom_joints_types : list[int], optional Custom joints types. input_face_to_face_side_to_side_joints_rotated_joint_as_average : bool, optional Returns ------- list[list[compas.geometry.Polyline]] List of polylines that represents the timber elements. list[wood_nano.CutType2] List of cut types. """ joint_parameters = wood_globals.joints_parameters_and_types for i in range(0, len(input_joint_parameters_and_types), 3): insertion_id = floor(input_joint_parameters_and_types[i + 2] / 10) joint_parameters[insertion_id * 3 + 0] = input_joint_parameters_and_types[i + 0] joint_parameters[insertion_id * 3 + 1] = input_joint_parameters_and_types[i + 1] joint_parameters[insertion_id * 3 + 2] = input_joint_parameters_and_types[i + 2] w_output_plines = wood_nano_point3() w_output_types = wood_nano_cut_type2() wood_nano_get_connection_zones( to_point2(input_polyline_pairs), to_vector2(input_insertion_vectors), to_int2(input_joint_types), to_int2(input_three_valence_element_indices_and_instruction), to_int1(input_adjacency), to_double1(joint_parameters), int(input_search_type), to_double1(input_scale), int(input_output_type), w_output_plines, w_output_types, to_double1(input_joint_volume_parameters), ) return from_point3(w_output_plines), from_cut_type2(w_output_types)