Measure tool - added measurement type to each measurement properties.

This commit is contained in:
Bruno Perdigão
2024-10-04 15:24:59 -03:00
parent cf2a156872
commit 1a8c11c715
4 changed files with 16 additions and 13 deletions
+2 -1
View File
@@ -752,6 +752,7 @@ class PolylinePoint(PropertyGroup):
class MeasurePolyline(PropertyGroup):
polyline_point: bpy.props.CollectionProperty(type=PolylinePoint)
measurement_type: bpy.props.StringProperty(name="Measurement Type")
class BIMPolylineProperties(PropertyGroup):
@@ -759,4 +760,4 @@ class BIMPolylineProperties(PropertyGroup):
snap_mouse_ref: bpy.props.CollectionProperty(type=SnapMousePoint)
polyline_points: bpy.props.CollectionProperty(type=PolylinePoint)
product_preview: bpy.props.CollectionProperty(type=PolylinePoint)
measure_polyline: bpy.props.CollectionProperty(type=MeasurePolyline)
measurement_polyline: bpy.props.CollectionProperty(type=MeasurePolyline)
@@ -265,7 +265,7 @@ class MeasureDecorator:
color = self.addon_prefs.decorations_colour
blf.color(self.font_id, *color)
measure_data = context.scene.BIMPolylineProperties.measure_polyline
measure_data = context.scene.BIMPolylineProperties.measurement_polyline
for data in measure_data:
measurement_prop = data.polyline_point
@@ -319,7 +319,7 @@ class MeasureDecorator:
self.shader = gpu.shader.from_builtin("UNIFORM_COLOR")
gpu.state.point_size_set(6)
measure_data = context.scene.BIMPolylineProperties.measure_polyline
measure_data = context.scene.BIMPolylineProperties.measurement_polyline
for data in measure_data:
polyline_data = data.polyline_point
@@ -2433,7 +2433,7 @@ class MeasureTool(bpy.types.Operator, PolylineOperator):
tool.Polyline.calculate_area(context, self.input_ui)
if event.type == "E":
context.scene.BIMPolylineProperties.measure_polyline.clear()
context.scene.BIMPolylineProperties.measurement_polyline.clear()
MeasureDecorator.uninstall()
tool.Blender.update_viewport()
+11 -9
View File
@@ -159,15 +159,17 @@ class Snap(bonsai.core.tool.Snap):
@classmethod
def move_polyline_to_measure(cls):
polyline_data = bpy.context.scene.BIMPolylineProperties.polyline_points
measure_data = bpy.context.scene.BIMPolylineProperties.measure_polyline.add()
measurement_data = bpy.context.scene.BIMPolylineProperties.measurement_polyline.add()
measurement_type = bpy.context.scene.MeasureToolSettings.measure_type
measurement_data.measurement_type = measurement_type
for point in polyline_data:
measure_point = measure_data.polyline_point.add()
measure_point.x = point.x
measure_point.y = point.y
measure_point.z = point.z
measure_point.dim = point.dim
measure_point.angle = point.angle
measure_point.position = point.position
measurement_point = measurement_data.polyline_point.add()
measurement_point.x = point.x
measurement_point.y = point.y
measurement_point.z = point.z
measurement_point.dim = point.dim
measurement_point.angle = point.angle
measurement_point.position = point.position
@classmethod
def snap_on_axis(cls, intersection, tool_state, lock_angle=False):
@@ -392,7 +394,7 @@ class Snap(bonsai.core.tool.Snap):
detected_snaps.append({"Polyline": snap_points})
# Measure
measure_data = context.scene.BIMPolylineProperties.measure_polyline
measure_data = context.scene.BIMPolylineProperties.measurement_polyline
for measure in measure_data:
measure_points = measure.polyline_point
snap_points = tool.Raycast.ray_cast_to_measure(context, event, measure_points)