Blender  V3.3
Macros | Functions
lineart_intern.h File Reference
#include "BLI_linklist.h"
#include "BLI_listbase.h"
#include "BLI_math.h"
#include "BLI_threads.h"
#include "DNA_lineart_types.h"
#include <math.h>
#include <string.h>

Go to the source code of this file.

Macros

#define LRT_ITER_ALL_LINES_BEGIN
 
#define LRT_ITER_ALL_LINES_NEXT   ; /* Doesn't do anything now with new array setup. */
 
#define LRT_ITER_ALL_LINES_END
 
#define LRT_BOUND_AREA_CROSSES(b1, b2)    ((b1)[0] < (b2)[1] && (b1)[1] > (b2)[0] && (b1)[3] < (b2)[2] && (b1)[2] > (b2)[3])
 
#define LRT_BA_ROWS   10
 
#define LRT_EDGE_BA_MARCHING_BEGIN(fb1, fb2)
 
#define LRT_EDGE_BA_MARCHING_NEXT(fb1, fb2)
 
#define LRT_EDGE_BA_MARCHING_END
 

Functions

voidlineart_list_append_pointer_pool (ListBase *h, struct LineartStaticMemPool *smp, void *data)
 
voidlineart_list_append_pointer_pool_sized (ListBase *h, struct LineartStaticMemPool *smp, void *data, int size)
 
voidlineart_list_append_pointer_pool_thread (ListBase *h, struct LineartStaticMemPool *smp, void *data)
 
voidlineart_list_append_pointer_pool_sized_thread (ListBase *h, LineartStaticMemPool *smp, void *data, int size)
 
voidlist_push_pointer_static (ListBase *h, struct LineartStaticMemPool *smp, void *p)
 
voidlist_push_pointer_static_sized (ListBase *h, struct LineartStaticMemPool *smp, void *p, int size)
 
voidlineart_list_pop_pointer_no_free (ListBase *h)
 
void lineart_list_remove_pointer_item_no_free (ListBase *h, LinkData *lip)
 
struct LineartStaticMemPoolNodelineart_mem_new_static_pool (struct LineartStaticMemPool *smp, size_t size)
 
voidlineart_mem_acquire (struct LineartStaticMemPool *smp, size_t size)
 
voidlineart_mem_acquire_thread (struct LineartStaticMemPool *smp, size_t size)
 
void lineart_mem_destroy (struct LineartStaticMemPool *smp)
 
void lineart_prepend_pool (LinkNode **first, struct LineartStaticMemPool *smp, void *link)
 
void lineart_matrix_ortho_44d (double(*mProjection)[4], double xMin, double xMax, double yMin, double yMax, double zMin, double zMax)
 
void lineart_matrix_perspective_44d (double(*mProjection)[4], double fFov_rad, double fAspect, double zMin, double zMax)
 
int lineart_count_intersection_segment_count (struct LineartData *ld)
 
void lineart_count_and_print_render_buffer_memory (struct LineartData *ld)
 
void lineart_main_occlusion_begin (struct LineartData *ld)
 
void lineart_main_cull_triangles (struct LineartData *ld, bool clip_far)
 
void lineart_main_free_adjacent_data (struct LineartData *ld)
 
void lineart_main_perspective_division (struct LineartData *ld)
 
void lineart_main_discard_out_of_frame_edges (struct LineartData *ld)
 
void lineart_main_load_geometries (struct Depsgraph *depsgraph, struct Scene *scene, struct Object *camera, struct LineartData *ld, bool allow_duplicates, bool do_shadow_casting, struct ListBase *shadow_elns)
 
void lineart_main_get_view_vector (struct LineartData *ld)
 
void lineart_main_bounding_area_make_initial (struct LineartData *ld)
 
void lineart_main_bounding_areas_connect_post (struct LineartData *ld)
 
void lineart_main_clear_linked_edges (struct LineartData *ld)
 
void lineart_main_link_lines (struct LineartData *ld)
 
void lineart_main_add_triangles (struct LineartData *ld)
 
