Blender  V3.3
Public Attributes | List of all members
LineartEdge Struct Reference

#include <MOD_lineart.h>

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 153 of file MOD_lineart.h.

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 174 of file MOD_lineart.h.

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 164 of file MOD_lineart.h.

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 165 of file MOD_lineart.h.

Referenced by lineart_line_get_connected().

◆ min_occ

int8_t LineartEdge::min_occ

Definition at line 161 of file MOD_lineart.h.

◆ 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 187 of file MOD_lineart.h.

Referenced by lineart_geometry_object_load(), and lineart_line_get_connected().

◆ segments

ListBase LineartEdge::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 158 of file MOD_lineart.h.

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

struct LineartTriangle * LineartEdge::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 178 of file MOD_lineart.h.

◆ v1

struct LineartVert* LineartEdge::v1

◆ v2

struct LineartVert * LineartEdge::v2

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