36#include "RNA_prototypes.hh"
164 return (gpd_ptr) ? *(gpd_ptr) :
nullptr;
170 return (gpd_ptr) ? *(gpd_ptr) :
nullptr;
179 const float screen_co_a[2] = {
float(x0),
float(y0)};
180 const float screen_co_b[2] = {
float(x1),
float(y1)};
196 if (
ELEM(
nullptr, area, gps)) {
244 float vec[3] = {pt->
x, pt->
y, 0.0f};
249 if (subrect ==
nullptr) {
251 *r_x = int(pt->
x / 100 * region->
winx);
252 *r_y = int(pt->
y / 100 * region->
winy);
272 if (*buffer_used + 1 > *buffer_size) {
273 if ((*buffer_size == 0) || (buffer_array ==
nullptr)) {
283 *buffer_size = *buffer_used = 0;
292 if (buffer_array !=
nullptr) {
293 memset(buffer_array, 0,
sizeof(
tGPspoint) * *buffer_size);
bScreen * CTX_wm_screen(const bContext *C)
ScrArea * CTX_wm_area(const bContext *C)
Scene * CTX_data_scene(const bContext *C)
struct MovieTrackingObject * BKE_tracking_object_get_active(const struct MovieTracking *tracking)
void mul_m4_v3(const float M[4][4], float r[3])
BLI_INLINE float BLI_rctf_size_x(const struct rctf *rct)
BLI_INLINE float BLI_rctf_size_y(const struct rctf *rct)
Object is a sort of wrapper for general info.
MovieClip * ED_space_clip_get_clip(const SpaceClip *sc)
bool edge_inside_circle(const float cent[2], float radius, const float screen_co_a[2], const float screen_co_b[2])
eV3DProjStatus ED_view3d_project_int_global(const ARegion *region, const float co[3], int r_co[2], eV3DProjTest flag)
Read Guarded memory(de)allocation.
#define MEM_recallocN(vmemh, len)
bool UI_view2d_view_to_region_clip(const View2D *v2d, float x, float y, int *r_region_x, int *r_region_y) ATTR_NONNULL()
#define GP_STROKE_BUFFER_CHUNK
bool ED_gpencil_stroke_can_use_direct(const ScrArea *area, const bGPDstroke *gps)
bGPdata * ED_annotation_data_get_active(const bContext *C)
bGPdata * ED_annotation_data_get_active_direct(ID *screen_id, ScrArea *area, Scene *scene)
bGPdata ** ED_annotation_data_get_pointers_direct(ID *screen_id, ScrArea *area, Scene *scene, PointerRNA *r_ptr)
void gpencil_point_to_xy(const GP_SpaceConversion *gsc, const bGPDstroke *gps, const bGPDspoint *pt, int *r_x, int *r_y)
bool gpencil_stroke_inside_circle(const float mval[2], int rad, int x0, int y0, int x1, int y1)
tGPspoint * ED_gpencil_sbuffer_ensure(tGPspoint *buffer_array, int *buffer_size, int *buffer_used, const bool clear)
bGPdata ** ED_annotation_data_get_pointers(const bContext *C, PointerRNA *r_ptr)
void * MEM_calloc_arrayN(size_t len, size_t size, const char *str)
static void clear(Message &msg)
PointerRNA RNA_pointer_create_discrete(ID *id, StructRNA *type, void *data)
PointerRNA RNA_id_pointer_create(ID *id)
struct MovieTracking tracking
MovieTrackingTrack * active_track
struct bNodeTree * nodetree