Blender  V3.3
Functions
displist.cc File Reference
#include <cmath>
#include <cstdio>
#include <cstring>
#include "MEM_guardedalloc.h"
#include "DNA_curve_types.h"
#include "DNA_mesh_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "DNA_vfont_types.h"
#include "BLI_bitmap.h"
#include "BLI_index_range.hh"
#include "BLI_linklist.h"
#include "BLI_listbase.h"
#include "BLI_math.h"
#include "BLI_memarena.h"
#include "BLI_scanfill.h"
#include "BLI_span.hh"
#include "BLI_string.h"
#include "BLI_utildefines.h"
#include "BKE_anim_path.h"
#include "BKE_curve.h"
#include "BKE_curve_legacy_convert.hh"
#include "BKE_displist.h"
#include "BKE_geometry_set.hh"
#include "BKE_key.h"
#include "BKE_lattice.h"
#include "BKE_lib_id.h"
#include "BKE_mball.h"
#include "BKE_mball_tessellate.h"
#include "BKE_mesh.h"
#include "BKE_modifier.h"
#include "BKE_object.h"
#include "BKE_vfont.h"
#include "BLI_sys_types.h"
#include "DEG_depsgraph.h"
#include "DEG_depsgraph_query.h"

Go to the source code of this file.

Functions

static void displist_elem_free (DispList *dl)
 
void BKE_displist_free (ListBase *lb)
 
DispListBKE_displist_find (ListBase *lb, int type)
 
void BKE_displist_copy (ListBase *lbn, const ListBase *lb)
 
void BKE_displist_normals_add (ListBase *lb)
 
void BKE_displist_count (const ListBase *lb, int *totvert, int *totface, int *tottri)
 
bool BKE_displist_surfindex_get (const DispList *dl, int a, int *b, int *p1, int *p2, int *p3, int *p4)
 
static void curve_to_displist (const Curve *cu, const ListBase *nubase, const bool for_render, ListBase *r_dispbase)
 
void BKE_displist_fill (const ListBase *dispbase, ListBase *to, const float normal_proj[3], const bool flip_normal)
 
static void bevels_to_filledpoly (const Curve *cu, ListBase *dispbase)
 
static void curve_to_filledpoly (const Curve *cu, ListBase *dispbase)
 
static float displist_calc_taper (Depsgraph *depsgraph, const Scene *scene, Object *taperobj, float fac)
 
float BKE_displist_calc_taper (Depsgraph *depsgraph, const Scene *scene, Object *taperobj, int cur, int tot)
 
void BKE_displist_make_mball (Depsgraph *depsgraph, Scene *scene, Object *ob)
 
static ModifierDatacurve_get_tessellate_point (const Scene *scene, const Object *ob, const bool for_render, const bool editmode)
 
void BKE_curve_calc_modifiers_pre (Depsgraph *depsgraph, const Scene *scene, Object *ob, ListBase *source_nurb, ListBase *target_nurb, const bool for_render)
 
static bool do_curve_implicit_mesh_conversion (const Curve *curve, ModifierData *first_modifier, const Scene *scene, const ModifierMode required_mode)
 
static GeometrySet curve_calc_modifiers_post (Depsgraph *depsgraph, const Scene *scene, Object *ob, const ListBase *dispbase, const bool for_render)
 
static void displist_surf_indices (DispList *dl)
 
static GeometrySet evaluate_surface_object (Depsgraph *depsgraph, const Scene *scene, Object *ob, const bool for_render, ListBase *r_dispbase)
 
static void rotateBevelPiece (const Curve *cu, const BevPoint *bevp, const BevPoint *nbevp, const DispList *dlb, const float bev_blend, const float widfac, const float radius_factor, float **r_data)
 
static void fillBevelCap (const Nurb *nu, const DispList *dlb, const float *prev_fp, ListBase *dispbase)
 
static void calc_bevfac_segment_mapping (const BevList *bl, float bevfac, float spline_length, int *r_bev, float *r_blend)
 
static void calc_bevfac_spline_mapping (const BevList *bl, float bevfac, float spline_length, int *r_bev, float *r_blend)
 
static void calc_bevfac_mapping_default (const BevList *bl, int *r_start, float *r_firstblend, int *r_steps, float *r_lastblend)
 
static void calc_bevfac_mapping (const Curve *cu, const BevList *bl, const Nurb *nu, int *r_start, float *r_firstblend, int *r_steps, float *r_lastblend)
 
static GeometrySet evaluate_curve_type_object (Depsgraph *depsgraph, const Scene *scene, Object *ob, const bool for_render, ListBase *r_dispbase)
 