bool lineart_main_try_generate_shadow (struct Depsgraph *depsgraph, struct Scene *scene, struct LineartData *original_ld, struct LineartGpencilModifierData *lmd, struct LineartStaticMemPool *shadow_data_pool, struct LineartElementLinkNode **r_veln, struct LineartElementLinkNode **r_eeln, struct ListBase *r_calculated_edges_eln_list, struct LineartData **r_shadow_ld_if_reproject)
 
void lineart_main_make_enclosed_shapes (struct LineartData *ld, struct LineartData *shadow_ld)
 
void lineart_main_transform_and_add_shadow (struct LineartData *ld, struct LineartElementLinkNode *veln, struct LineartElementLinkNode *eeln)
 
LineartElementLinkNodelineart_find_matching_eln (struct ListBase *shadow_elns, int obindex)
 
LineartElementLinkNodelineart_find_matching_eln_obj (struct ListBase *elns, struct Object *ob)
 
LineartEdgelineart_find_matching_edge (struct LineartElementLinkNode *shadow_eln, uint64_t edge_identifier)
 
void lineart_register_shadow_cuts (struct LineartData *ld, struct LineartEdge *e, struct LineartEdge *shadow_edge)
 
void lineart_register_intersection_shadow_cuts (struct LineartData *ld, struct ListBase *shadow_elns)
 
bool lineart_edge_from_triangle (const struct LineartTriangle *tri, const struct LineartEdge *e, bool allow_overlapping_edges)
 
LineartBoundingArealineart_edge_first_bounding_area (struct LineartData *ld, double *fbcoord1, double *fbcoord2)
 
LineartBoundingArealineart_bounding_area_next (struct LineartBoundingArea *_this, double *fbcoord1, double *fbcoord2, double x, double y, double k, int positive_x, int positive_y, double *next_x, double *next_y)
 
void lineart_edge_cut (struct LineartData *ld, struct LineartEdge *e, double start, double end, uchar material_mask_bits, uchar mat_occlusion, uint32_t shadow_bits)
 
void lineart_add_edge_to_array (struct LineartPendingEdges *pe, struct LineartEdge *e)
 
void lineart_finalize_object_edge_array_reserve (struct LineartPendingEdges *pe, int count)
 
void lineart_destroy_render_data_keep_init (struct LineartData *ld)
 
void lineart_sort_adjacent_items (struct LineartAdjacentEdge *ai, int length)
 

Macro Definition Documentation

◆ LRT_BA_ROWS

#define LRT_BA_ROWS   10

Definition at line 86 of file lineart_intern.h.

◆ LRT_BOUND_AREA_CROSSES

#define LRT_BOUND_AREA_CROSSES (   b1,
  b2 
)     ((b1)[0] < (b2)[1] && (b1)[1] > (b2)[0] && (b1)[3] < (b2)[2] && (b1)[2] > (b2)[3])

Definition at line 81 of file lineart_intern.h.

◆ LRT_EDGE_BA_MARCHING_BEGIN

#define LRT_EDGE_BA_MARCHING_BEGIN (   fb1,
  fb2 
)
Value:
double x = fb1[0], y = fb1[1]; \
LineartBoundingArea *ba = lineart_edge_first_bounding_area(ld, fb1, fb2); \
LineartBoundingArea *nba = ba; \
double k = (fb2[1] - fb1[1]) / (fb2[0] - fb1[0] + 1e-30); \
int positive_x = (fb2[0] - fb1[0]) > 0 ? 1 : (fb2[0] == fb1[0] ? 0 : -1); \
int positive_y = (fb2[1] - fb1[1]) > 0 ? 1 : (fb2[1] == fb1[1] ? 0 : -1); \
while (nba)
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint y
ATTR_WARN_UNUSED_RESULT const BMVert const BMEdge * e
LineartBoundingArea * lineart_edge_first_bounding_area(struct LineartData *ld, double *fbcoord1, double *fbcoord2)
Definition: lineart_cpu.c:4698

Definition at line 88 of file lineart_intern.h.

◆ LRT_EDGE_BA_MARCHING_END

#define LRT_EDGE_BA_MARCHING_END

Definition at line 101 of file lineart_intern.h.

◆ LRT_EDGE_BA_MARCHING_NEXT

