Blender  V3.3
DNA_gpencil_types.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later
2  * Copyright 2008 Blender Foundation. */
3 
8 #pragma once
9 
10 #include "DNA_ID.h"
11 #include "DNA_brush_types.h"
12 #include "DNA_listBase.h"
13 
14 #ifdef __cplusplus
15 extern "C" {
16 #endif
17 
18 struct AnimData;
19 struct Curve;
20 struct Curve;
21 struct GPencilUpdateCache;
22 struct MDeformVert;
23 
24 #define GP_DEFAULT_PIX_FACTOR 1.0f
25 #define GP_DEFAULT_GRID_LINES 4
26 #define GP_MAX_INPUT_SAMPLES 10
27 
28 #define GP_DEFAULT_CURVE_RESOLUTION 32
29 #define GP_DEFAULT_CURVE_ERROR 0.1f
30 #define GP_DEFAULT_CURVE_EDIT_CORNER_ANGLE M_PI_2
31 
32 #define GPENCIL_MIN_FILL_FAC 0.05f
33 #define GPENCIL_MAX_FILL_FAC 8.0f
34 
35 #define GPENCIL_MAX_THICKNESS 5000
36 
37 /* ***************************************** */
38 /* GP Stroke Points */
39 
40 /* 'Control Point' data for primitives and curves */
41 typedef struct bGPDcontrolpoint {
43  float x, y, z;
45  float color[4];
47  int size;
49 
50 typedef struct bGPDspoint_Runtime {
52 
53 
56  int idx_orig;
57  char _pad0[4];
59 
60 /* Grease-Pencil Annotations - 'Stroke Point'
61  * -> Coordinates may either be 2d or 3d depending on settings at the time
62  * -> Coordinates of point on stroke, in proportions of window size
63  * This assumes that the bottom-left corner is (0,0)
64  */
65 typedef struct bGPDspoint {
67 
68 
69  float x, y, z;
71  float pressure;
73  float strength;
75  float time;
77  int flag;
78 
80  float uv_fac;
82  float uv_rot;
84  float uv_fill[2];
85 
87  float vert_color[4];
88 
90  char _pad2[4];
91 
94 
96 typedef enum eGPDspoint_Flag {
97  /* stroke point is selected (for editing) */
98  GP_SPOINT_SELECT = (1 << 0),
99 
100  /* stroke point is tagged (for some editing operation) */
101  GP_SPOINT_TAG = (1 << 1),
102  /* stroke point is temp tagged (for some editing operation) */
103  GP_SPOINT_TEMP_TAG = (1 << 2),
104  /* stroke point is temp tagged (for some editing operation) */
107 
108 /* ***************************************** */
109 /* GP Fill - Triangle Tessellation Data */
110 
111 /* Grease-Pencil Annotations - 'Triangle'
112  * -> A triangle contains the index of three vertices for filling the stroke
113  * This is only used if high quality fill is enabled
114  */
115 typedef struct bGPDtriangle {
116  /* indices for tessellated triangle used for GP Fill */
117  unsigned int verts[3];
119 
120 /* ***************************************** */
121 
122 /* ***************************************** */
123 /* GP Palettes (Deprecated - 2.78 - 2.79 only) */
124 
125 /* color of palettes */
126 typedef struct bGPDpalettecolor {
128 
131  char info[64];
132  float color[4];
134  float fill[4];
136  short flag;
138  char _pad[6];
140 
142 typedef enum eGPDpalettecolor_Flag {
143  /* color is active */
144  /* PC_COLOR_ACTIVE = (1 << 0), */ /* UNUSED */
145  /* don't display color */
146  PC_COLOR_HIDE = (1 << 1),
147  /* protected from further editing */
148  PC_COLOR_LOCKED = (1 << 2),
149  /* do onion skinning */
150  PC_COLOR_ONIONSKIN = (1 << 3),
151  /* "volumetric" strokes */
154 
155 /* palette of colors */
156 typedef struct bGPDpalette {
158 
159  struct bGPDpalette *next, *prev;
160 
162  ListBase colors;
164  char info[64];
165 
166  short flag;
167  char _pad[6];
169 
171 typedef enum eGPDpalette_Flag {
172  /* palette is active */
173  PL_PALETTE_ACTIVE = (1 << 0),
175 
176 /* ***************************************** */
177 /* GP Curve Point */
178 
179 typedef struct bGPDcurve_point {
183  float pressure;
185  float strength;
188 
190  int flag;
191 
193  float uv_fac;
195  float uv_rot;
197  float uv_fill[2];
198 
200  float vert_color[4];
201  char _pad[4];
203 
204 /* bGPDcurve_point->flag */
205 typedef enum eGPDcurve_point_Flag {
208 
209 /* ***************************************** */
210 /* GP Curve */
211 
212 /* Curve for Bezier Editing. */
213 typedef struct bGPDcurve {
215 
216 
217  bGPDcurve_point *curve_points;
219  int tot_curve_points;
221  short flag;
222  char _pad[2];
224 
225 /* bGPDcurve_Flag->flag */
226 typedef enum bGPDcurve_Flag {
227  /* Flag to indicated that the stroke data has been changed and the curve needs to be refitted */
229  /* Curve is selected */
230  GP_CURVE_SELECT = (1 << 1),
232 
233 /* ***************************************** */
234 /* GP Strokes */
235 
236 /* Runtime temp data for bGPDstroke */
237 typedef struct bGPDstroke_Runtime {
239 
240 
241  char tmp_layerinfo[128];
242 
244  float multi_frame_falloff;
245 
247  int stroke_start;
249  int fill_start;
251  int curve_start;
252 
254  struct bGPDstroke *gps_orig;
255  void *_pad2;
257 
258 /* Grease-Pencil Annotations - 'Stroke'
259  * -> A stroke represents a (simplified version) of the curve
260  * drawn by the user in one 'mouse-down'->'mouse-up' operation
261  */
262 typedef struct bGPDstroke {
264 
265  struct bGPDstroke *next, *prev;
266 
268  bGPDspoint *points;
270  bGPDtriangle *triangles;
272  int totpoints;
274  int tot_triangles;
275 
277  short thickness;
279  short flag, _pad[2];
280 
282  double inittime;
283 
285  char colorname[128] DNA_DEPRECATED;
286 
288  int mat_nr;
290  short caps[2];
291 
293  float hardeness;
295  float aspect_ratio[2];
296 
298  float fill_opacity_fac;
299 
301  float boundbox_min[3];
303  float boundbox_max[3];
304 
306  float uv_rotation;
308  float uv_translation[2];
309  float uv_scale;
310 
312  int select_index;
313  char _pad4[4];
314 
316  struct MDeformVert *dvert;
317  void *_pad3;
318 
320  float vert_color_fill[4];
321 
323  struct bGPDcurve *editcurve;
324 
325  /* NOTE: When adding new members, make sure to add them to BKE_gpencil_stroke_copy_settings as
326  * well! */
327 
329  void *_pad5;
331 
333 typedef enum eGPDstroke_Flag {
334  /* stroke is in 3d-space */
335  GP_STROKE_3DSPACE = (1 << 0),
336  /* stroke is in 2d-space */
337  GP_STROKE_2DSPACE = (1 << 1),
338  /* stroke is in 2d-space (but with special 'image' scaling) */
339  GP_STROKE_2DIMAGE = (1 << 2),
340  /* stroke is selected */
341  GP_STROKE_SELECT = (1 << 3),
342  /* Flag used to indicate that stroke is closed and draw edge between last and first point */
343  GP_STROKE_CYCLIC = (1 << 7),
344  /* Flag used to indicate that stroke is used for fill close and must use
345  * fill color for stroke and no fill area */
346  GP_STROKE_NOFILL = (1 << 8),
347  /* Flag to indicated that the editcurve has been changed and the stroke needs to be updated with
348  * the curve data */
350  /* only for use with stroke-buffer (while drawing arrows) */
352  /* only for use with stroke-buffer (while drawing arrows) */
354  /* Tag for update geometry */
355  GP_STROKE_TAG = (1 << 14),
356  /* only for use with stroke-buffer (while drawing eraser) */
357  GP_STROKE_ERASER = (1 << 15),
359 
361 typedef enum eGPDstroke_Caps {
362  /* type of extreme */
365 
366  /* Keep last. */
369 
370 /* Arrows ----------------------- */
371 
373 typedef enum eGPDstroke_Arrowstyle {
380 
381 /* ***************************************** */
382 /* GP Frame */
383 
384 /* Runtime temp data for bGPDframe */
385 typedef struct bGPDframe_Runtime {
387 
388 
389  int frameid;
391  int onion_id;
392 
394  struct bGPDframe *gpf_orig;
396 
397 /* Grease-Pencil Annotations - 'Frame'
398  * -> Acts as storage for the 'image' formed by strokes
399  */
400 typedef struct bGPDframe {
402 
403  struct bGPDframe *next, *prev;
404 
406  ListBase strokes;
407 
409  int framenum;
410 
412  short flag;
414  short key_type;
415 
416  /* NOTE: When adding new members, make sure to add them to BKE_gpencil_frame_copy_settings as
417  * well! */
418 
421 
422 /* bGPDframe->flag */
423 typedef enum eGPDframe_Flag {
424  /* frame is being painted on */
425  GP_FRAME_PAINT = (1 << 0),
426  /* for editing in Action Editor */
427  GP_FRAME_SELECT = (1 << 1),
428  /* Line Art generation */
431 
432 /* ***************************************** */
433 /* GP Layer */
434 
435 /* List of masking layers. */
436 typedef struct bGPDlayer_Mask {
438 
440  char name[128];
441  short flag;
443  short sort_index;
444  char _pad[4];
446 
447 /* bGPDlayer_Mask->flag */
448 typedef enum ebGPDlayer_Mask_Flag {
449  /* Mask is hidden. */
450  GP_MASK_HIDE = (1 << 0),
451  /* Mask is inverted. */
452  GP_MASK_INVERT = (1 << 1),
454 
455 /* Runtime temp data for bGPDlayer */
456 typedef struct bGPDlayer_Runtime {
458 
459 
460  int icon_id;
461  char _pad[4];
463  struct bGPDlayer *gpl_orig;
465 
466 /* Grease-Pencil Annotations - 'Layer' */
467 typedef struct bGPDlayer {
469 
470  struct bGPDlayer *next, *prev;
471 
473  ListBase frames;
475  bGPDframe *actframe;
476 
478  short flag;
480  short onion_flag;
481 
484  float color[4];
486  float fill[4];
487 
490  char info[128];
491 
493  short thickness;
495  short pass_index;
496 
498  struct Object *parent;
500  float inverse[4][4];
502  char parsubstr[64];
503  short partype;
504 
506  short line_change;
508  float tintcolor[4];
510  float opacity;
512  char viewlayername[64];
513 
515  int blend_mode;
517  float vertex_paint_opacity;
518 
519  /* annotation onion skin */
524  short gstep;
529  short gstep_next;
530 
532  float gcolor_prev[3];
534  float gcolor_next[3];
535  char _pad1[4];
536 
538  ListBase mask_layers;
540  int act_mask;
541  char _pad2[4];
542 
544  float location[3], rotation[3], scale[3];
545  float layer_mat[4][4], layer_invmat[4][4];
546  char _pad3[4];
547 
548  /* NOTE: When adding new members, make sure to add them to BKE_gpencil_layer_copy_settings as
549  * well! */
550 
553 
554 /* bGPDlayer->flag */
555 typedef enum eGPDlayer_Flag {
556  /* don't display layer */
557  GP_LAYER_HIDE = (1 << 0),
558  /* protected from further editing */
559  GP_LAYER_LOCKED = (1 << 1),
560  /* layer is 'active' layer being edited */
561  GP_LAYER_ACTIVE = (1 << 2),
562  /* draw points of stroke for debugging purposes */
563  GP_LAYER_DRAWDEBUG = (1 << 3),
564  /* Flag used to display in Paint mode only layers with keyframe */
565  GP_LAYER_SOLO_MODE = (1 << 4),
566  /* for editing in Action Editor */
567  GP_LAYER_SELECT = (1 << 5),
568  /* current frame for layer can't be changed */
569  GP_LAYER_FRAMELOCK = (1 << 6),
570  /* don't render xray (which is default) */
571  GP_LAYER_NO_XRAY = (1 << 7),
572  /* "volumetric" strokes */
573  GP_LAYER_VOLUMETRIC = (1 << 10),
574  /* Use Scene lights */
575  GP_LAYER_USE_LIGHTS = (1 << 11),
576  /* Unlock color */
578  /* Mask Layer */
579  GP_LAYER_USE_MASK = (1 << 13), /* TODO: DEPRECATED */
580  /* Ruler Layer */
581  GP_LAYER_IS_RULER = (1 << 14),
582  /* Disable masks in viewlayer render */
585 
587 typedef enum eGPDlayer_OnionFlag {
588  /* do onion skinning */
589  GP_LAYER_ONIONSKIN = (1 << 0),
591 
593 typedef enum eGPLayerBlendModes {
601 
602 /* ***************************************** */
603 /* GP Datablock */
604 
605 /* Runtime temp data for bGPdata */
606 typedef struct bGPdata_Runtime {
608 
609 
610  void *sbuffer;
612  struct GPUBatch *sbuffer_stroke_batch;
613  struct GPUBatch *sbuffer_fill_batch;
615  struct bGPDstroke *sbuffer_gps;
616 
618  short playing;
619 
621  short matid;
622 
623  /* Stroke Buffer data (only used during paint-session)
624  * - buffer must be initialized before use, but freed after
625  * whole paint operation is over
626  */
628  short sbuffer_sflag;
629  char _pad1[2];
631  int sbuffer_used;
633  int sbuffer_size;
634 
636  float vert_color_fill[4];
637 
639  float arrow_start[8];
640  float arrow_end[8];
641  /* Arrow style for each corner */
642  int arrow_start_style;
643  int arrow_end_style;
644 
646  int tot_cp_points;
647  char _pad2[4];
649  bGPDcontrolpoint *cp_points;
651  Brush *sbuffer_brush;
652  struct GpencilBatchCache *gpencil_cache;
653  struct LineartCache *lineart_cache;
654 
655  struct GPencilUpdateCache *update_cache;
657 
658 /* grid configuration */
659 typedef struct bGPgrid {
660  float color[3];
661  float scale[2];
662  float offset[2];
663  char _pad1[4];
664 
665  int lines;
666  char _pad[4];
668 
669 /* Grease-Pencil Annotations - 'DataBlock' */
670 typedef struct bGPdata {
672 
673 
674  ID id;
676  struct AnimData *adt;
677 
678  /* Grease-Pencil data */
680  ListBase layers;
682  int flag;
684  int curve_edit_resolution;
686  float curve_edit_threshold;
688  float curve_edit_corner_angle;
689 
690  /* Palettes */
693 
695  ListBase vertex_group_names;
696 
697  /* 3D Viewport/Appearance Settings */
699  float pixfactor;
701  float line_color[4];
702 
703  /* Onion skinning */
705  float onion_factor;
707  int onion_mode;
709  int onion_flag;
714  short gstep;
718  short gstep_next;
719 
721  float gcolor_prev[3];
723  float gcolor_next[3];
724 
726  float zdepth_offset;
728  struct Material **mat;
730  short totcol;
731 
732  /* stats */
733  short totlayer;
734  short totframe;
735  char _pad2[6];
736  int totstroke;
737  int totpoint;
738 
740  short draw_mode;
742  short onion_keytype;
743 
745  int select_last_index;
746 
747  int vertex_group_active_index;
748 
749  bGPgrid grid;
750 
751  /* NOTE: When adding new members, make sure to add them to BKE_gpencil_data_copy_settings as
752  * well! */
753 
756 
764 typedef enum eGPdata_Flag {
765  /* data-block is used for "annotations"
766  * NOTE: This flag used to be used in 2.4x, but should hardly ever have been set.
767  * We can use this freely now, as all GP data-blocks from pre-2.8 will get
768  * set on file load (as many old use cases are for "annotations" only)
769  */
771 
772  /* show debugging info in viewport (i.e. status print) */
773  GP_DATA_DISPINFO = (1 << 1),
774  /* in Action Editor, show as expanded channel */
775  GP_DATA_EXPAND = (1 << 2),
776 
777  /* is the block overriding all clicks? */
778  /* GP_DATA_EDITPAINT = (1 << 3), */
779 
780  /* ------------------------------------------------ DEPRECATED */
781  /* new strokes are added in viewport space */
782  GP_DATA_VIEWALIGN = (1 << 4),
783 
784  /* Project into the screen's Z values */
785  GP_DATA_DEPTH_VIEW = (1 << 5),
787 
789  /* ------------------------------------------------ DEPRECATED */
790 
791  /* Stroke Editing Mode - Toggle to enable alternative keymap
792  * for easier editing of stroke points */
794 
795  /* Main flag to switch onion skinning on/off */
797 
798  /* Batch drawing cache need to be recalculated */
800 
801  /* Stroke Paint Mode - Toggle paint mode */
803  /* Stroke Editing Mode - Toggle sculpt mode */
805  /* Stroke Editing Mode - Toggle weight paint mode */
807 
808  /* keep stroke thickness unchanged when zoom change */
810 
811  /* Allow edit several frames at the same time */
813 
814  /* Vertex Paint Mode - Toggle paint mode */
816 
817  /* Auto-lock not active layers. */
819 
820  /* Enable Bezier Editing Curve (a sub-mode of Edit mode). */
822  /* Use adaptive curve resolution */
825 
826 /* gpd->onion_flag */
827 typedef enum eGPD_OnionFlag {
828  /* use custom color for ghosts before current frame */
830  /* use custom color for ghosts after current frame */
832  /* always show onion skins (i.e. even during renders/animation playback) */
834  /* use fade color in onion skin */
835  GP_ONION_FADE = (1 << 3),
836  /* Loop showing first frame after last frame */
837  GP_ONION_LOOP = (1 << 4),
839 
840 /* gpd->onion_mode */
841 typedef enum eGP_OnionModes {
846 
847 /* xray modes (Depth Ordering) */
848 typedef enum eGP_DepthOrdering {
852 
853 /* draw modes (Use 2D or 3D position) */
854 typedef enum eGP_DrawMode {
858 
859 /* ***************************************** */
860 /* Mode Checking Macros */
861 
862 /* Check if 'multiedit sessions' is enabled */
863 #define GPENCIL_MULTIEDIT_SESSIONS_ON(gpd) \
864  ((gpd) && \
865  ((gpd)->flag & \
866  (GP_DATA_STROKE_PAINTMODE | GP_DATA_STROKE_EDITMODE | GP_DATA_STROKE_SCULPTMODE | \
867  GP_DATA_STROKE_WEIGHTMODE | GP_DATA_STROKE_VERTEXMODE)) && \
868  ((gpd)->flag & GP_DATA_STROKE_MULTIEDIT))
869 
870 #define GPENCIL_CURVE_EDIT_SESSIONS_ON(gpd) \
871  ((gpd) && ((gpd)->flag & (GP_DATA_STROKE_EDITMODE)) && ((gpd)->flag & GP_DATA_CURVE_EDIT_MODE))
872 
873 /* Macros to check grease pencil modes */
874 #define GPENCIL_ANY_MODE(gpd) \
875  ((gpd) && ((gpd)->flag & \
876  (GP_DATA_STROKE_PAINTMODE | GP_DATA_STROKE_EDITMODE | GP_DATA_STROKE_SCULPTMODE | \
877  GP_DATA_STROKE_WEIGHTMODE | GP_DATA_STROKE_VERTEXMODE)))
878 #define GPENCIL_EDIT_MODE(gpd) ((gpd) && ((gpd)->flag & GP_DATA_STROKE_EDITMODE))
879 #define GPENCIL_ANY_EDIT_MODE(gpd) \
880  ((gpd) && ((gpd)->flag & \
881  (GP_DATA_STROKE_EDITMODE | GP_DATA_STROKE_SCULPTMODE | GP_DATA_STROKE_WEIGHTMODE)))
882 #define GPENCIL_PAINT_MODE(gpd) ((gpd) && (gpd->flag & GP_DATA_STROKE_PAINTMODE))
883 #define GPENCIL_SCULPT_MODE(gpd) ((gpd) && (gpd->flag & GP_DATA_STROKE_SCULPTMODE))
884 #define GPENCIL_WEIGHT_MODE(gpd) ((gpd) && (gpd->flag & GP_DATA_STROKE_WEIGHTMODE))
885 #define GPENCIL_VERTEX_MODE(gpd) ((gpd) && (gpd->flag & GP_DATA_STROKE_VERTEXMODE))
886 #define GPENCIL_SCULPT_OR_WEIGHT_MODE(gpd) \
887  ((gpd) && ((gpd)->flag & (GP_DATA_STROKE_SCULPTMODE | GP_DATA_STROKE_WEIGHTMODE)))
888 #define GPENCIL_NONE_EDIT_MODE(gpd) \
889  ((gpd) && (((gpd)->flag & (GP_DATA_STROKE_EDITMODE | GP_DATA_STROKE_SCULPTMODE | \
890  GP_DATA_STROKE_WEIGHTMODE | GP_DATA_STROKE_VERTEXMODE)) == 0))
891 #define GPENCIL_LAZY_MODE(brush, shift) \
892  (((brush) && \
893  (((brush)->gpencil_settings->flag & GP_BRUSH_STABILIZE_MOUSE) && ((shift) == 0))) || \
894  ((((brush)->gpencil_settings->flag & GP_BRUSH_STABILIZE_MOUSE) == 0) && ((shift) == 1)))
895 
896 #define GPENCIL_ANY_SCULPT_MASK(flag) \
897  ((flag & (GP_SCULPT_MASK_SELECTMODE_POINT | GP_SCULPT_MASK_SELECTMODE_STROKE | \
898  GP_SCULPT_MASK_SELECTMODE_SEGMENT)))
899 
900 #define GPENCIL_ANY_VERTEX_MASK(flag) \
901  ((flag & (GP_VERTEX_MASK_SELECTMODE_POINT | GP_VERTEX_MASK_SELECTMODE_STROKE | \
902  GP_VERTEX_MASK_SELECTMODE_SEGMENT)))
903 
904 #define GPENCIL_PLAY_ON(gpd) ((gpd) && ((gpd)->runtime.playing == 1))
905 
906 #ifdef __cplusplus
907 }
908 #endif
typedef float(TangentPoint)[2]
ID and Library types, which are fundamental for sdna.
#define DNA_DEFINE_CXX_METHODS(class_name)
Definition: DNA_defs.h:64
#define DNA_DEPRECATED
Definition: DNA_defs.h:21
eGP_OnionModes
@ GP_ONION_MODE_RELATIVE
@ GP_ONION_MODE_SELECTED
@ GP_ONION_MODE_ABSOLUTE
ebGPDlayer_Mask_Flag
@ GP_MASK_INVERT
@ GP_MASK_HIDE
enum eGPDstroke_Caps GPDstroke_Caps
eGP_DrawMode
@ GP_DRAWMODE_3D
@ GP_DRAWMODE_2D
bGPDcurve_Flag
@ GP_CURVE_NEEDS_STROKE_UPDATE
@ GP_CURVE_SELECT
eGPDstroke_Arrowstyle
@ GP_STROKE_ARROWSTYLE_NONE
@ GP_STROKE_ARROWSTYLE_SEGMENT
@ GP_STROKE_ARROWSTYLE_CLOSED
@ GP_STROKE_ARROWSTYLE_OPEN
@ GP_STROKE_ARROWSTYLE_SQUARE
struct bGPDtriangle bGPDtriangle
eGPDstroke_Caps
@ GP_STROKE_CAP_MAX
@ GP_STROKE_CAP_ROUND
@ GP_STROKE_CAP_FLAT
eGPDstroke_Flag
@ GP_STROKE_NOFILL
@ GP_STROKE_TAG
@ GP_STROKE_USE_ARROW_END
@ GP_STROKE_2DIMAGE
@ GP_STROKE_ERASER
@ GP_STROKE_NEEDS_CURVE_UPDATE
@ GP_STROKE_SELECT
@ GP_STROKE_CYCLIC
@ GP_STROKE_2DSPACE
@ GP_STROKE_3DSPACE
@ GP_STROKE_USE_ARROW_START
struct bGPDcontrolpoint bGPDcontrolpoint
eGP_DepthOrdering
@ GP_XRAY_FRONT
@ GP_XRAY_3DSPACE
eGPDpalettecolor_Flag
@ PC_COLOR_LOCKED
@ PC_COLOR_ONIONSKIN
@ PC_COLOR_VOLUMETRIC
@ PC_COLOR_HIDE
enum eGPDspoint_Flag eGPSPoint_Flag
eGPDpalette_Flag
@ PL_PALETTE_ACTIVE
eGPDlayer_Flag
@ GP_LAYER_NO_XRAY
@ GP_LAYER_SOLO_MODE
@ GP_LAYER_IS_RULER
@ GP_LAYER_DISABLE_MASKS_IN_VIEWLAYER
@ GP_LAYER_LOCKED
@ GP_LAYER_DRAWDEBUG
@ GP_LAYER_FRAMELOCK
@ GP_LAYER_ACTIVE
@ GP_LAYER_SELECT
@ GP_LAYER_USE_MASK
@ GP_LAYER_UNLOCK_COLOR
@ GP_LAYER_HIDE
@ GP_LAYER_USE_LIGHTS
@ GP_LAYER_VOLUMETRIC
eGPDlayer_OnionFlag
@ GP_LAYER_ONIONSKIN
eGPD_OnionFlag
@ GP_ONION_GHOST_NEXTCOL
@ GP_ONION_GHOST_ALWAYS
@ GP_ONION_GHOST_PREVCOL
@ GP_ONION_FADE
@ GP_ONION_LOOP
struct bGPDcurve_point bGPDcurve_point
eGPDframe_Flag
@ GP_FRAME_SELECT
@ GP_FRAME_LRT_CLEARED
@ GP_FRAME_PAINT
eGPdata_Flag
@ GP_DATA_SHOW_ONIONSKINS
@ GP_DATA_DEPTH_VIEW
@ GP_DATA_VIEWALIGN
@ GP_DATA_CURVE_ADAPTIVE_RESOLUTION
@ GP_DATA_STROKE_WEIGHTMODE
@ GP_DATA_EXPAND
@ GP_DATA_DISPINFO
@ GP_DATA_DEPTH_STROKE_ENDPOINTS
@ GP_DATA_STROKE_VERTEXMODE
@ GP_DATA_CURVE_EDIT_MODE
@ GP_DATA_STROKE_MULTIEDIT
@ GP_DATA_CACHE_IS_DIRTY
@ GP_DATA_STROKE_PAINTMODE
@ GP_DATA_STROKE_SCULPTMODE
@ GP_DATA_DEPTH_STROKE
@ GP_DATA_AUTOLOCK_LAYERS
@ GP_DATA_STROKE_KEEPTHICKNESS
@ GP_DATA_ANNOTATIONS
@ GP_DATA_STROKE_EDITMODE
eGPDcurve_point_Flag
@ GP_CURVE_POINT_SELECT
struct bGPgrid bGPgrid
eGPLayerBlendModes
@ eGplBlendMode_Regular
@ eGplBlendMode_Add
@ eGplBlendMode_Multiply
@ eGplBlendMode_Divide
@ eGplBlendMode_Subtract
@ eGplBlendMode_HardLight
eGPDspoint_Flag
@ GP_SPOINT_TAG
@ GP_SPOINT_SELECT
@ GP_SPOINT_TEMP_TAG2
@ GP_SPOINT_TEMP_TAG
These structs are the foundation for all linked lists in the library system.
GPUBatch
Definition: GPU_batch.h:78
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei GLsizei GLenum type _GL_VOID_RET _GL_VOID GLsizei GLenum GLenum const void *pixels _GL_VOID_RET _GL_VOID const void *pointer _GL_VOID_RET _GL_VOID GLdouble v _GL_VOID_RET _GL_VOID GLfloat v _GL_VOID_RET _GL_VOID GLint GLint i2 _GL_VOID_RET _GL_VOID GLint j _GL_VOID_RET _GL_VOID GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble GLdouble GLdouble zFar _GL_VOID_RET _GL_UINT GLdouble *equation _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLenum GLfloat *v _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLfloat *values _GL_VOID_RET _GL_VOID GLushort *values _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLenum GLdouble *params _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_BOOL GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLushort pattern _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble u2 _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLdouble GLdouble v2 _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLdouble GLdouble nz _GL_VOID_RET _GL_VOID GLfloat GLfloat nz _GL_VOID_RET _GL_VOID GLint GLint nz _GL_VOID_RET _GL_VOID GLshort GLshort nz _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const GLfloat *values _GL_VOID_RET _GL_VOID GLsizei const GLushort *values _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID const GLuint const GLclampf *priorities _GL_VOID_RET _GL_VOID GLdouble y _GL_VOID_RET _GL_VOID GLfloat y _GL_VOID_RET _GL_VOID GLint y _GL_VOID_RET _GL_VOID GLshort y _GL_VOID_RET _GL_VOID GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLfloat GLfloat z _GL_VOID_RET _GL_VOID GLint GLint z _GL_VOID_RET _GL_VOID GLshort GLshort z _GL_VOID_RET _GL_VOID GLdouble GLdouble z
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint y
Group Output data from inside of a node group A color picker Mix two input colors RGB to Convert a color s luminance to a grayscale value Generate a normal vector and a dot product Bright Control the brightness and contrast of the input color Vector Map an input vectors to used to fine tune the interpolation of the input Camera Retrieve information about the camera and how it relates to the current shading point s position Clamp a value between a minimum and a maximum Vector Perform vector math operation Invert a color
btMatrix3x3 inverse() const
Return the inverse of the matrix.
Definition: btTransform.h:182
double time
SyclQueue void void size_t num_bytes void
static float verts[][3]
ccl_gpu_kernel_postfix ccl_global float int int int int float bool int offset
static ulong * next
SymEdge< T > * prev(const SymEdge< T > *se)
Definition: delaunay_2d.cc:105
static const pxr::TfToken opacity("opacity", pxr::TfToken::Immortal)
Definition: DNA_ID.h:368
struct bGPDspoint * pt_orig