diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2017-06-06 23:47:41 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2017-06-09 02:15:17 +0300 |
commit | cc31d7bb49090194e13fc4ebe58bb8f7f63f4186 (patch) | |
tree | 14727b9362cca5c15300c1f76dc45240cd9030b4 /source/blender/makesdna | |
parent | 346619159ae39dfb4063f563d498eec32bba13aa (diff) |
Probe: Add new object datablock
We went for a new datablock because blending probe functionality with empties was going to be messy.
Diffstat (limited to 'source/blender/makesdna')
-rw-r--r-- | source/blender/makesdna/DNA_ID.h | 3 | ||||
-rw-r--r-- | source/blender/makesdna/DNA_object_types.h | 1 | ||||
-rw-r--r-- | source/blender/makesdna/DNA_probe_types.h | 84 | ||||
-rw-r--r-- | source/blender/makesdna/intern/makesdna.c | 2 |
4 files changed, 90 insertions, 0 deletions
diff --git a/source/blender/makesdna/DNA_ID.h b/source/blender/makesdna/DNA_ID.h index 9a89bf859c7..bab8849b1e7 100644 --- a/source/blender/makesdna/DNA_ID.h +++ b/source/blender/makesdna/DNA_ID.h @@ -266,6 +266,7 @@ typedef enum ID_Type { ID_PC = MAKE_ID2('P', 'C'), /* PaintCurve */ ID_CF = MAKE_ID2('C', 'F'), /* CacheFile */ ID_WS = MAKE_ID2('W', 'S'), /* WorkSpace */ + ID_PRB = MAKE_ID2('P', 'R'), /* Probe */ } ID_Type; /* Only used as 'placeholder' in .blend files for directly linked datablocks. */ @@ -400,6 +401,7 @@ enum { FILTER_ID_PA = (1 << 27), FILTER_ID_CF = (1 << 28), FILTER_ID_WS = (1 << 29), + FILTER_ID_PRB = (1 << 30), }; /* IMPORTANT: this enum matches the order currently use in set_lisbasepointers, @@ -431,6 +433,7 @@ enum { INDEX_ID_BR, INDEX_ID_PA, INDEX_ID_SPK, + INDEX_ID_PRB, INDEX_ID_WO, INDEX_ID_MC, INDEX_ID_SCR, diff --git a/source/blender/makesdna/DNA_object_types.h b/source/blender/makesdna/DNA_object_types.h index 4840b453e09..b0ee2332b89 100644 --- a/source/blender/makesdna/DNA_object_types.h +++ b/source/blender/makesdna/DNA_object_types.h @@ -385,6 +385,7 @@ enum { OB_CAMERA = 11, OB_SPEAKER = 12, + OB_PROBE = 13, /* OB_WAVE = 21, */ OB_LATTICE = 22, diff --git a/source/blender/makesdna/DNA_probe_types.h b/source/blender/makesdna/DNA_probe_types.h new file mode 100644 index 00000000000..f50dbf599fb --- /dev/null +++ b/source/blender/makesdna/DNA_probe_types.h @@ -0,0 +1,84 @@ +/* + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * Contributor(s): Blender Foundation + * + * ***** END GPL LICENSE BLOCK ***** + * + */ + +/** \file DNA_probe_types.h + * \ingroup DNA + */ + +#ifndef __DNA_PROBE_TYPES_H__ +#define __DNA_PROBE_TYPES_H__ + +#include "DNA_defs.h" +#include "DNA_listBase.h" +#include "DNA_ID.h" + +#ifdef __cplusplus +extern "C" { +#endif + +struct Object; +struct AnimData; + +typedef struct Probe { + ID id; + struct AnimData *adt; /* animation data (must be immediately after id for utilities to use it) */ + + char type; /* For realtime probe objects */ + char flag; /* General purpose flags for probes */ + char display; /* Probe visual appearance in the viewport */ + char parallax; /* Parallax type */ + + float influence; /* Influence radius or distance */ + float falloff; /* Influence falloff */ + float pad; + + struct Object *parallax_ob; /* Object to use as a parallax volume */ +} Probe; + +/* Probe->type */ +enum { + PROBE_CAPTURE = (1 << 0), + PROBE_PLANAR = (1 << 1), + PROBE_CUSTOM = (1 << 2), +}; + +/* Probe->display */ +enum { + PROBE_WIRE = 0, + PROBE_SHADED = 1, + PROBE_DIFFUSE = 2, + PROBE_REFLECTIVE = 3, +}; + +/* Probe->parallax */ +enum { + PROBE_PARALLAX_NONE = 0, + PROBE_PARALLAX_SPHERE = 1, + PROBE_PARALLAX_CUBE = 2, +}; + +#ifdef __cplusplus +} +#endif + +#endif /* __DNA_PROBE_TYPES_H__ */ diff --git a/source/blender/makesdna/intern/makesdna.c b/source/blender/makesdna/intern/makesdna.c index ad9a03703b4..fe576e2ab70 100644 --- a/source/blender/makesdna/intern/makesdna.c +++ b/source/blender/makesdna/intern/makesdna.c @@ -136,6 +136,7 @@ static const char *includefiles[] = { "DNA_cachefile_types.h", "DNA_layer_types.h", "DNA_workspace_types.h", + "DNA_probe_types.h", /* see comment above before editing! */ @@ -1363,5 +1364,6 @@ int main(int argc, char **argv) #include "DNA_cachefile_types.h" #include "DNA_layer_types.h" #include "DNA_workspace_types.h" +#include "DNA_probe_types.h" /* end of list */ |