#define LRT_EDGE_BA_MARCHING_NEXT (   fb1,
  fb2 
)
Value:
/* Marching along `e->v1` to `e->v2`, searching each possible bounding areas it may touch. */ \
nba = lineart_bounding_area_next(nba, fb1, fb2, x, y, k, positive_x, positive_y, &x, &y);
LineartBoundingArea * lineart_bounding_area_next(struct LineartBoundingArea *_this, double *fbcoord1, double *fbcoord2, double x, double y, double k, int positive_x, int positive_y, double *next_x, double *next_y)
Definition: lineart_cpu.c:4732

Definition at line 97 of file lineart_intern.h.

◆ LRT_ITER_ALL_LINES_BEGIN

#define LRT_ITER_ALL_LINES_BEGIN
Value:
{ \
LineartEdge *e; \
for (int __i = 0; __i < ld->pending_edges.next; __i++) { \
e = ld->pending_edges.array[__i];

Definition at line 68 of file lineart_intern.h.

◆ LRT_ITER_ALL_LINES_END

#define LRT_ITER_ALL_LINES_END
Value:
} \
}
#define LRT_ITER_ALL_LINES_NEXT

Definition at line 76 of file lineart_intern.h.

◆ LRT_ITER_ALL_LINES_NEXT

#define LRT_ITER_ALL_LINES_NEXT   ; /* Doesn't do anything now with new array setup. */

Definition at line 74 of file lineart_intern.h.

Function Documentation

◆ lineart_add_edge_to_array()

void lineart_add_edge_to_array ( struct LineartPendingEdges pe,
struct LineartEdge e 
)

◆ lineart_bounding_area_next()

LineartBoundingArea* lineart_bounding_area_next ( LineartBoundingArea this,
double fbcoord1,
double fbcoord2,
double  x,
double  y,
double  k,
int  positive_x,
int  positive_y,
double next_x,
double next_y 
)

This march along one render line in image space and get the next bounding area the line is crossing.

Definition at line 4732 of file lineart_cpu.c.

References LineartBoundingArea::b, usdtokens::b(), l, LineartBoundingArea::l, LISTBASE_FOREACH, MIN2, LineartBoundingArea::r, r, ratiod(), LineartBoundingArea::u, x, and y.

◆ lineart_count_and_print_render_buffer_memory()

void lineart_count_and_print_render_buffer_memory ( struct LineartData ld)

◆ lineart_count_intersection_segment_count()

int lineart_count_intersection_segment_count ( struct LineartData ld)

◆ lineart_destroy_render_data_keep_init()

void lineart_destroy_render_data_keep_init ( struct LineartData ld)

◆ lineart_edge_cut()

void lineart_edge_cut ( LineartData ld,
LineartEdge e,
double  start,
double  end,
uchar  material_mask_bits,
uchar  mat_occlusion,
uint32_t  shadow_bits 
)

◆ lineart_edge_first_bounding_area()

LineartBoundingArea* lineart_edge_first_bounding_area ( LineartData ld,
double fbcoord1,
double fbcoord2 
)

This function gets the tile for the point e->v1, and later use lineart_bounding_area_next() to get next along the way.

Definition at line 4698 of file lineart_cpu.c.

References data, interp_v2_v2v2_db(), LB, lineart_get_bounding_area(), lineart_intersect_seg_seg(), r, and RB.

◆ lineart_edge_from_triangle()

bool lineart_edge_from_triangle ( const struct LineartTriangle tri,
const struct LineartEdge e,
bool  allow_overlapping_edges 
)

◆ lineart_finalize_object_edge_array_reserve()

void lineart_finalize_object_edge_array_reserve ( struct LineartPendingEdges pe,
int  count 
)

◆ lineart_find_matching_edge()

LineartEdge* lineart_find_matching_edge ( struct LineartElementLinkNode shadow_eln,
uint64_t  edge_identifier 
)

◆ lineart_find_matching_eln()

LineartElementLinkNode* lineart_find_matching_eln ( struct ListBase shadow_elns,
int  obindex 
)

◆ lineart_find_matching_eln_obj()

LineartElementLinkNode* lineart_find_matching_eln_obj ( struct ListBase elns,
struct Object ob 
)

