Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClément Foucault <foucault.clem@gmail.com>2017-06-06 23:47:41 +0300
committerClément Foucault <foucault.clem@gmail.com>2017-06-09 02:15:17 +0300
commitcc31d7bb49090194e13fc4ebe58bb8f7f63f4186 (patch)
tree14727b9362cca5c15300c1f76dc45240cd9030b4 /source/blender/makesdna
parent346619159ae39dfb4063f563d498eec32bba13aa (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.h3
-rw-r--r--source/blender/makesdna/DNA_object_types.h1
-rw-r--r--source/blender/makesdna/DNA_probe_types.h84
-rw-r--r--source/blender/makesdna/intern/makesdna.c2
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 */