|
Blender
V2.93
|
#include "potracelib.h"Go to the source code of this file.
Macros | |
| #define | BM_WORDSIZE ((int)sizeof(potrace_word)) |
| #define | BM_WORDBITS (8 * BM_WORDSIZE) |
| #define | BM_HIBIT (((potrace_word)1) << (BM_WORDBITS - 1)) |
| #define | BM_ALLBITS (~(potrace_word)0) |
| #define | bm_scanline(bm, y) ((bm)->map + (y) * (bm)->dy) |
| #define | bm_index(bm, x, y) (&bm_scanline(bm, y)[(x) / BM_WORDBITS]) |
| #define | bm_mask(x) (BM_HIBIT >> ((x) & (BM_WORDBITS - 1))) |
| #define | bm_range(x, a) ((int)(x) >= 0 && (int)(x) < (a)) |
| #define | bm_safe(bm, x, y) (bm_range(x, (bm)->w) && bm_range(y, (bm)->h)) |
| #define | BM_UGET(bm, x, y) ((*bm_index(bm, x, y) & bm_mask(x)) != 0) |
| #define | BM_USET(bm, x, y) (*bm_index(bm, x, y) |= bm_mask(x)) |
| #define | BM_UCLR(bm, x, y) (*bm_index(bm, x, y) &= ~bm_mask(x)) |
| #define | BM_UINV(bm, x, y) (*bm_index(bm, x, y) ^= bm_mask(x)) |
| #define | BM_UPUT(bm, x, y, b) ((b) ? BM_USET(bm, x, y) : BM_UCLR(bm, x, y)) |
| #define | BM_GET(bm, x, y) (bm_safe(bm, x, y) ? BM_UGET(bm, x, y) : 0) |
| #define | BM_SET(bm, x, y) (bm_safe(bm, x, y) ? BM_USET(bm, x, y) : 0) |
| #define | BM_CLR(bm, x, y) (bm_safe(bm, x, y) ? BM_UCLR(bm, x, y) : 0) |
| #define | BM_INV(bm, x, y) (bm_safe(bm, x, y) ? BM_UINV(bm, x, y) : 0) |
| #define | BM_PUT(bm, x, y, b) (bm_safe(bm, x, y) ? BM_UPUT(bm, x, y, b) : 0) |
| #define | GPENCIL_TRACE_MODE_SINGLE 0 |
| #define | GPENCIL_TRACE_MODE_SEQUENCE 1 |
Functions | |
| void | ED_gpencil_trace_bitmap_print (FILE *f, const potrace_bitmap_t *bm) |
| potrace_bitmap_t * | ED_gpencil_trace_bitmap_new (int32_t w, int32_t h) |
| void | ED_gpencil_trace_bitmap_free (const potrace_bitmap_t *bm) |
| void | ED_gpencil_trace_bitmap_invert (const potrace_bitmap_t *bm) |
| void | ED_gpencil_trace_image_to_bitmap (struct ImBuf *ibuf, const potrace_bitmap_t *bm, const float threshold) |
| void | ED_gpencil_trace_data_to_strokes (struct Main *bmain, potrace_state_t *st, struct Object *ob, struct bGPDframe *gpf, int32_t offset[2], const float scale, const float sample, const int32_t resolution, const int32_t thickness) |
| #define BM_ALLBITS (~(potrace_word)0) |
Definition at line 39 of file gpencil_trace.h.
Definition at line 54 of file gpencil_trace.h.
Definition at line 52 of file gpencil_trace.h.
| #define BM_HIBIT (((potrace_word)1) << (BM_WORDBITS - 1)) |
Definition at line 38 of file gpencil_trace.h.
| #define bm_index | ( | bm, | |
| x, | |||
| y | |||
| ) | (&bm_scanline(bm, y)[(x) / BM_WORDBITS]) |
Definition at line 42 of file gpencil_trace.h.
Definition at line 55 of file gpencil_trace.h.
| #define bm_mask | ( | x | ) | (BM_HIBIT >> ((x) & (BM_WORDBITS - 1))) |
Definition at line 43 of file gpencil_trace.h.
Definition at line 56 of file gpencil_trace.h.
Definition at line 44 of file gpencil_trace.h.
Definition at line 45 of file gpencil_trace.h.
Definition at line 41 of file gpencil_trace.h.
Definition at line 53 of file gpencil_trace.h.
Definition at line 49 of file gpencil_trace.h.
Definition at line 47 of file gpencil_trace.h.
Definition at line 50 of file gpencil_trace.h.
Definition at line 51 of file gpencil_trace.h.
Definition at line 48 of file gpencil_trace.h.
| #define BM_WORDBITS (8 * BM_WORDSIZE) |
Definition at line 37 of file gpencil_trace.h.
| #define BM_WORDSIZE ((int)sizeof(potrace_word)) |
Definition at line 36 of file gpencil_trace.h.
| #define GPENCIL_TRACE_MODE_SEQUENCE 1 |
Definition at line 60 of file gpencil_trace.h.
| #define GPENCIL_TRACE_MODE_SINGLE 0 |
Definition at line 59 of file gpencil_trace.h.
| void ED_gpencil_trace_bitmap_free | ( | const potrace_bitmap_t * | bm | ) |
Free a trace bitmap
| bm | Trace bitmap |
Definition at line 111 of file gpencil_trace_utils.c.
References bm, free(), MEM_SAFE_FREE, and NULL.
Referenced by gpencil_trace_image().
| void ED_gpencil_trace_bitmap_invert | ( | const potrace_bitmap_t * | bm | ) |
Invert the given bitmap (Black to White)
| bm | Trace bitmap |
Definition at line 123 of file gpencil_trace_utils.c.
References bm, BM_ALLBITS, bm_scanline, and y.
Return new un-initialized trace bitmap
| w | Width in pixels |
| h | Height in pixels |
Definition at line 86 of file gpencil_trace_utils.c.
References bm, BM_WORDBITS, BM_WORDSIZE, free(), MEM_mallocN, NULL, and w().
Referenced by gpencil_trace_image().
| void ED_gpencil_trace_bitmap_print | ( | FILE * | f, |
| const potrace_bitmap_t * | bm | ||
| ) |
| void ED_gpencil_trace_data_to_strokes | ( | Main * | bmain, |
| potrace_state_t * | st, | ||
| Object * | ob, | ||
| bGPDframe * | gpf, | ||
| int32_t | offset[2], | ||
| const float | scale, | ||
| const float | sample, | ||
| const int32_t | resolution, | ||
| const int32_t | thickness | ||
| ) |
Convert Potrace Bitmap to Grease Pencil strokes
| st | Data with traced data |
| ob | Target grease pencil object |
| offset | Offset to center |
| scale | Scale of the output |
| sample | Sample distance to distribute points |
Definition at line 242 of file gpencil_trace_utils.c.
References add_bezier(), add_point(), BKE_gpencil_free_stroke(), BKE_gpencil_material_find_index_by_name_prefix(), BKE_gpencil_object_material_new(), BKE_gpencil_stroke_add(), BKE_gpencil_stroke_geometry_update(), BKE_gpencil_stroke_length(), BKE_gpencil_stroke_sample(), BLI_remlink(), Freestyle::c, copy_v2_v2(), copy_v4_v4(), Object::data, MaterialGPencilStyle::fill_rgba, MaterialGPencilStyle::flag, GP_MATERIAL_FILL_SHOW, GP_MATERIAL_IS_FILL_HOLDOUT, GP_MATERIAL_IS_STROKE_HOLDOUT, GP_MATERIAL_STROKE_SHOW, Material::gp_style, length(), MAX_LENGTH, NULL, blender::compositor::sample(), MaterialGPencilStyle::stroke_rgba, bGPDframe::strokes, Object::totcol, bGPDstroke::totpoints, x, and y.
Referenced by gpencil_trace_image().
| void ED_gpencil_trace_image_to_bitmap | ( | ImBuf * | ibuf, |
| const potrace_bitmap_t * | bm, | ||
| const float | threshold | ||
| ) |
Convert image to BW bitmap for tracing
| ibuf | ImBuf of the image |
| bm | Trace bitmap |
Definition at line 170 of file gpencil_trace_utils.c.
References bm, BM_PUT, mul_v3_fl(), pixel_at_index(), x, ImBuf::x, y, and ImBuf::y.
Referenced by gpencil_trace_image().