Definition at line 1054 of file lineart_chain.c.

References LISTBASE_FOREACH, and NULL.

Referenced by MOD_lineart_finalize_chains().

◆ lineart_list_append_pointer_pool()

void* lineart_list_append_pointer_pool ( ListBase h,
struct LineartStaticMemPool smp,
void data 
)

◆ lineart_list_append_pointer_pool_sized()

void* lineart_list_append_pointer_pool_sized ( ListBase h,
struct LineartStaticMemPool smp,
void data,
int  size 
)

◆ lineart_list_append_pointer_pool_sized_thread()

void* lineart_list_append_pointer_pool_sized_thread ( ListBase h,
LineartStaticMemPool smp,
void data,
int  size 
)

◆ lineart_list_append_pointer_pool_thread()

void* lineart_list_append_pointer_pool_thread ( ListBase h,
struct LineartStaticMemPool smp,
void data 
)

◆ lineart_list_pop_pointer_no_free()

void* lineart_list_pop_pointer_no_free ( ListBase h)

Definition at line 75 of file lineart_util.c.

References BLI_pophead(), LinkData::data, and NULL.

◆ lineart_list_remove_pointer_item_no_free()

void lineart_list_remove_pointer_item_no_free ( ListBase h,
LinkData lip 
)

Definition at line 86 of file lineart_util.c.

References BLI_remlink().

Referenced by lineart_bounding_areas_connect_new().

◆ lineart_main_add_triangles()

void lineart_main_add_triangles ( LineartData ld)

◆ lineart_main_bounding_area_make_initial()

void lineart_main_bounding_area_make_initial ( struct LineartData ld)

◆ lineart_main_bounding_areas_connect_post()

void lineart_main_bounding_areas_connect_post ( struct LineartData ld)

◆ lineart_main_clear_linked_edges()

void lineart_main_clear_linked_edges ( struct LineartData ld)

◆ lineart_main_cull_triangles()

void lineart_main_cull_triangles ( LineartData ld,
bool  clip_far 
)

◆ lineart_main_discard_out_of_frame_edges()

void lineart_main_discard_out_of_frame_edges ( struct LineartData ld)

◆ lineart_main_free_adjacent_data()

void lineart_main_free_adjacent_data ( LineartData ld)

Adjacent data is only used during the initial stages of computing. So we can free it using this function when it is not needed anymore.

Definition at line 1346 of file lineart_cpu.c.

References BLI_pophead(), LinkData::data, LineartData::geom, LineartTriangle::intersecting_verts, LISTBASE_FOREACH, MEM_freeN, NULL, LineartData::sizeof_triangle, LineartData::_geom::triangle_adjacent_pointers, and LineartData::_geom::triangle_buffer_pointers.

Referenced by lineart_main_try_generate_shadow(), and MOD_lineart_compute_feature_lines().

◆ lineart_main_get_view_vector()

void lineart_main_get_view_vector ( LineartData ld)

◆ lineart_main_link_lines()

void lineart_main_link_lines ( LineartData ld)

◆ lineart_main_load_geometries()

void lineart_main_load_geometries ( struct Depsgraph depsgraph,
struct Scene scene,
struct Object camera,
struct LineartData ld,
bool  allow_duplicates,
bool  do_shadow_casting,
struct ListBase shadow_elns 
)

Definition at line 2524 of file lineart_cpu.c.