void BKE_displist_make_curveTypes (Depsgraph *depsgraph, const Scene *scene, Object *ob, const bool for_render)
 
void BKE_displist_minmax (const ListBase *dispbase, float min[3], float max[3])
 

Function Documentation

◆ bevels_to_filledpoly()

static void bevels_to_filledpoly ( const Curve cu,
ListBase dispbase 
)
static

◆ BKE_curve_calc_modifiers_pre()

void BKE_curve_calc_modifiers_pre ( Depsgraph depsgraph,
const Scene scene,
Object ob,
ListBase source_nurb,
ListBase target_nurb,
const bool  for_render 
)

◆ BKE_displist_calc_taper()

float BKE_displist_calc_taper ( Depsgraph depsgraph,
const Scene scene,
Object taperobj,
int  cur,
int  tot 
)

Definition at line 633 of file displist.cc.

References depsgraph, displist_calc_taper(), float(), and scene.

◆ BKE_displist_copy()

void BKE_displist_copy ( ListBase lbn,
const ListBase lb 
)

◆ BKE_displist_count()

void BKE_displist_count ( const ListBase lb,
int *  totvert,
int *  totface,
int *  tottri 
)

Definition at line 173 of file displist.cc.

References DL_CYCL_U, DL_CYCL_V, DL_INDEX3, DL_INDEX4, DL_POLY, DL_SEGM, DL_SURF, and LISTBASE_FOREACH.

◆ BKE_displist_fill()

void BKE_displist_fill ( const ListBase dispbase,
ListBase to,
const float  normal_proj[3],
const bool  flip_normal 
)

◆ BKE_displist_find()

DispList* BKE_displist_find ( ListBase lb,
int  type 
)

◆ BKE_displist_free()

void BKE_displist_free ( ListBase lb)

◆ BKE_displist_make_curveTypes()

void BKE_displist_make_curveTypes ( Depsgraph depsgraph,
const Scene scene,
Object ob,
const bool  for_render 
)

◆ BKE_displist_make_mball()

void BKE_displist_make_mball ( Depsgraph depsgraph,
Scene scene,
Object ob 
)

◆ BKE_displist_minmax()

void BKE_displist_minmax ( const ListBase dispbase,
float  min[3],
float  max[3] 
)

Definition at line 1515 of file displist.cc.

References DL_INDEX3, DL_INDEX4, ELEM, LISTBASE_FOREACH, max, min, minmax_v3v3_v3(), and zero_v3().

◆ BKE_displist_normals_add()

void BKE_displist_normals_add ( ListBase lb)

◆ BKE_displist_surfindex_get()

bool BKE_displist_surfindex_get ( const DispList dl,
int  a,
int *  b,
int *  p1,
int *  p2,
int *  p3,
int *  p4 
)

◆ calc_bevfac_mapping()

static void calc_bevfac_mapping ( const Curve cu,
const BevList bl,
const Nurb nu,
int *  r_start,
float r_firstblend,
int *  r_steps,
float r_lastblend 
)
static

◆ calc_bevfac_mapping_default()

static void calc_bevfac_mapping_default ( const BevList bl,
int *  r_start,
float r_firstblend,
int *  r_steps,
float r_lastblend 
)
static

Definition at line 1163 of file displist.cc.

References BevList::nr.

Referenced by calc_bevfac_mapping(), and evaluate_curve_type_object().

◆ calc_bevfac_segment_mapping()

static void calc_bevfac_segment_mapping ( const BevList bl,
float  bevfac,
float  spline_length,
int *  r_bev,
float r_blend 
)
static

Definition at line 1115 of file displist.cc.

References BevList::nr, BevList::segbevcount, and BevList::seglen.

Referenced by calc_bevfac_mapping().

◆ calc_bevfac_spline_mapping()

static void calc_bevfac_spline_mapping ( const BevList bl,
float  bevfac,
float  spline_length,
int *  r_bev,
float r_blend 
)
static

Definition at line 1141 of file displist.cc.

References BevList::bevpoints, len, BevList::nr, and BevPoint::offset.

Referenced by calc_bevfac_mapping().

◆ curve_calc_modifiers_post()

static GeometrySet curve_calc_modifiers_post ( Depsgraph depsgraph,
const Scene scene,
Object ob,
const ListBase dispbase,
const bool  for_render 
)
static

◆ curve_get_tessellate_point()

static ModifierData* curve_get_tessellate_point ( const Scene scene,
const Object ob,
const bool  for_render,
const bool  editmode 
)
static

◆ curve_to_displist()

