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:
authorBrecht Van Lommel <brechtvanlommel@gmail.com>2020-03-17 16:41:48 +0300
committerBrecht Van Lommel <brechtvanlommel@gmail.com>2020-03-18 13:23:05 +0300
commitb0a1cf2c9ae696b07f7a236bc855a5ab4a493dcb (patch)
tree92295af11db5e984da42bfac7ca60190b8549a3f /source/blender/makesdna/DNA_hair_types.h
parent8dcfd392e4e62f193b666304425bc5ae635ecffe (diff)
Objects: add Volume object type, and prototypes for Hair and PointCloud
Only the volume object is exposed in the user interface. It is based on OpenVDB internally. Drawing and rendering code will follow in another commit. https://wiki.blender.org/wiki/Source/Objects/Volume https://wiki.blender.org/wiki/Reference/Release_Notes/2.83/Volumes Hair and PointCloud object types are hidden behind a WITH_NEW_OBJECT_TYPES build option. These are unfinished, and included only to make it easier to cooperate on development in the future and avoid tricky merges. https://wiki.blender.org/wiki/Source/Objects/New_Object_Types Ref T73201, T68981 Differential Revision: https://developer.blender.org/D6945
Diffstat (limited to 'source/blender/makesdna/DNA_hair_types.h')
-rw-r--r--source/blender/makesdna/DNA_hair_types.h82
1 files changed, 82 insertions, 0 deletions
diff --git a/source/blender/makesdna/DNA_hair_types.h b/source/blender/makesdna/DNA_hair_types.h
new file mode 100644
index 00000000000..c7f145dda48
--- /dev/null
+++ b/source/blender/makesdna/DNA_hair_types.h
@@ -0,0 +1,82 @@
+/*
+ * ***** 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.
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+/** \file DNA_hair_types.h
+ * \ingroup DNA
+ */
+
+#ifndef __DNA_HAIR_TYPES_H__
+#define __DNA_HAIR_TYPES_H__
+
+#include "DNA_ID.h"
+#include "DNA_customdata_types.h"
+
+typedef struct HairCurve {
+ /* Index of first point of hair curve. */
+ int firstpoint;
+ /* Number of points in hair curve, must be 2 or higher. */
+ int numpoints;
+} HairCurve;
+
+/* Hair attachment to a mesh.
+ * TODO: attach to tesselated triangles or polygons?
+ * TODO: what type of interpolation to use for uv? */
+typedef struct HairMapping {
+ float uv[2];
+ int poly;
+} HairMapping;
+
+typedef struct Hair {
+ ID id;
+ struct AnimData *adt; /* animation data (must be immediately after id) */
+
+ int flag;
+ int _pad1[1];
+
+ /* Geometry */
+ float (*co)[3];
+ float *radius;
+ struct HairCurve *curves;
+ struct HairMaping *mapping;
+ int totpoint;
+ int totcurve;
+
+ /* Custom Data */
+ struct CustomData pdata;
+ struct CustomData cdata;
+
+ /* Material */
+ struct Material **mat;
+ short totcol;
+ short _pad2[3];
+
+ /* Draw Cache */
+ void *batch_cache;
+} Hair;
+
+/* Hair.flag */
+enum {
+ HA_DS_EXPAND = (1 << 0),
+};
+
+/* Only one material supported currently. */
+#define HAIR_MATERIAL_NR 1
+
+#endif /* __DNA_HAIR_TYPES_H__ */