References BKE_camera_sensor_fit(), BKE_camera_sensor_size(), BKE_object_visibility(), BLI_listbase_clear(), BLI_task_pool_create(), BLI_task_pool_free(), BLI_task_pool_push(), BLI_task_pool_work_and_wait(), LineartData::_conf::cam_obmat, CAM_ORTHO, CAM_PERSP, camera, CAMERA_SENSOR_FIT_HOR, CAMERA_SENSOR_FIT_VERT, Camera::clip_end, Camera::clip_start, LineartData::conf, copy_m4_m4_db(), DAG_EVAL_RENDER, DEG_get_evaluated_object(), DEG_get_mode(), DEG_ITER_OBJECT_FLAG_DUPLI, DEG_ITER_OBJECT_FLAG_LINKED_DIRECTLY, DEG_ITER_OBJECT_FLAG_LINKED_VIA_SET, DEG_ITER_OBJECT_FLAG_VISIBLE, DEG_OBJECT_ITER_BEGIN, DEG_OBJECT_ITER_END, depsgraph, double(), ELEM, focallength_to_fov(), G, LineartData::geom, LineartData::h, invert_m4_m4(), LineartObjectLoadTaskInfo::ld, Camera::lens, lineart_finalize_object_edge_array(), lineart_finalize_object_edge_array_reserve(), lineart_matrix_ortho_44d(), lineart_matrix_perspective_44d(), lineart_mem_acquire(), lineart_object_load_single_instance(), lineart_object_load_worker(), mul_m4db_m4db_m4fl_uniq(), NULL, OB_CURVES_LEGACY, OB_FONT, OB_SURF, OB_VISIBLE_SELF, Object::obmat, Camera::ortho_scale, LineartData::_conf::overscan, LineartData::pending_edges, PIL_check_seconds_timer(), LineartData::render_data_pool, result, scene, Camera::sensor_fit, Camera::sensor_x, Camera::sensor_y, LineartObjectLoadTaskInfo::shadow_elns, TASK_PRIORITY_HIGH, LineartData::thread_count, LineartObjectLoadTaskInfo::thread_id, LineartData::_geom::triangle_buffer_pointers, Camera::type, unit_m4_db(), v, LineartData::_geom::vertex_buffer_pointers, view, LineartData::_conf::view, LineartData::_conf::view_projection, w(), and LineartData::w.

Referenced by lineart_main_try_generate_shadow(), and MOD_lineart_compute_feature_lines().

◆ lineart_main_make_enclosed_shapes()

void lineart_main_make_enclosed_shapes ( struct LineartData ld,
struct LineartData shadow_ld 
)

◆ lineart_main_occlusion_begin()

void lineart_main_occlusion_begin ( LineartData ld)

◆ lineart_main_perspective_division()

void lineart_main_perspective_division ( struct LineartData ld)

◆ lineart_main_transform_and_add_shadow()

void lineart_main_transform_and_add_shadow ( struct LineartData ld,
struct LineartElementLinkNode veln,
struct LineartElementLinkNode eeln 
)

◆ lineart_main_try_generate_shadow()

bool lineart_main_try_generate_shadow ( struct Depsgraph depsgraph,
struct Scene scene,
struct LineartData original_ld,
struct LineartGpencilModifierData lmd,
struct LineartStaticMemPool shadow_data_pool,
struct LineartElementLinkNode **  r_veln,
struct LineartElementLinkNode **  r_eeln,
struct ListBase r_calculated_edges_eln_list,
struct LineartData **  r_shadow_ld_if_reproject 
)

Definition at line 1119 of file lineart_shadow.c.

