Blender V4.3
LineartEdge Struct Reference

#include <MOD_lineart.hh>

Public Attributes

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

Detailed Description

Definition at line 171 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 193 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 182 of file MOD_lineart.hh.

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

◆ intersection_mask

uint8_t LineartEdge::intersection_mask

Definition at line 183 of file MOD_lineart.hh.

Referenced by lineart_line_get_connected().

◆ min_occ

int8_t LineartEdge::min_occ

Definition at line 179 of file MOD_lineart.hh.

◆ object_ref

struct 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 208 of file MOD_lineart.hh.

Referenced by lineart_geometry_object_load(), and lineart_line_get_connected().

◆ segments

◆ t1

struct 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 176 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 199 of file MOD_lineart.hh.

◆ v1

◆ v2


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