layerview.visualization.nodes.model module

Model (print) node generation.

class layerview.visualization.nodes.model.LayerNodeBuilder[source]

Bases: NodeBuilder

Layer node builder

_COLOR_DEFAULT = (0, 0.23529411764705882, 0.7843137254901961, 1)
_GEOM_VERTEX_FORMAT = [ vertex(3f) normal(3f) color(4b) ]
_abc_impl = <_abc_data object>
classmethod _get_geom_vertex_data(layer: Layer, nozzle_diam: float, height: float, name: str) GeomVertexData[source]

Generate GeomVertexData for the provided Layer.

Parameters:
  • layer (Layer) – Layer for which the data should be generated and written.

  • nozzle_diam (float) – Nozzle diameter.

  • height (float) – Layer height, thickness.

  • name (str) – Name for generated GeomVertexData

Returns:

Generated GeomVertexData.

Return type:

GeomVertexData

classmethod _get_layer_point_count(layer: Layer) int[source]

Return total point count in provided layer.

classmethod _get_layer_vertex_count(layer: Layer) int[source]

Return expected total vertex count in provided layer.

classmethod _get_primitive(layer: Layer) GeomTristrips[source]

Generate GeomTristrips primitive for provided layer.

classmethod _get_wall_tilt_angle(toolpath: Path, i: int) float[source]

Returns wall tilt angle for specified point_cloud point.

Positive angles are counterclockwise, negative are clockwise.

Parameters:
  • toolpath (Path) – 2D point_cloud

  • i (int) – Wall index (path vertex index).

Returns:

rotation_angle – Wall rotation angle for segment wall corresponding to vertex v.

Return type:

float

classmethod _get_wall_width_scale_factor(toolpath: Path, i: int) float[source]

Return wall width scale factor.

Parameters:
  • toolpath (Path) – Toolpath.

  • i (int) – Index of wall in toolpath.

Returns:

Wall width scale factor for i-th wall in toolpath.

Return type:

float

classmethod _write_geom_data(geom_data: GeomVertexData, layer: Layer, width: float, height: float)[source]

Write layer geom data into the provided GeomVertexData.

Parameters:
  • geom_data (GeomVertexData) – GeomVertexData to write data into.

  • layer (Layer) – Layer for which the data should be generated and written.

  • width (float) – Segment width (nozzle diameter).

  • height (float) – Segment height (layer height, thickness).

classmethod _write_geom_data_colors(geom_data: GeomVertexData, layer_vertex_count: int, color: Tuple[float, float, float, float] = (0, 0.23529411764705882, 0.7843137254901961, 1))[source]

Write color data into the provided GeomVertexData.

Parameters:
  • geom_data (GeomVertexData) – GeomVertexData to write color data into.

  • layer_vertex_count (int) – Total vertex count in layer.

  • color (Tuple[float, float, float, float]) – Target vertex color.

classmethod _write_geom_data_coords_and_normals(geom_data: GeomVertexData, layer: Layer, width: float, height: float)[source]

Write vertex coords and normals into the provided GeomVertexData.

Parameters:
  • geom_data (GeomVertexData) – GeomVertexData to write coords and normals into.

  • layer (Layer) – Layer for which the coords and normals should be generated and written.

  • width (float) – Segment width (nozzle diameter).

  • height (float) – Segment height (layer height, thickness)

classmethod build_node(layer: Layer, height: float, nozzle_diam: float, name: str) NodePath[source]

Build layer node.

Parameters:
  • layer (Layer) – Layer for which the data should be generated and written.

  • nozzle_diam (float) – Nozzle diameter.

  • height (float) – Layer height, thickness.

  • name (str) – Name for generated NodePath.

Returns:

Generated NodePath.

Return type:

NodePath

class layerview.visualization.nodes.model.ModelManager[source]

Bases: object

Model manager.

_model_info: ModelInfo | None
_model_node: NodePath
hide_all_layers()[source]

Hide all layers.

hide_layer(index: int)[source]

Hide layer at specified index.

Parameters:

index (int) – Target layer index.

index_to_layer_node: Dict[int, NodePath]
property model_info: ModelInfo | None

Returns ModelInfo for the managed Model.

property model_node: NodePath | None

Returns NodePath for the managed Model.

priming_layer_node: NodePath | None
set_layer_color(index: int, color: Tuple[float, float, float, float])[source]

Set color of layer at specified index.

Parameters:
  • index (int) – Target layer index.

  • color (Tuple[float, float, float, float]) – RGBA color to set.

show_all_layers()[source]

Show all layers.

show_layer(index: int)[source]

Show layer at specified index.

Parameters:

index (int) – Target layer index.

show_layer_range_only(start: int, end: int)[source]

Show specified layer range, exclusively.

Range [start; end] is inclusive. All layers in specified range are shown, others are hidden.

Parameters:
  • start (int) – Range start layer number, inclusive.

  • end (int) – Range end layer number, inclusive.

class layerview.visualization.nodes.model.ModelManagerBuilder[source]

Bases: object

Creates root G-code model node.

static build_manager(model: Model, name: str | None = '') ModelManager[source]

Get new ModelManager.

Parameters:
  • model (Model) –

  • name (Optional[str]) – Model NodePath name.

Returns:

model_node_manager

Return type:

ModelManager