Figler.Scene.Graph.Seed.Node (figler v0.1.0-beta.1)

Copy Markdown View Source

Raw projected node plus graph-resolver metadata.

A seed node is the input to Figler.Scene.Graph resolution. It is not the final effective node: resolver stages may clone it, patch fields, or attach provenance. Override-related fields are intentionally structured even when currently empty so the Elixir resolver can grow without changing public shape.

Summary

Functions

Builds a cloned seed node.

Builds seed nodes from a decoded generated Message struct.

Builds seed nodes from native graph seed records.

Builds a seed node from the current projected scene node.

Builds a seed node from a generated NodeChange struct, including initial graph resolver metadata.

Builds a cloned seed only when later resolver stages need seed metadata.

Returns true when a cloned seed carries metadata used after clone population.

Converts a seed node to an internal graph node with parsed GUIDs.

Converts a seed node back to the public projected node struct.

Types

t()

@type t() :: %Figler.Scene.Graph.Seed.Node{
  component_guid: term(),
  component_key: term(),
  component_prop_assignments: term(),
  component_prop_defs: term(),
  component_prop_refs: term(),
  derived_symbol_data: term(),
  effect_style_guid: term(),
  fill_count: term(),
  fill_style_guid: term(),
  font_family: term(),
  font_postscript: term(),
  font_size: term(),
  font_style: term(),
  grid_style_guid: term(),
  guid: term(),
  locked: term(),
  name: term(),
  native_clone_seed: term(),
  node_type: term(),
  opacity: term(),
  origin: term(),
  origin_component_key: term(),
  override_key: term(),
  parent_guid: term(),
  position: term(),
  size: term(),
  source: term(),
  stack_horizontal_padding: term(),
  stack_mode: term(),
  stack_padding_bottom: term(),
  stack_padding_right: term(),
  stack_spacing: term(),
  stack_vertical_padding: term(),
  stroke_count: term(),
  stroke_style_guid: term(),
  symbol_id: term(),
  symbol_overrides: term(),
  text: term(),
  text_style_guid: term(),
  transform: term(),
  variable_consumption: term(),
  variable_data_values: term(),
  visible: term()
}

Functions

clone(seed, clone_guid, parent_guid)

Builds a cloned seed node.

from_message(message, opts \\ [])

@spec from_message(
  Figler.Schema.Message.t() | map(),
  keyword()
) :: [t()]

Builds seed nodes from a decoded generated Message struct.

from_native_records(records)

@spec from_native_records([tuple()]) :: [t()]

Builds seed nodes from native graph seed records.

from_node(node)

@spec from_node(Figler.Scene.Node.t()) :: t()

Builds a seed node from the current projected scene node.

from_node_change(node_change)

@spec from_node_change(Figler.Schema.NodeChange.t() | map()) :: t()

Builds a seed node from a generated NodeChange struct, including initial graph resolver metadata.

graph_clone(seed, clone_guid, parent_guid)

@spec graph_clone(
  t() | nil,
  Figler.Scene.Graph.GUID.graph_guid(),
  Figler.Scene.Graph.GUID.graph_guid()
) ::
  t() | nil

Builds a cloned seed only when later resolver stages need seed metadata.

graph_clone_seed?(seed)

@spec graph_clone_seed?(t()) :: boolean()

Returns true when a cloned seed carries metadata used after clone population.

to_graph_node(seed)

@spec to_graph_node(t()) :: Figler.Scene.Node.t()

Converts a seed node to an internal graph node with parsed GUIDs.

to_node(seed)

@spec to_node(t()) :: Figler.Scene.Node.t()

Converts a seed node back to the public projected node struct.