diff options
Diffstat (limited to 'source/blender/makesdna/DNA_hair_types.h')
-rw-r--r-- | source/blender/makesdna/DNA_hair_types.h | 82 |
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__ */ |