static void curve_to_displist ( const Curve cu,
const ListBase nubase,
const bool  for_render,
ListBase r_dispbase 
)
static

◆ curve_to_filledpoly()

static void curve_to_filledpoly ( const Curve cu,
ListBase dispbase 
)
static

◆ displist_calc_taper()

static float displist_calc_taper ( Depsgraph depsgraph,
const Scene scene,
Object taperobj,
float  fac 
)
static

◆ displist_elem_free()

static void displist_elem_free ( DispList dl)
static

Definition at line 53 of file displist.cc.

References DispList::index, MEM_freeN, DispList::nors, and DispList::verts.

Referenced by BKE_displist_free().

◆ displist_surf_indices()

static void displist_surf_indices ( DispList dl)
static

◆ do_curve_implicit_mesh_conversion()

static bool do_curve_implicit_mesh_conversion ( const Curve curve,
ModifierData first_modifier,
const Scene scene,
const ModifierMode  required_mode 
)
static
Returns
True if the deformed curve control point data should be implicitly converted directly to a mesh, or false if it can be left as curve data via CurveEval.

Definition at line 790 of file displist.cc.

References Curve::bevel_mode, Curve::bevel_radius, Curve::bevobj, BKE_modifier_is_enabled(), CU_BEV_MODE_OBJECT, CU_DO_2DFILL, CU_FAST, curve, eModifierType_Nodes, Curve::extrude, Curve::flag, ModifierData::next, scene, and ModifierData::type.

Referenced by curve_calc_modifiers_post().

◆ evaluate_curve_type_object()

static GeometrySet evaluate_curve_type_object ( Depsgraph depsgraph,
const Scene scene,
Object ob,
const bool  for_render,
ListBase r_dispbase 
)
static

Definition at line 1251 of file displist.cc.

References Freestyle::a, CurveCache::bev, Curve::bevfac1, Curve::bevfac2, BevList::bevpoints, BKE_anim_path_calc_data(), BKE_curve_bevel_make(), BKE_curve_bevelList_make(), BKE_curve_calc_modifiers_pre(), BKE_curve_nurbs_get_for_read(), BKE_displist_fill(), BKE_displist_free(), BKE_nurbList_duplicate(), BKE_vfont_to_curve_nubase(), BLI_addtail(), BLI_assert, BLI_listbase_is_empty(), calc_bevfac_mapping(), calc_bevfac_mapping_default(), DispList::charidx, DispList::col, copy_v3_v3(), BevPoint::cosa, CU_FILL_CAPS, CU_MAP_TAPER, CU_NURB_CYCLIC, CU_PATH, CU_TAPER_RADIUS_ADD, CU_TAPER_RADIUS_MULTIPLY, Object_Runtime::curve_cache, curve_calc_modifiers_post(), curve_to_displist(), curve_to_filledpoly(), DAG_EVAL_NEED_CURVE_PATH, data, Object::data, CurveCache::deformed_nurbs, DEG_get_eval_flags_for_id(), depsgraph, BevPoint::dir, displist_calc_taper(), displist_surf_indices(), DL_BACK_CURVE, DL_CYCL_U, DL_CYCL_V, DL_FRONT_CURVE, DL_POLY, DL_SEGM, DL_SURF, ELEM, fabsf, fillBevelCap(), ListBase::first, DispList::flag, Curve::flag, float(), FO_EDIT, Object::id, if(), len, LISTBASE_FOREACH, MEM_mallocN, negate_v3_v3(), BevList::next, DispList::nr, BevList::nr, OB_CURVES_LEGACY, OB_FONT, Curve::offset, DispList::parts, BevList::poly, BevPoint::radius, rotateBevelPiece(), DispList::rt, Object::runtime, scene, BevPoint::sina, steps, Curve::taper_radius_mode, Curve::taperobj, DispList::type, Object::type, BevPoint::vec, and DispList::verts.

Referenced by BKE_displist_make_curveTypes().

◆ evaluate_surface_object()

static GeometrySet evaluate_surface_object ( Depsgraph depsgraph,
const Scene scene,
Object ob,
const bool  for_render,
ListBase r_dispbase 
)
static

◆ fillBevelCap()

static void fillBevelCap ( const Nurb nu,
const DispList dlb,
const float prev_fp,
ListBase dispbase 
)
static

◆ rotateBevelPiece()

static void rotateBevelPiece ( const Curve cu,
const BevPoint bevp,
const BevPoint nbevp,
const DispList dlb,
const float  bev_blend,
const float  widfac,
const float  radius_factor,
float **  r_data 
)
static