Blender V4.3
BKE_displist.h
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2001-2002 NaN Holding BV. All rights reserved.
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
5#pragma once
6
12#ifdef __cplusplus
13extern "C" {
14#endif
15
17enum {
26 // DL_VERTCOL = 6, /* UNUSED */
29};
30
32enum {
34 DL_CYCL_U = (1 << 0),
35 DL_CYCL_V = (1 << 1),
36
37 DL_FRONT_CURVE = (1 << 2),
38 DL_BACK_CURVE = (1 << 3),
39};
40
41/* prototypes */
42
43struct Depsgraph;
44struct ListBase;
45struct Object;
46struct Scene;
47
48/* Used for curves, nurbs, meta-balls. */
49typedef struct DispList {
50 struct DispList *next, *prev;
51 short type, flag;
52 int parts, nr;
53 short col, rt; /* Currently only used for smooth flag. */
54 float *verts, *nors;
55 int *index;
57 int totindex; /* indexed array drawing surfaces */
59
60DispList *BKE_displist_find(struct ListBase *lb, int type);
61void BKE_displist_free(struct ListBase *lb);
62
64 const struct Scene *scene,
65 struct Object *ob,
66 bool for_render);
67
69 const struct Scene *scene,
70 struct Object *ob,
71 struct ListBase *source_nurb,
72 struct ListBase *target_nurb,
73 bool for_render);
75 const struct DispList *dl, int a, int *b, int *p1, int *p2, int *p3, int *p4);
76
83void BKE_displist_fill(const struct ListBase *dispbase,
84 struct ListBase *to,
85 const float normal_proj[3],
86 bool flip_normal);
87
88float BKE_displist_calc_taper(struct Depsgraph *depsgraph,
89 const struct Scene *scene,
90 struct Object *taperobj,
91 int cur,
92 int tot);
93
94void BKE_displist_minmax(const struct ListBase *dispbase, float min[3], float max[3]);
95
96#ifdef __cplusplus
97}
98#endif
void BKE_curve_calc_modifiers_pre(struct Depsgraph *depsgraph, const struct Scene *scene, struct Object *ob, struct ListBase *source_nurb, struct ListBase *target_nurb, bool for_render)
bool BKE_displist_surfindex_get(const struct DispList *dl, int a, int *b, int *p1, int *p2, int *p3, int *p4)
void BKE_displist_free(struct ListBase *lb)
Definition displist.cc:64
void BKE_displist_make_curveTypes(struct Depsgraph *depsgraph, const struct Scene *scene, struct Object *ob, bool for_render)
DispList * BKE_displist_find(struct ListBase *lb, int type)
Definition displist.cc:71
void BKE_displist_fill(const struct ListBase *dispbase, struct ListBase *to, const float normal_proj[3], bool flip_normal)
float BKE_displist_calc_taper(struct Depsgraph *depsgraph, const struct Scene *scene, struct Object *taperobj, int cur, int tot)
@ DL_CYCL_V
@ DL_BACK_CURVE
@ DL_FRONT_CURVE
@ DL_CYCL_U
void BKE_displist_minmax(const struct ListBase *dispbase, float min[3], float max[3])
struct DispList DispList
@ DL_SURF
@ DL_INDEX3
@ DL_POLY
@ DL_SEGM
@ DL_VERTS
local_group_size(16, 16) .push_constant(Type b
const Depsgraph * depsgraph
#define min(a, b)
Definition sort.c:32
short type
short col
float * verts
int * index
struct DispList * prev
struct DispList * next
float * nors
short flag