References LineartData::_conf::allow_duplicated_types, BLI_spin_init(), LineartData::_conf::cam_is_persp, LineartData::_conf::cam_is_persp_secondary, LineartData::_conf::cam_obmat, LineartData::_conf::cam_obmat_secondary, LineartData::_conf::camera_pos, LineartData::_conf::camera_pos_secondary, LineartData::conf, copy_m4_m4(), copy_m4_m4_db(), copy_v3_v3_db(), copy_v3db_v3fl(), Object::data, DEG2RAD, depsgraph, LineartData::_conf::do_shadow_cast, LineartData::edge_data_pool, LineartData::_conf::far_clip, ListBase::first, LineartGpencilModifierData::flags, G, LineartData::geom, LineartData::h, if(), invert_m4_m4(), LA_SUN, LineartGpencilModifierData::light_contour_object, LineartData::_geom::line_buffer_pointers, lineart_destroy_render_data_keep_init(), lineart_main_add_triangles(), lineart_main_bounding_area_make_initial(), lineart_main_bounding_areas_connect_post(), lineart_main_cull_triangles(), lineart_main_discard_out_of_frame_edges(), lineart_main_free_adjacent_data(), lineart_main_get_view_vector(), lineart_main_link_lines(), lineart_main_load_geometries(), lineart_main_occlusion_begin(), lineart_main_perspective_division(), lineart_matrix_ortho_44d(), lineart_matrix_perspective_44d(), lineart_shadow_cast(), lineart_shadow_cast_generate_edges(), LineartData::lock_cuts, LineartStaticMemPool::lock_mem, LineartData::lock_task, LRT_ALLOW_DUPLI_OBJECTS, LRT_TILE_RECURSIVE_ORTHO, LRT_TILE_RECURSIVE_PERSPECTIVE, LineartData::_conf::max_occlusion_level, MEM_callocN, MEM_freeN, mul_m4db_m4db_m4fl_uniq(), LineartData::_conf::near_clip, NULL, OB_LAMP, Object::obmat, PIL_check_seconds_timer(), LineartData::qtree, LineartData::_qtree::recursive_level, LineartData::render_data_pool, result, scene, LineartGpencilModifierData::shadow_camera_far, LineartGpencilModifierData::shadow_camera_near, LineartGpencilModifierData::shadow_camera_size, LineartData::shadow_data_pool, LineartData::_conf::shadow_enclose_shapes, LineartData::_conf::shadow_selection, Light::type, Object::type, unit_m4_db(), LineartData::_conf::use_back_face_culling, LineartData::_conf::use_contour, LineartData::_conf::use_contour_secondary, LineartData::_conf::use_crease, LineartData::_conf::use_edge_marks, LineartData::_conf::use_intersections, LineartData::_conf::use_light_contour, LineartData::_conf::use_loose, LineartData::_conf::use_material, LineartData::_conf::use_shadow, LineartData::_geom::vertex_buffer_pointers, view, LineartData::_conf::view, LineartData::_conf::view_projection, and LineartData::w.

Referenced by MOD_lineart_compute_feature_lines().

◆ lineart_matrix_ortho_44d()

void lineart_matrix_ortho_44d ( double(*)  mProjection[4],
double  xMin,
double  xMax,
double  yMin,
double  yMax,
double  zMin,
double  zMax 
)

Definition at line 189 of file lineart_util.c.

References unit_m4_db().

Referenced by lineart_main_load_geometries(), and lineart_main_try_generate_shadow().

◆ lineart_matrix_perspective_44d()

void lineart_matrix_perspective_44d ( double(*)  mProjection[4],
double  fFov_rad,
double  fAspect,
double  zMin,
double  zMax 
)

Definition at line 157 of file lineart_util.c.

References KDL::tan(), and unit_m4_db().

Referenced by lineart_main_load_geometries(), and lineart_main_try_generate_shadow().

◆ lineart_mem_acquire()

void* lineart_mem_acquire ( struct LineartStaticMemPool smp,
size_t  size 
)

◆ lineart_mem_acquire_thread()

void* lineart_mem_acquire_thread ( struct LineartStaticMemPool smp,
size_t  size 
)

◆ lineart_mem_destroy()

void lineart_mem_destroy ( struct LineartStaticMemPool smp)

◆ lineart_mem_new_static_pool()

struct LineartStaticMemPoolNode* lineart_mem_new_static_pool ( struct LineartStaticMemPool smp,
size_t  size 
)

◆ lineart_prepend_pool()

void lineart_prepend_pool ( LinkNode **  first,
struct LineartStaticMemPool smp,
void link 
)

Definition at line 147 of file lineart_util.c.

References lineart_mem_acquire_thread(), LinkNode::link, and LinkNode::next.

◆ lineart_register_intersection_shadow_cuts()

void lineart_register_intersection_shadow_cuts ( struct LineartData ld,
struct ListBase shadow_elns 
)

◆ lineart_register_shadow_cuts()

void lineart_register_shadow_cuts ( struct LineartData ld,
struct LineartEdge e,
struct LineartEdge shadow_edge 
)

◆ lineart_sort_adjacent_items()

void lineart_sort_adjacent_items ( struct LineartAdjacentEdge ai,
int  length 
)

◆ list_push_pointer_static()

void* list_push_pointer_static ( ListBase h,
struct LineartStaticMemPool smp,
void p 
)

◆ list_push_pointer_static_sized()

void* list_push_pointer_static_sized ( ListBase h,
struct LineartStaticMemPool smp,
void p,
int  size 
)