Blender V5.0
LineartEdge Struct Reference

#include <MOD_lineart.hh>

Public Attributes

LineartVertv1
LineartVertv2
LineartTrianglet1
LineartTrianglet2
ListBase segments
int8_t min_occ
uint16_t flags
uint8_t intersection_mask
uint64_t edge_identifier
uint64_t target_reference
Objectobject_ref

Detailed Description

Definition at line 172 of file MOD_lineart.hh.

Member Data Documentation

◆ edge_identifier

uint64_t LineartEdge::edge_identifier

Matches the shadow result, used to determine whether a line is in the shadow or not. edge_identifier usages:

  • Intersection lines: ((e->t1->target_reference << 32) | e->t2->target_reference);
  • Other lines: LRT_EDGE_IDENTIFIER(obi, e);
  • After shadow calculation: (search the shadow result and set reference to that);

Definition at line 194 of file MOD_lineart.hh.

Referenced by lineart_geometry_object_load(), and lineart_shadow_cast_generate_edges().

◆ flags

uint16_t LineartEdge::flags

Also for line type determination on chaining.

Definition at line 183 of file MOD_lineart.hh.

Referenced by lineart_geometry_object_load(), lineart_line_get_connected(), lineart_triangle_intersect_in_bounding_area(), and MOD_lineart_chain_feature_lines().

◆ intersection_mask

uint8_t LineartEdge::intersection_mask

Definition at line 184 of file MOD_lineart.hh.

Referenced by lineart_line_get_connected().

◆ min_occ

int8_t LineartEdge::min_occ

Definition at line 180 of file MOD_lineart.hh.

◆ object_ref

Object* LineartEdge::object_ref

Still need this entry because culled lines will not add to object LineartElementLinkNode node (known as eln internally).

TODO: If really need more savings, we can allocate this in a "extended" way too, but we need another bit in flags to be able to show the difference.

Definition at line 209 of file MOD_lineart.hh.

Referenced by lineart_geometry_object_load(), and lineart_line_get_connected().

◆ segments

◆ t1

LineartTriangle* LineartEdge::t1

These two variables are also used to specify original edge and segment during 3rd stage reprojection, So we can easily find out the line which results come from.

Definition at line 177 of file MOD_lineart.hh.

Referenced by lineart_edge_from_triangle(), lineart_geometry_object_load(), lineart_shadow_cast_generate_edges(), lineart_shadow_create_shadow_edge_array(), and MOD_lineart_chain_feature_lines().

◆ t2

◆ target_reference

uint64_t LineartEdge::target_reference
  • Light contour: original_e->t1->target_reference | original_e->t2->target_reference.
  • Cast shadow: triangle_projected_onto->target_reference.

Definition at line 200 of file MOD_lineart.hh.

◆ v1

◆ v2


The documentation for this struct was generated from the following file: