53 #define CIRCLE_RESOL 32
56 0.00000000, 0.20129852, 0.39435585, 0.57126821, 0.72479278, 0.84864425, 0.93775213,
57 0.98846832, 0.99871650, 0.96807711, 0.89780453, 0.79077573, 0.65137248, 0.48530196,
58 0.29936312, 0.10116832, -0.10116832, -0.29936312, -0.48530196, -0.65137248, -0.79077573,
59 -0.89780453, -0.96807711, -0.99871650, -0.98846832, -0.93775213, -0.84864425, -0.72479278,
60 -0.57126821, -0.39435585, -0.20129852, 0.00000000,
65 1.00000000, 0.97952994, 0.91895781, 0.82076344, 0.68896691, 0.52896401, 0.34730525,
66 0.15142777, -0.05064916, -0.25065253, -0.44039415, -0.61210598, -0.75875812, -0.87434661,
67 -0.95413925, -0.99486932, -0.99486932, -0.95413925, -0.87434661, -0.75875812, -0.61210598,
68 -0.44039415, -0.25065253, -0.05064916, 0.15142777, 0.34730525, 0.52896401, 0.68896691,
69 0.82076344, 0.91895781, 0.97952994, 1.00000000,
75 const float tmat[4][4])
78 float *viter = (
float *)
verts;
103 #ifdef VIEW3D_CAMERA_BORDER_HACK
124 if (me_eval !=
NULL) {
147 const int vbo_len_capacity = looptris_len * 3;
148 int vbo_len_used = 0;
164 for (mp = mpoly, i = 0; i < mpoly_len; i++, mp++) {
165 if (facemap_data[i] ==
facemap) {
166 for (
int j = 2; j < mp->
totloop; j++) {
181 for (mp = mpoly, i = 0; i < mpoly_len; i++, mp++) {
182 if (facemap_data[i] ==
facemap) {
184 const MLoop *ml_a = ml_start + 1;
185 const MLoop *ml_b = ml_start + 2;
186 for (
int j = 2; j < mp->
totloop; j++) {
199 if (vbo_len_capacity != vbo_len_used) {
void * CustomData_get_layer(const struct CustomData *data, int type)
General operations, lookup, etc. for blender objects.
struct Mesh * BKE_object_get_evaluated_mesh(struct Object *object)
MINLINE int poly_to_tri_count(const int poly_count, const int corner_count)
MINLINE void copy_v3_v3(float r[3], const float a[3])
MINLINE void mul_v3_v3fl(float r[3], const float a[3], float f)
struct Depsgraph Depsgraph
struct Object * DEG_get_evaluated_object(const struct Depsgraph *depsgraph, struct Object *object)
Object is a sort of wrapper for general info.
void GPU_batch_discard(GPUBatch *)
#define GPU_batch_create(prim, verts, elem)
void GPU_batch_program_set_builtin(GPUBatch *batch, eGPUBuiltinShader shader_id)
void GPU_batch_draw(GPUBatch *batch)
#define GPU_batch_uniform_4fv(batch, name, val)
@ GPU_SHADER_3D_UNIFORM_COLOR
void GPU_blend(eGPUBlend blend)
void GPU_front_facing(bool invert)
#define GPU_vertbuf_create_with_format(format)
void GPU_vertbuf_discard(GPUVertBuf *)
struct GPUVertBuf GPUVertBuf
void GPU_vertbuf_data_alloc(GPUVertBuf *, uint v_len)
GPU_INLINE void * GPU_vertbuf_raw_step(GPUVertBufRaw *a)
void GPU_vertbuf_attr_get_raw_data(GPUVertBuf *, uint a_idx, GPUVertBufRaw *access)
void GPU_vertbuf_data_resize(GPUVertBuf *, uint v_len)
const Depsgraph * depsgraph
void imm_drawcircball(const float cent[3], float rad, const float tmat[4][4], uint pos)
void ED_draw_object_facemap(Depsgraph *depsgraph, Object *ob, const float col[4], const int facemap)
uchar view3d_camera_border_hack_col[3]
bool view3d_camera_border_hack_test
static const float sinval[CIRCLE_RESOL]
static void circball_array_fill(const float verts[CIRCLE_RESOL][3], const float cent[3], float rad, const float tmat[4][4])
static const float cosval[CIRCLE_RESOL]
struct MLoopTri_Store looptris