This commit is contained in:
Andrej730
2025-11-14 18:18:52 +05:00
parent 3fbba405d4
commit e46a99870b
3 changed files with 8 additions and 6 deletions
@@ -42,7 +42,7 @@ from bonsai.bim.module.drawing.helper import format_distance
from timeit import default_timer as timer
from functools import cache
from typing import Optional, Union
from collections.abc import Iterator
from collections.abc import Generator, Iterator
UNSPECIAL_ELEMENT_COLOR = (0.2, 0.2, 0.2, 1) # GREY
@@ -186,7 +186,7 @@ class BaseDecorator:
def camera_zoom_to_factor(self, zoom):
return math.pow(((zoom / 50) + math.sqrt(2)) / 2, 2)
def get_splines(self, obj):
def get_splines(self, obj: bpy.types.Object) -> Generator[list[Vector]]:
"""Iterates through splines
Args:
obj: Blender object with Curve data
@@ -194,13 +194,14 @@ class BaseDecorator:
Yields:
verts: points of each spline, world coords
"""
assert type(obj.data) is bpy.types.Curve
for spline in obj.data.splines:
spline_points = spline.bezier_points if spline.bezier_points else spline.points
if len(spline_points) < 2:
continue
yield [obj.matrix_world @ p.co for p in spline_points]
def get_path_geom(self, obj, topo=True):
def get_path_geom(self, obj: bpy.types.Object, topo: bool = True):
"""Parses path geometry into line segments
Args:
+1
View File
@@ -535,6 +535,7 @@ class BIM_ADDON_preferences(bpy.types.AddonPreferences):
should_setup_workspace: bool
activate_workspace: bool
should_setup_toolbar: bool
should_use_snap: bool
should_play_chaching_sound: bool
tmp_dir: str
decorations_colour: tuple[float, float, float, float]
@@ -60,7 +60,7 @@ import zipfile
import tempfile
from pathlib import Path
from typing import Optional, Union, TYPE_CHECKING, Any, overload, Literal
from collections.abc import Sequence
from collections.abc import Generator, Sequence
if TYPE_CHECKING:
import ifcopenshell.express.schema_class
@@ -355,7 +355,7 @@ def stream2(path: Union[Path, str], mmap: bool = False, page_size: int = 0):
yield inst
def stream2_from_string(data: str):
def stream2_from_string(data: str) -> Generator[dict]:
"""Streams the content of a file path from string, yielding each instance
as a dictionary.
@@ -371,7 +371,7 @@ def stream2_from_string(data: str):
yield inst
def convert_path_to_rocksdb(ifcspf_path: Union[Path, str], rocksdb_path: Union[Path, str]):
def convert_path_to_rocksdb(ifcspf_path: Union[Path, str], rocksdb_path: Union[Path, str]) -> None:
"""Converts an IFC-SPF file on disk to the IfcOpenShell-specific
RocksDB encoding. RocksDB is an embedded key-value store that allows
partial reads and is therefore more memory efficient with larger files.