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:
authorTamito Kajiyama <rd6t-kjym@asahi-net.or.jp>2011-02-20 02:51:18 +0300
committerTamito Kajiyama <rd6t-kjym@asahi-net.or.jp>2011-02-20 02:51:18 +0300
commit70aa63306ad3ec1402275ed623b745d06d14db18 (patch)
tree08cea0cd3818061afc4f3a3b7b922ac668ca80ae /source/blender/blenkernel
parent3789c398ff2b2fd7f0eadba45686b0e235186f4a (diff)
parent43d362fcc8592cede760a56cf863a0c3eb80ff5f (diff)
Merged changes in the trunk up to revision 34996.
Conflicts resolved: C:\bf-blender\soc-2008-mxcurioni\doc\python_api\sphinx_doc_gen.py C:\bf-blender\soc-2008-mxcurioni\source\blender\makesrna\RNA_types.h C:\bf-blender\soc-2008-mxcurioni\source\blender\render\SConscript
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r--source/blender/blenkernel/BKE_DerivedMesh.h14
-rw-r--r--source/blender/blenkernel/BKE_action.h15
-rw-r--r--source/blender/blenkernel/BKE_anim.h9
-rw-r--r--source/blender/blenkernel/BKE_animsys.h7
-rw-r--r--source/blender/blenkernel/BKE_armature.h11
-rw-r--r--source/blender/blenkernel/BKE_array_mallocn.h7
-rw-r--r--source/blender/blenkernel/BKE_blender.h13
-rw-r--r--source/blender/blenkernel/BKE_bmesh.h13
-rw-r--r--source/blender/blenkernel/BKE_bmeshCustomData.h12
-rw-r--r--source/blender/blenkernel/BKE_bmfont.h12
-rw-r--r--source/blender/blenkernel/BKE_bmfont_types.h11
-rw-r--r--source/blender/blenkernel/BKE_boids.h10
-rw-r--r--source/blender/blenkernel/BKE_booleanops_mesh.h6
-rw-r--r--source/blender/blenkernel/BKE_brush.h9
-rw-r--r--source/blender/blenkernel/BKE_bullet.h6
-rw-r--r--source/blender/blenkernel/BKE_bvhutils.h7
-rw-r--r--source/blender/blenkernel/BKE_cdderivedmesh.h8
-rw-r--r--source/blender/blenkernel/BKE_cloth.h9
-rw-r--r--source/blender/blenkernel/BKE_collision.h9
-rw-r--r--source/blender/blenkernel/BKE_colortools.h6
-rw-r--r--source/blender/blenkernel/BKE_constraint.h7
-rw-r--r--source/blender/blenkernel/BKE_context.h6
-rw-r--r--source/blender/blenkernel/BKE_curve.h9
-rw-r--r--source/blender/blenkernel/BKE_customdata.h6
-rw-r--r--source/blender/blenkernel/BKE_customdata_file.h4
-rw-r--r--source/blender/blenkernel/BKE_deform.h14
-rw-r--r--source/blender/blenkernel/BKE_depsgraph.h6
-rw-r--r--source/blender/blenkernel/BKE_displist.h5
-rw-r--r--source/blender/blenkernel/BKE_effect.h9
-rw-r--r--source/blender/blenkernel/BKE_endian.h10
-rw-r--r--source/blender/blenkernel/BKE_exotic.h8
-rw-r--r--source/blender/blenkernel/BKE_fcurve.h8
-rw-r--r--source/blender/blenkernel/BKE_fluidsim.h5
-rw-r--r--source/blender/blenkernel/BKE_font.h8
-rw-r--r--source/blender/blenkernel/BKE_global.h17
-rw-r--r--source/blender/blenkernel/BKE_gpencil.h7
-rw-r--r--source/blender/blenkernel/BKE_group.h10
-rw-r--r--source/blender/blenkernel/BKE_icons.h6
-rw-r--r--source/blender/blenkernel/BKE_idcode.h6
-rw-r--r--source/blender/blenkernel/BKE_idprop.h7
-rw-r--r--source/blender/blenkernel/BKE_image.h10
-rw-r--r--source/blender/blenkernel/BKE_ipo.h11
-rw-r--r--source/blender/blenkernel/BKE_key.h9
-rw-r--r--source/blender/blenkernel/BKE_lattice.h9
-rw-r--r--source/blender/blenkernel/BKE_library.h11
-rw-r--r--source/blender/blenkernel/BKE_main.h24
-rw-r--r--source/blender/blenkernel/BKE_material.h7
-rw-r--r--source/blender/blenkernel/BKE_mball.h9
-rw-r--r--source/blender/blenkernel/BKE_mesh.h6
-rw-r--r--source/blender/blenkernel/BKE_modifier.h7
-rw-r--r--source/blender/blenkernel/BKE_multires.h4
-rw-r--r--source/blender/blenkernel/BKE_nla.h7
-rw-r--r--source/blender/blenkernel/BKE_node.h6
-rw-r--r--source/blender/blenkernel/BKE_object.h7
-rw-r--r--source/blender/blenkernel/BKE_packedFile.h9
-rw-r--r--source/blender/blenkernel/BKE_paint.h4
-rw-r--r--source/blender/blenkernel/BKE_particle.h8
-rw-r--r--source/blender/blenkernel/BKE_plugin_types.h12
-rw-r--r--source/blender/blenkernel/BKE_pointcache.h4
-rw-r--r--source/blender/blenkernel/BKE_property.h8
-rw-r--r--source/blender/blenkernel/BKE_report.h6
-rw-r--r--source/blender/blenkernel/BKE_sca.h6
-rw-r--r--source/blender/blenkernel/BKE_scene.h10
-rw-r--r--source/blender/blenkernel/BKE_screen.h10
-rw-r--r--source/blender/blenkernel/BKE_script.h11
-rw-r--r--source/blender/blenkernel/BKE_sequencer.h7
-rw-r--r--source/blender/blenkernel/BKE_shrinkwrap.h8
-rw-r--r--source/blender/blenkernel/BKE_sketch.h7
-rw-r--r--source/blender/blenkernel/BKE_smoke.h9
-rw-r--r--source/blender/blenkernel/BKE_softbody.h8
-rw-r--r--source/blender/blenkernel/BKE_sound.h12
-rw-r--r--source/blender/blenkernel/BKE_subsurf.h4
-rw-r--r--source/blender/blenkernel/BKE_suggestions.h6
-rw-r--r--source/blender/blenkernel/BKE_text.h10
-rw-r--r--source/blender/blenkernel/BKE_texture.h10
-rw-r--r--source/blender/blenkernel/BKE_unit.h6
-rw-r--r--source/blender/blenkernel/BKE_utildefines.h8
-rw-r--r--source/blender/blenkernel/BKE_world.h10
-rw-r--r--source/blender/blenkernel/BKE_writeavi.h6
-rw-r--r--source/blender/blenkernel/BKE_writeffmpeg.h6
-rw-r--r--source/blender/blenkernel/BKE_writeframeserver.h6
-rw-r--r--source/blender/blenkernel/CMakeLists.txt1
-rw-r--r--source/blender/blenkernel/SConscript1
-rw-r--r--source/blender/blenkernel/intern/CCGSubSurf.c6
-rw-r--r--source/blender/blenkernel/intern/DerivedMesh.c266
-rw-r--r--source/blender/blenkernel/intern/anim.c75
-rw-r--r--source/blender/blenkernel/intern/armature.c4
-rw-r--r--source/blender/blenkernel/intern/brush.c2
-rw-r--r--source/blender/blenkernel/intern/cdderivedmesh.c20
-rw-r--r--source/blender/blenkernel/intern/collision.c4
-rw-r--r--source/blender/blenkernel/intern/constraint.c3
-rw-r--r--source/blender/blenkernel/intern/customdata.c2
-rw-r--r--source/blender/blenkernel/intern/image.c14
-rw-r--r--source/blender/blenkernel/intern/object.c18
-rw-r--r--source/blender/blenkernel/intern/particle.c28
-rw-r--r--source/blender/blenkernel/intern/particle_system.c6
-rw-r--r--source/blender/blenkernel/intern/pointcache.c2
-rw-r--r--source/blender/blenkernel/intern/sequencer.c22
-rw-r--r--source/blender/blenkernel/intern/shrinkwrap.c32
-rw-r--r--source/blender/blenkernel/intern/smoke.c2
-rw-r--r--source/blender/blenkernel/intern/sound.c2
-rw-r--r--source/blender/blenkernel/intern/subsurf_ccg.c2
-rw-r--r--source/blender/blenkernel/intern/writeavi.c2
-rw-r--r--source/blender/blenkernel/intern/writeframeserver.c3
104 files changed, 859 insertions, 348 deletions
diff --git a/source/blender/blenkernel/BKE_DerivedMesh.h b/source/blender/blenkernel/BKE_DerivedMesh.h
index 79e9b11d4db..857c88a6004 100644
--- a/source/blender/blenkernel/BKE_DerivedMesh.h
+++ b/source/blender/blenkernel/BKE_DerivedMesh.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -30,15 +30,17 @@
#ifndef BKE_DERIVEDMESH_H
#define BKE_DERIVEDMESH_H
-/* TODO (Probably)
+/** \file BKE_DerivedMesh.h
+ * \ingroup bke
*
- * o Make drawMapped* functions take a predicate function that
+ * \todo
+ * - Make drawMapped* functions take a predicate function that
* determines whether to draw the edge (this predicate can
* also set color, etc). This will be slightly more general
* and allow some of the functions to be collapsed.
- * o Once accessor functions are added then single element draw
+ * - Once accessor functions are added then single element draw
* functions can be implemented using primitive accessors.
- * o Add function to dispatch to renderer instead of using
+ * - Add function to dispatch to renderer instead of using
* conversion to DLM.
*/
@@ -533,7 +535,7 @@ typedef struct DMVertexAttribs {
} mcol[MAX_MCOL];
struct {
- float (*array)[3];
+ float (*array)[4];
int emOffset, glIndex;
} tang;
diff --git a/source/blender/blenkernel/BKE_action.h b/source/blender/blenkernel/BKE_action.h
index 1c75387ba5d..59da97d8b09 100644
--- a/source/blender/blenkernel/BKE_action.h
+++ b/source/blender/blenkernel/BKE_action.h
@@ -1,9 +1,4 @@
-/* BKE_action.h May 2001
- *
- * Blender kernel action and pose functionality
- *
- * Reevan McKay
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -33,6 +28,14 @@
#ifndef BKE_ACTION_H
#define BKE_ACTION_H
+/** \file BKE_action.h
+ * \ingroup bke
+ * \brief Blender kernel action and pose functionality.
+ * \author Reevan McKay
+ * \author Ton Roosendaal (full recode 2005)
+ * \author Joshua Leung (full recode 2009)
+ * \since may 2001
+ */
#include "DNA_listBase.h"
diff --git a/source/blender/blenkernel/BKE_anim.h b/source/blender/blenkernel/BKE_anim.h
index e82eb0ed0c9..25165eeaee7 100644
--- a/source/blender/blenkernel/BKE_anim.h
+++ b/source/blender/blenkernel/BKE_anim.h
@@ -1,6 +1,4 @@
-/**
- * blenlib/BKE_anim.h (mar-2001 nzc);
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -31,6 +29,11 @@
#ifndef BKE_ANIM_H
#define BKE_ANIM_H
+/** \file BKE_anim.h
+ * \ingroup bke
+ * \author nzc
+ * \since March 2001
+ */
struct Path;
struct Object;
struct PartEff;
diff --git a/source/blender/blenkernel/BKE_animsys.h b/source/blender/blenkernel/BKE_animsys.h
index 500210d2fcd..a469d05ee26 100644
--- a/source/blender/blenkernel/BKE_animsys.h
+++ b/source/blender/blenkernel/BKE_animsys.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -28,6 +28,11 @@
#ifndef BKE_ANIM_SYS_H
#define BKE_ANIM_SYS_H
+/** \file BKE_animsys.h
+ * \ingroup bke
+ * \author Joshua Leung
+ */
+
struct ID;
struct ListBase;
struct Main;
diff --git a/source/blender/blenkernel/BKE_armature.h b/source/blender/blenkernel/BKE_armature.h
index ed2a06b0f33..efa87532859 100644
--- a/source/blender/blenkernel/BKE_armature.h
+++ b/source/blender/blenkernel/BKE_armature.h
@@ -1,6 +1,4 @@
-/**
- * blenlib/BKE_armature.h (mar-2001 nzc)
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -31,6 +29,12 @@
#ifndef BKE_ARMATURE_H
#define BKE_ARMATURE_H
+/** \file BKE_armature.h
+ * \ingroup bke
+ * \since March 2001
+ * \author nzc
+ */
+
struct Bone;
struct Main;
struct bArmature;
@@ -108,6 +112,7 @@ void armature_mat_pose_to_delta(float delta_mat[][4], float pose_mat[][4], float
void pchan_mat3_to_rot(struct bPoseChannel *pchan, float mat[][3], short use_compat);
void pchan_apply_mat4(struct bPoseChannel *pchan, float mat[][4], short use_comat);
void pchan_to_mat4(struct bPoseChannel *pchan, float chan_mat[4][4]);
+void pchan_calc_mat(struct bPoseChannel *pchan);
/* Rotation Mode Conversions - Used for PoseChannels + Objects... */
void BKE_rotMode_change_values(float quat[4], float eul[3], float axis[3], float *angle, short oldMode, short newMode);
diff --git a/source/blender/blenkernel/BKE_array_mallocn.h b/source/blender/blenkernel/BKE_array_mallocn.h
index 8fe32da437c..42c4c2ebdd0 100644
--- a/source/blender/blenkernel/BKE_array_mallocn.h
+++ b/source/blender/blenkernel/BKE_array_mallocn.h
@@ -30,7 +30,12 @@
#ifndef BKE_ARRAY_MALLOCN_H
#define BKE_ARRAY_MALLOCN_H
-/*little array macro library. example of usage:
+/** \file BKE_array_mallocn.h
+ * \ingroup bke
+ * \brief little array macro library.
+ */
+
+/* example of usage:
int *arr = NULL;
V_DECLARE(arr);
diff --git a/source/blender/blenkernel/BKE_blender.h b/source/blender/blenkernel/BKE_blender.h
index 65e7f848ea0..aa04e20beb6 100644
--- a/source/blender/blenkernel/BKE_blender.h
+++ b/source/blender/blenkernel/BKE_blender.h
@@ -1,8 +1,4 @@
-/**
- * blenlib/BKE_blender.h (mar-2001 nzc)
- *
- * Blender util stuff?
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -33,6 +29,13 @@
#ifndef BKE_BLENDER_H
#define BKE_BLENDER_H
+/** \file BKE_blender.h
+ * \ingroup bke
+ * \since March 2001
+ * \author nzc
+ * \brief Blender util stuff
+ */
+
#ifdef __cplusplus
extern "C" {
#endif
diff --git a/source/blender/blenkernel/BKE_bmesh.h b/source/blender/blenkernel/BKE_bmesh.h
index 44ca3842fd9..5c28fa88503 100644
--- a/source/blender/blenkernel/BKE_bmesh.h
+++ b/source/blender/blenkernel/BKE_bmesh.h
@@ -1,8 +1,4 @@
-/**
- * BKE_bmesh.h jan 2007
- *
- * BMesh modeler structure and functions.
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -37,6 +33,13 @@
#ifndef BKE_BMESH_H
#define BKE_BMESH_H
+/** \file BKE_bmesh.h
+ * \ingroup bke
+ * \since January 2007
+ * \brief BMesh modeler structure and functions.
+ *
+ */
+
#include "DNA_listBase.h"
#include "BLI_utildefines.h"
#include "BLI_ghash.h"
diff --git a/source/blender/blenkernel/BKE_bmeshCustomData.h b/source/blender/blenkernel/BKE_bmeshCustomData.h
index d2b72019b68..aabfcfaa0f6 100644
--- a/source/blender/blenkernel/BKE_bmeshCustomData.h
+++ b/source/blender/blenkernel/BKE_bmeshCustomData.h
@@ -1,8 +1,4 @@
-/**
- * BKE_bmesh.h jan 2007
- *
- * BMesh modeler structure and functions.
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -38,6 +34,12 @@
#ifndef BKE_BMESHCUSTOMDATA_H
#define BKE_BMESHCUSTOMDATA_H
+/** \file BKE_bmeshCustomData.h
+ * \ingroup bke
+ * \since January 2007
+ * \brief BMesh modeler structure and functions - custom data.
+ */
+
struct BLI_mempool;
/*Custom Data Types and defines
diff --git a/source/blender/blenkernel/BKE_bmfont.h b/source/blender/blenkernel/BKE_bmfont.h
index 6a47dcbd6c4..ef7323fc4c3 100644
--- a/source/blender/blenkernel/BKE_bmfont.h
+++ b/source/blender/blenkernel/BKE_bmfont.h
@@ -1,8 +1,4 @@
-/**
- * blenlib/BKE_bmfont.h (mar-2001 nzc)
- *
- *
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -33,6 +29,12 @@
#ifndef BKE_BMFONT_H
#define BKE_BMFONT_H
+/** \file BKE_bmfont.h
+ * \ingroup bke
+ * \since March 2001
+ * \author nzc
+ */
+
#ifdef __cplusplus
extern "C" {
#endif
diff --git a/source/blender/blenkernel/BKE_bmfont_types.h b/source/blender/blenkernel/BKE_bmfont_types.h
index 77a618c1be4..658302e9f1d 100644
--- a/source/blender/blenkernel/BKE_bmfont_types.h
+++ b/source/blender/blenkernel/BKE_bmfont_types.h
@@ -1,8 +1,4 @@
-/**
- * blenlib/BKE_bmfont_types.h (mar-2001 nzc)
- *
- *
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -33,6 +29,11 @@
#ifndef BKE_BMFONT_TYPES_H
#define BKE_BMFONT_TYPES_H
+/** \file BKE_bmfont_types.h
+ * \ingroup bke
+ * \since March 2001
+ * \author nzc
+ */
#define is_power_of_two(N) ((N ^ (N - 1)) == (2 * N - 1))
/*
Moved to IMB_imbuf_types.h where it will live close to the ImBuf type.
diff --git a/source/blender/blenkernel/BKE_boids.h b/source/blender/blenkernel/BKE_boids.h
index ffd803f21a5..36ca0cde87d 100644
--- a/source/blender/blenkernel/BKE_boids.h
+++ b/source/blender/blenkernel/BKE_boids.h
@@ -1,6 +1,4 @@
-/* BKE_particle.h
- *
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -32,6 +30,12 @@
#ifndef BKE_BOIDS_H
#define BKE_BOIDS_H
+/** \file BKE_boids.h
+ * \ingroup bke
+ * \since 2009
+ * \author Janne Karhu
+ */
+
#include "DNA_boid_types.h"
typedef struct BoidBrainData {
diff --git a/source/blender/blenkernel/BKE_booleanops_mesh.h b/source/blender/blenkernel/BKE_booleanops_mesh.h
index 7c2d619659a..aecd3385662 100644
--- a/source/blender/blenkernel/BKE_booleanops_mesh.h
+++ b/source/blender/blenkernel/BKE_booleanops_mesh.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -29,6 +29,10 @@
#ifndef BKE_PyBooleanOps_h
#define BKE_PyBooleanOps_h
+/** \file BKE_booleanops_mesh.h
+ * \ingroup bke
+ */
+
#include "CSG_BooleanOps.h"
/**
diff --git a/source/blender/blenkernel/BKE_brush.h b/source/blender/blenkernel/BKE_brush.h
index deb10ef6d35..a9d379e6c69 100644
--- a/source/blender/blenkernel/BKE_brush.h
+++ b/source/blender/blenkernel/BKE_brush.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -31,6 +31,10 @@
#ifndef BKE_BRUSH_H
#define BKE_BRUSH_H
+/** \file BKE_brush.h
+ * \ingroup bke
+ */
+
struct ID;
struct Brush;
struct ImBuf;
@@ -109,5 +113,8 @@ void brush_set_unprojected_radius(struct Brush *brush, float value);
float brush_alpha(struct Brush *brush);
void brush_set_alpha(struct Brush *brush, float value);
+/* debugging only */
+void brush_debug_print_state(struct Brush *br);
+
#endif
diff --git a/source/blender/blenkernel/BKE_bullet.h b/source/blender/blenkernel/BKE_bullet.h
index b695bdc91ae..76358c4485b 100644
--- a/source/blender/blenkernel/BKE_bullet.h
+++ b/source/blender/blenkernel/BKE_bullet.h
@@ -1,4 +1,4 @@
-/**
+/*
*
* $Id$
*
@@ -30,6 +30,10 @@
#ifndef BKE_BULLET_H
#define BKE_BULLET_H
+/** \file BKE_bullet.h
+ * \ingroup bke
+ */
+
struct BulletSoftBody;
diff --git a/source/blender/blenkernel/BKE_bvhutils.h b/source/blender/blenkernel/BKE_bvhutils.h
index 975e64929c2..29487713ad4 100644
--- a/source/blender/blenkernel/BKE_bvhutils.h
+++ b/source/blender/blenkernel/BKE_bvhutils.h
@@ -1,5 +1,4 @@
-/**
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -30,6 +29,10 @@
#ifndef BKE_BVHUTILS_H
#define BKE_BVHUTILS_H
+/** \file BKE_bvhutils.h
+ * \ingroup bke
+ */
+
#include "BLI_kdopbvh.h"
#include "BLI_linklist.h"
diff --git a/source/blender/blenkernel/BKE_cdderivedmesh.h b/source/blender/blenkernel/BKE_cdderivedmesh.h
index bff9f16b489..1edec2b69d9 100644
--- a/source/blender/blenkernel/BKE_cdderivedmesh.h
+++ b/source/blender/blenkernel/BKE_cdderivedmesh.h
@@ -27,9 +27,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
-/* CDDerivedMesh interface.
- * CDDerivedMesh (CD = Custom Data) is a DerivedMesh backend which stores
- * mesh elements (vertices, edges and faces) as layers of custom element data.
+/** \file BKE_cdderivedmesh.h
+ * \ingroup bke
+ * \section aboutcdderivedmesh CDDerivedMesh interface
+ * CDDerivedMesh (CD = Custom Data) is a DerivedMesh backend which stores
+ * mesh elements (vertices, edges and faces) as layers of custom element data.
*/
#ifndef BKE_CDDERIVEDMESH_H
diff --git a/source/blender/blenkernel/BKE_cloth.h b/source/blender/blenkernel/BKE_cloth.h
index 83af573bd42..1ee51cd2122 100644
--- a/source/blender/blenkernel/BKE_cloth.h
+++ b/source/blender/blenkernel/BKE_cloth.h
@@ -1,6 +1,4 @@
-/**
- * BKE_cloth.h
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -31,6 +29,11 @@
#ifndef BKE_CLOTH_H
#define BKE_CLOTH_H
+/** \file BKE_cloth.h
+ * \ingroup bke
+ * \author Daniel Genrich
+ */
+
#include <float.h>
struct Object;
diff --git a/source/blender/blenkernel/BKE_collision.h b/source/blender/blenkernel/BKE_collision.h
index 03d4800076c..b54d4275719 100644
--- a/source/blender/blenkernel/BKE_collision.h
+++ b/source/blender/blenkernel/BKE_collision.h
@@ -1,6 +1,4 @@
-/**
- * BKE_cloth.h
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -31,6 +29,11 @@
#ifndef BKE_COLLISIONS_H
#define BKE_COLLISIONS_H
+/** \file BKE_collision.h
+ * \ingroup bke
+ * \author Daniel Genrich
+ */
+
#include <math.h>
#include <float.h>
#include <stdlib.h>
diff --git a/source/blender/blenkernel/BKE_colortools.h b/source/blender/blenkernel/BKE_colortools.h
index e0ebedb320b..b3709853a8c 100644
--- a/source/blender/blenkernel/BKE_colortools.h
+++ b/source/blender/blenkernel/BKE_colortools.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -29,6 +29,10 @@
#ifndef BKE_COLORTOOLS_H
#define BKE_COLORTOOLS_H
+/** \file BKE_colortools.h
+ * \ingroup bke
+ */
+
struct CurveMapping;
struct CurveMap;
struct Scopes;
diff --git a/source/blender/blenkernel/BKE_constraint.h b/source/blender/blenkernel/BKE_constraint.h
index d6e0075df1e..7c0e7050a9f 100644
--- a/source/blender/blenkernel/BKE_constraint.h
+++ b/source/blender/blenkernel/BKE_constraint.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -30,6 +30,11 @@
#ifndef BKE_CONSTRAINT_H
#define BKE_CONSTRAINT_H
+/** \file BKE_constraint.h
+ * \ingroup bke
+ * \author Joshua Leung (major recode 2007)
+ */
+
struct ID;
struct bConstraint;
struct bConstraintTarget;
diff --git a/source/blender/blenkernel/BKE_context.h b/source/blender/blenkernel/BKE_context.h
index 3acc08a76b6..7254536b555 100644
--- a/source/blender/blenkernel/BKE_context.h
+++ b/source/blender/blenkernel/BKE_context.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -28,6 +28,10 @@
#ifndef BKE_CONTEXT_H
#define BKE_CONTEXT_H
+/** \file BKE_context.h
+ * \ingroup bke
+ */
+
#include "DNA_listBase.h"
#include "RNA_types.h"
diff --git a/source/blender/blenkernel/BKE_curve.h b/source/blender/blenkernel/BKE_curve.h
index 8c652a11794..f0c58e0a511 100644
--- a/source/blender/blenkernel/BKE_curve.h
+++ b/source/blender/blenkernel/BKE_curve.h
@@ -1,6 +1,4 @@
-/**
- * blenlib/BKE_curve.h (mar-2001 nzc)
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -31,6 +29,11 @@
#ifndef BKE_CURVE_H
#define BKE_CURVE_H
+/** \file BKE_curve.h
+ * \ingroup bke
+ * \since March 2001
+ * \author nzc
+ */
struct Curve;
struct ListBase;
struct Object;
diff --git a/source/blender/blenkernel/BKE_customdata.h b/source/blender/blenkernel/BKE_customdata.h
index e9118323682..c30100ea55a 100644
--- a/source/blender/blenkernel/BKE_customdata.h
+++ b/source/blender/blenkernel/BKE_customdata.h
@@ -27,7 +27,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
-/* CustomData interface, see also DNA_customdata_types.h. */
+/** \file BKE_customdata.h
+ * \ingroup bke
+ * \author Ben Batt
+ * \brief CustomData interface, see also DNA_customdata_types.h.
+ */
#ifndef BKE_CUSTOMDATA_H
#define BKE_CUSTOMDATA_H
diff --git a/source/blender/blenkernel/BKE_customdata_file.h b/source/blender/blenkernel/BKE_customdata_file.h
index 9bcef7636c6..f97565f23a1 100644
--- a/source/blender/blenkernel/BKE_customdata_file.h
+++ b/source/blender/blenkernel/BKE_customdata_file.h
@@ -23,6 +23,10 @@
#ifndef BKE_CUSTOMDATA_FILE_H
#define BKE_CUSTOMDATA_FILE_H
+/** \file BKE_customdata_file.h
+ * \ingroup bke
+ */
+
#define CDF_TYPE_IMAGE 0
#define CDF_TYPE_MESH 1
diff --git a/source/blender/blenkernel/BKE_deform.h b/source/blender/blenkernel/BKE_deform.h
index eaabc57c781..a9ac201beda 100644
--- a/source/blender/blenkernel/BKE_deform.h
+++ b/source/blender/blenkernel/BKE_deform.h
@@ -1,9 +1,4 @@
-/* BKE_deform.h June 2001
- *
- * support for deformation groups and hooks
- *
- * Reevan McKay et al
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -35,6 +30,13 @@
#ifndef BKE_DEFORM_H
#define BKE_DEFORM_H
+/** \file BKE_deform.h
+ * \ingroup bke
+ * \since June 2001
+ * \author Reevan McKay et al
+ * \brief support for deformation groups and hooks.
+ */
+
struct Object;
struct ListBase;
struct bDeformGroup;
diff --git a/source/blender/blenkernel/BKE_depsgraph.h b/source/blender/blenkernel/BKE_depsgraph.h
index 91954131b71..f78a957cbab 100644
--- a/source/blender/blenkernel/BKE_depsgraph.h
+++ b/source/blender/blenkernel/BKE_depsgraph.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -28,6 +28,10 @@
#ifndef DEPSGRAPH_API
#define DEPSGRAPH_API
+/** \file BKE_depsgraph.h
+ * \ingroup bke
+ */
+
#ifdef __cplusplus
extern "C" {
#endif
diff --git a/source/blender/blenkernel/BKE_displist.h b/source/blender/blenkernel/BKE_displist.h
index 01d3de1b94f..766981a6fea 100644
--- a/source/blender/blenkernel/BKE_displist.h
+++ b/source/blender/blenkernel/BKE_displist.h
@@ -1,4 +1,3 @@
-/* display list (or rather multi purpose list) stuff */
/*
$Id$
*
@@ -32,6 +31,10 @@
#ifndef BKE_DISPLIST_H
#define BKE_DISPLIST_H
+/** \file BKE_displist.h
+ * \ingroup bke
+ * \brief display list (or rather multi purpose list) stuff.
+ */
#include "DNA_customdata_types.h"
#include "BKE_customdata.h"
diff --git a/source/blender/blenkernel/BKE_effect.h b/source/blender/blenkernel/BKE_effect.h
index 99f55200eac..97ac711651b 100644
--- a/source/blender/blenkernel/BKE_effect.h
+++ b/source/blender/blenkernel/BKE_effect.h
@@ -1,6 +1,4 @@
-/**
- * blenlib/BKE_effect.h (mar-2001 nzc)
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -31,6 +29,11 @@
#ifndef BKE_EFFECT_H
#define BKE_EFFECT_H
+/** \file BKE_effect.h
+ * \ingroup bke
+ * \since March 2001
+ * \author nzc
+ */
#include "DNA_modifier_types.h"
struct Object;
diff --git a/source/blender/blenkernel/BKE_endian.h b/source/blender/blenkernel/BKE_endian.h
index d61b81fb6ce..5647645e990 100644
--- a/source/blender/blenkernel/BKE_endian.h
+++ b/source/blender/blenkernel/BKE_endian.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,11 +26,17 @@
*
* ***** END GPL LICENSE BLOCK *****
* Are we little or big endian? From Harbison&Steele.
- * BKE_ENDIANNESS(a) returns 1 if big endian and returns 0 if little endian
*/
#ifndef BKE_ENDIAN_H
#define BKE_ENDIAN_H
+/** \file BKE_endian.h
+ * \ingroup bke
+ */
+
+/**
+ * BKE_ENDIANNESS(a) returns 1 if big endian and returns 0 if little endian
+ */
#define BKE_ENDIANNESS(a) { \
union { \
intptr_t l; \
diff --git a/source/blender/blenkernel/BKE_exotic.h b/source/blender/blenkernel/BKE_exotic.h
index ad59cd9c0a8..870dd7cb4d5 100644
--- a/source/blender/blenkernel/BKE_exotic.h
+++ b/source/blender/blenkernel/BKE_exotic.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -25,12 +25,16 @@
* Contributor(s): none yet.
*
* ***** END GPL LICENSE BLOCK *****
- * dxf/vrml/stl external file io function prototypes
*/
#ifndef BKE_EXOTIC_H
#define BKE_EXOTIC_H
+/** \file BKE_exotic.h
+ * \ingroup bke
+ * \brief dxf/vrml/stl external file io function prototypes.
+ * \attention is this used still? Candidate for removal?
+ */
struct Mesh;
struct Scene;
diff --git a/source/blender/blenkernel/BKE_fcurve.h b/source/blender/blenkernel/BKE_fcurve.h
index 5fbb7f37d15..f81acf4b11e 100644
--- a/source/blender/blenkernel/BKE_fcurve.h
+++ b/source/blender/blenkernel/BKE_fcurve.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -28,6 +28,12 @@
#ifndef BKE_FCURVE_H
#define BKE_FCURVE_H
+/** \file BKE_fcurve.h
+ * \ingroup bke
+ * \author Joshua Leung
+ * \since 2009
+ */
+
#ifdef __cplusplus
extern "C" {
#endif
diff --git a/source/blender/blenkernel/BKE_fluidsim.h b/source/blender/blenkernel/BKE_fluidsim.h
index e730f4ec34c..f6070cd81f0 100644
--- a/source/blender/blenkernel/BKE_fluidsim.h
+++ b/source/blender/blenkernel/BKE_fluidsim.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -30,6 +30,9 @@
#ifndef BKE_FLUIDSIM_H
#define BKE_FLUIDSIM_H
+/** \file BKE_fluidsim.h
+ * \ingroup bke
+ */
struct Object;
struct Scene;
diff --git a/source/blender/blenkernel/BKE_font.h b/source/blender/blenkernel/BKE_font.h
index c47a0b21855..7f4e7c208f6 100644
--- a/source/blender/blenkernel/BKE_font.h
+++ b/source/blender/blenkernel/BKE_font.h
@@ -1,6 +1,4 @@
-/**
- * blenlib/BKE_vfont.h (mar-2001 nzc)
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -31,6 +29,10 @@
#ifndef BKE_VFONT_H
#define BKE_VFONT_H
+/** \file BKE_font.h
+ * \ingroup bke
+ */
+
#ifdef __cplusplus
extern "C" {
#endif
diff --git a/source/blender/blenkernel/BKE_global.h b/source/blender/blenkernel/BKE_global.h
index d222fe8d296..d83e0e5bc4c 100644
--- a/source/blender/blenkernel/BKE_global.h
+++ b/source/blender/blenkernel/BKE_global.h
@@ -1,10 +1,4 @@
-/**
- * blenlib/BKE_global.h (mar-2001 nzc)
- *
- * Global settings, handles, pointers. This is the root for finding
- * any data in Blender. This block is not serialized, but built anew
- * for every fresh Blender run.
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -35,6 +29,15 @@
#ifndef BKE_GLOBAL_H
#define BKE_GLOBAL_H
+/** \file BKE_global.h
+ * \ingroup bke
+ * \since March 2001
+ * \author nzc
+ * \section aboutglobal Global settings
+ * Global settings, handles, pointers. This is the root for finding
+ * any data in Blender. This block is not serialized, but built anew
+ * for every fresh Blender run.
+ */
#include "DNA_listBase.h"
#ifdef __cplusplus
diff --git a/source/blender/blenkernel/BKE_gpencil.h b/source/blender/blenkernel/BKE_gpencil.h
index 898538c6820..4898bb28c8d 100644
--- a/source/blender/blenkernel/BKE_gpencil.h
+++ b/source/blender/blenkernel/BKE_gpencil.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -28,6 +28,11 @@
#ifndef BKE_GPENCIL_H
#define BKE_GPENCIL_H
+/** \file BKE_gpencil.h
+ * \ingroup bke
+ * \author Joshua Leung
+ */
+
struct ListBase;
struct bGPdata;
struct bGPDlayer;
diff --git a/source/blender/blenkernel/BKE_group.h b/source/blender/blenkernel/BKE_group.h
index 767e3c97fef..e497f43e46d 100644
--- a/source/blender/blenkernel/BKE_group.h
+++ b/source/blender/blenkernel/BKE_group.h
@@ -1,6 +1,4 @@
-/**
- * blenlib/BKE_group.h (mar-2001 nzc)
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -31,6 +29,12 @@
#ifndef BKE_GROUP_H
#define BKE_GROUP_H
+/** \file BKE_group.h
+ * \ingroup bke
+ * \since March 2001
+ * \author nzc
+ */
+
struct Base;
struct Group;
struct GroupObject;
diff --git a/source/blender/blenkernel/BKE_icons.h b/source/blender/blenkernel/BKE_icons.h
index 42cbd22d9f1..5404402718d 100644
--- a/source/blender/blenkernel/BKE_icons.h
+++ b/source/blender/blenkernel/BKE_icons.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -31,6 +31,10 @@
#ifndef BKE_ICONS_H
#define BKE_ICONS_H
+/** \file BKE_icons.h
+ * \ingroup bke
+ */
+
/*
Resizable Icons for Blender
*/
diff --git a/source/blender/blenkernel/BKE_idcode.h b/source/blender/blenkernel/BKE_idcode.h
index b624e34e1cb..1b2b3d2ee95 100644
--- a/source/blender/blenkernel/BKE_idcode.h
+++ b/source/blender/blenkernel/BKE_idcode.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -30,6 +30,10 @@
#ifndef BKE_ID_INFO_H
#define BKE_ID_INFO_H
+/** \file BKE_idcode.h
+ * \ingroup bke
+ */
+
/**
* Convert an idcode into a name.
*
diff --git a/source/blender/blenkernel/BKE_idprop.h b/source/blender/blenkernel/BKE_idprop.h
index 0ca5690e635..e71ad5c8a24 100644
--- a/source/blender/blenkernel/BKE_idprop.h
+++ b/source/blender/blenkernel/BKE_idprop.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -28,6 +28,11 @@
#ifndef _BKE_IDPROP_H
#define _BKE_IDPROP_H
+/** \file BKE_idprop.h
+ * \ingroup bke
+ * \author Joseph Eagar
+ */
+
#include "DNA_ID.h"
struct IDProperty;
diff --git a/source/blender/blenkernel/BKE_image.h b/source/blender/blenkernel/BKE_image.h
index 283badc6faa..8f0ce8c1660 100644
--- a/source/blender/blenkernel/BKE_image.h
+++ b/source/blender/blenkernel/BKE_image.h
@@ -1,6 +1,4 @@
-/**
- * blenlib/BKE_image.h (mar-2001 nzc)
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -31,6 +29,12 @@
#ifndef BKE_IMAGE_H
#define BKE_IMAGE_H
+/** \file BKE_image.h
+ * \ingroup bke
+ * \since March 2001
+ * \author nzc
+ */
+
#ifdef __cplusplus
extern "C" {
#endif
diff --git a/source/blender/blenkernel/BKE_ipo.h b/source/blender/blenkernel/BKE_ipo.h
index e700f263011..ea98c226e67 100644
--- a/source/blender/blenkernel/BKE_ipo.h
+++ b/source/blender/blenkernel/BKE_ipo.h
@@ -1,6 +1,4 @@
-/**
- * blenlib/BKE_ipo.h (mar-2001 nzc)
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -31,6 +29,13 @@
#ifndef BKE_IPO_H
#define BKE_IPO_H
+/** \file BKE_ipo.h
+ * \ingroup bke
+ * \since March 2001
+ * \author nzc
+ * \author Joshua Leung
+ */
+
#ifdef __cplusplus
extern "C" {
#endif
diff --git a/source/blender/blenkernel/BKE_key.h b/source/blender/blenkernel/BKE_key.h
index d72dce3bf7c..c29320ef13c 100644
--- a/source/blender/blenkernel/BKE_key.h
+++ b/source/blender/blenkernel/BKE_key.h
@@ -1,6 +1,4 @@
-/**
- * blenlib/BKE_key.h (mar-2001 nzc)
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -31,6 +29,11 @@
#ifndef BKE_KEY_H
#define BKE_KEY_H
+/** \file BKE_key.h
+ * \ingroup bke
+ * \since March 2001
+ * \author nzc
+ */
struct Key;
struct KeyBlock;
struct ID;
diff --git a/source/blender/blenkernel/BKE_lattice.h b/source/blender/blenkernel/BKE_lattice.h
index 4f405e71662..2936338e760 100644
--- a/source/blender/blenkernel/BKE_lattice.h
+++ b/source/blender/blenkernel/BKE_lattice.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -25,12 +25,17 @@
* Contributor(s): none yet.
*
* ***** END GPL LICENSE BLOCK *****
- * june-2001 ton
*/
#ifndef BKE_LATTICE_H
#define BKE_LATTICE_H
+/** \file BKE_lattice.h
+ * \ingroup bke
+ * \author Ton Roosendaal
+ * \since June 2001
+ */
+
struct Lattice;
struct Object;
struct Scene;
diff --git a/source/blender/blenkernel/BKE_library.h b/source/blender/blenkernel/BKE_library.h
index f956749dc9d..871a78bbab3 100644
--- a/source/blender/blenkernel/BKE_library.h
+++ b/source/blender/blenkernel/BKE_library.h
@@ -1,8 +1,4 @@
-/**
- * blenlib/BKE_library.h (mar-2001 nzc)
- *
- * Library
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -33,6 +29,11 @@
#ifndef BKE_LIBRARY_TYPES_H
#define BKE_LIBRARY_TYPES_H
+/** \file BKE_library.h
+ * \ingroup bke
+ * \since March 2001
+ * \author nzc
+ */
#ifdef __cplusplus
extern "C" {
#endif
diff --git a/source/blender/blenkernel/BKE_main.h b/source/blender/blenkernel/BKE_main.h
index fcd61539b23..c60152f4a37 100644
--- a/source/blender/blenkernel/BKE_main.h
+++ b/source/blender/blenkernel/BKE_main.h
@@ -1,13 +1,4 @@
-/**
- * blenlib/BKE_main.h (mar-2001 nzc)
- *
- * Main is the root of the 'database' of a Blender context. All data
- * is stuffed into lists, and all these lists are knotted to here. A
- * Blender file is not much more but a binary dump of these
- * lists. This list of lists is not serialized itself.
- *
- * Oops... this should be a _types.h file.
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -38,6 +29,19 @@
#ifndef BKE_MAIN_H
#define BKE_MAIN_H
+/** \file BKE_main.h
+ * \ingroup bke
+ * \since March 2001
+ * \author nzc
+ * \section aboutmain Main struct
+ * Main is the root of the 'database' of a Blender context. All data
+ * is stuffed into lists, and all these lists are knotted to here. A
+ * Blender file is not much more but a binary dump of these
+ * lists. This list of lists is not serialized itself.
+ *
+ * Oops... this should be a _types.h file.
+ *
+ */
#include "DNA_listBase.h"
#ifdef __cplusplus
diff --git a/source/blender/blenkernel/BKE_material.h b/source/blender/blenkernel/BKE_material.h
index 16c99cd850f..523a67eff67 100644
--- a/source/blender/blenkernel/BKE_material.h
+++ b/source/blender/blenkernel/BKE_material.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -25,12 +25,15 @@
* Contributor(s): none yet.
*
* ***** END GPL LICENSE BLOCK *****
- * General operations, lookup, etc. for materials.
*/
#ifndef BKE_MATERIAL_H
#define BKE_MATERIAL_H
+/** \file BKE_material.h
+ * \ingroup bke
+ * \brief General operations, lookup, etc. for materials.
+ */
#ifdef __cplusplus
extern "C" {
#endif
diff --git a/source/blender/blenkernel/BKE_mball.h b/source/blender/blenkernel/BKE_mball.h
index 6f36c26dd3f..c4119e99780 100644
--- a/source/blender/blenkernel/BKE_mball.h
+++ b/source/blender/blenkernel/BKE_mball.h
@@ -1,6 +1,4 @@
-/**
- * blenlib/BKE_mball.h (mar-2001 nzc)
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -31,6 +29,11 @@
#ifndef BKE_MBALL_H
#define BKE_MBALL_H
+/** \file BKE_mball.h
+ * \ingroup bke
+ * \since March 2001
+ * \author nzc
+ */
struct MetaBall;
struct Object;
struct Scene;
diff --git a/source/blender/blenkernel/BKE_mesh.h b/source/blender/blenkernel/BKE_mesh.h
index 02d52e10fa5..0f5780ed5b0 100644
--- a/source/blender/blenkernel/BKE_mesh.h
+++ b/source/blender/blenkernel/BKE_mesh.h
@@ -1,4 +1,4 @@
-/**
+/*
* blenlib/BKE_mesh.h (mar-2001 nzc)
*
* $Id$
@@ -31,6 +31,10 @@
#ifndef BKE_MESH_H
#define BKE_MESH_H
+/** \file BKE_mesh.h
+ * \ingroup bke
+ */
+
/***/
struct BoundBox;
diff --git a/source/blender/blenkernel/BKE_modifier.h b/source/blender/blenkernel/BKE_modifier.h
index 5bef7527c87..af625ae9d9c 100644
--- a/source/blender/blenkernel/BKE_modifier.h
+++ b/source/blender/blenkernel/BKE_modifier.h
@@ -1,5 +1,4 @@
-/**
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -30,6 +29,10 @@
#ifndef BKE_MODIFIER_H
#define BKE_MODIFIER_H
+/** \file BKE_modifier.h
+ * \ingroup bke
+ */
+
#include "DNA_modifier_types.h" /* needed for all enum typdefs */
#include "BKE_customdata.h"
diff --git a/source/blender/blenkernel/BKE_multires.h b/source/blender/blenkernel/BKE_multires.h
index de895ebce51..ea34ff4aa07 100644
--- a/source/blender/blenkernel/BKE_multires.h
+++ b/source/blender/blenkernel/BKE_multires.h
@@ -30,6 +30,10 @@
#ifndef BKE_MULTIRES_H
#define BKE_MULTIRES_H
+/** \file BKE_multires.h
+ * \ingroup bke
+ */
+
struct DerivedMesh;
struct Mesh;
struct MFace;
diff --git a/source/blender/blenkernel/BKE_nla.h b/source/blender/blenkernel/BKE_nla.h
index 30bce613dbe..0206756a1ad 100644
--- a/source/blender/blenkernel/BKE_nla.h
+++ b/source/blender/blenkernel/BKE_nla.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -30,6 +30,11 @@
#ifndef BKE_NLA_H
#define BKE_NLA_H
+/** \file BKE_nla.h
+ * \ingroup bke
+ * \author Joshua Leung (full recode)
+ */
+
struct AnimData;
struct NlaStrip;
struct NlaTrack;
diff --git a/source/blender/blenkernel/BKE_node.h b/source/blender/blenkernel/BKE_node.h
index 57d18f58e2d..0896dfbabb1 100644
--- a/source/blender/blenkernel/BKE_node.h
+++ b/source/blender/blenkernel/BKE_node.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -33,6 +33,10 @@
#ifndef BKE_NODE_H
#define BKE_NODE_H
+/** \file BKE_node.h
+ * \ingroup bke
+ */
+
/* not very important, but the stack solver likes to know a maximum */
#define MAX_SOCKET 64
diff --git a/source/blender/blenkernel/BKE_object.h b/source/blender/blenkernel/BKE_object.h
index 100b5111717..3d32ba5a30a 100644
--- a/source/blender/blenkernel/BKE_object.h
+++ b/source/blender/blenkernel/BKE_object.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -25,12 +25,15 @@
* Contributor(s): none yet.
*
* ***** END GPL LICENSE BLOCK *****
- * General operations, lookup, etc. for blender objects.
*/
#ifndef BKE_OBJECT_H
#define BKE_OBJECT_H
+/** \file BKE_object.h
+ * \ingroup bke
+ * \brief General operations, lookup, etc. for blender objects.
+ */
#ifdef __cplusplus
extern "C" {
#endif
diff --git a/source/blender/blenkernel/BKE_packedFile.h b/source/blender/blenkernel/BKE_packedFile.h
index c3ab392fd85..541c581e762 100644
--- a/source/blender/blenkernel/BKE_packedFile.h
+++ b/source/blender/blenkernel/BKE_packedFile.h
@@ -1,6 +1,4 @@
-/**
- * blenlib/BKE_packedFile.h (mar-2001 nzc)
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -31,6 +29,11 @@
#ifndef BKE_PACKEDFILE_H
#define BKE_PACKEDFILE_H
+/** \file BKE_packedFile.h
+ * \ingroup bke
+ * \since March 2001
+ * \author nzc
+ */
#define RET_OK 0
#define RET_ERROR 1
diff --git a/source/blender/blenkernel/BKE_paint.h b/source/blender/blenkernel/BKE_paint.h
index 2203277b301..238c812906d 100644
--- a/source/blender/blenkernel/BKE_paint.h
+++ b/source/blender/blenkernel/BKE_paint.h
@@ -28,6 +28,10 @@
#ifndef BKE_PAINT_H
#define BKE_PAINT_H
+/** \file BKE_paint.h
+ * \ingroup bke
+ */
+
#include "DNA_vec_types.h"
struct Brush;
diff --git a/source/blender/blenkernel/BKE_particle.h b/source/blender/blenkernel/BKE_particle.h
index bb325420bbe..507adcc5f2d 100644
--- a/source/blender/blenkernel/BKE_particle.h
+++ b/source/blender/blenkernel/BKE_particle.h
@@ -1,6 +1,4 @@
-/* BKE_particle.h
- *
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -32,6 +30,10 @@
#ifndef BKE_PARTICLE_H
#define BKE_PARTICLE_H
+/** \file BKE_particle.h
+ * \ingroup bke
+ */
+
#include "DNA_particle_types.h"
#include "DNA_object_types.h"
diff --git a/source/blender/blenkernel/BKE_plugin_types.h b/source/blender/blenkernel/BKE_plugin_types.h
index 0bb1400858d..a7842b526ce 100644
--- a/source/blender/blenkernel/BKE_plugin_types.h
+++ b/source/blender/blenkernel/BKE_plugin_types.h
@@ -1,9 +1,4 @@
-/**
- * blenlib/BKE_plugin_types.h (mar-2001 nzc)
- *
- * Renderrecipe and scene decription. The fact that there is a
- * hierarchy here is a bit strange, and not desirable.
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -34,6 +29,11 @@
#ifndef BKE_PLUGIN_TYPES_H
#define BKE_PLUGIN_TYPES_H
+/** \file BKE_plugin_types.h
+ * \ingroup bke
+ * \author nzc
+ */
+
struct ImBuf;
typedef int (*TexDoitold)(int stype, void *cast, float *texvec, float *dxt, float *dyt);
diff --git a/source/blender/blenkernel/BKE_pointcache.h b/source/blender/blenkernel/BKE_pointcache.h
index e4623a31807..346368a5958 100644
--- a/source/blender/blenkernel/BKE_pointcache.h
+++ b/source/blender/blenkernel/BKE_pointcache.h
@@ -29,6 +29,10 @@
#ifndef BKE_POINTCACHE_H
#define BKE_POINTCACHE_H
+/** \file BKE_pointcache.h
+ * \ingroup bke
+ */
+
#include "DNA_ID.h"
#include "DNA_object_force.h"
#include "DNA_boid_types.h"
diff --git a/source/blender/blenkernel/BKE_property.h b/source/blender/blenkernel/BKE_property.h
index 5fab97b35e5..10014a4611d 100644
--- a/source/blender/blenkernel/BKE_property.h
+++ b/source/blender/blenkernel/BKE_property.h
@@ -1,6 +1,4 @@
-/**
- * blenkernel/BKE_property.h (mar-2001 nzc)
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -31,6 +29,10 @@
#ifndef BKE_PROPERTY_H
#define BKE_PROPERTY_H
+/** \file BKE_property.h
+ * \ingroup bke
+ */
+
struct bProperty;
struct ListBase;
struct Object;
diff --git a/source/blender/blenkernel/BKE_report.h b/source/blender/blenkernel/BKE_report.h
index b84808a7ddd..397c96422a5 100644
--- a/source/blender/blenkernel/BKE_report.h
+++ b/source/blender/blenkernel/BKE_report.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -28,6 +28,10 @@
#ifndef BKE_REPORT_H
#define BKE_REPORT_H
+/** \file BKE_report.h
+ * \ingroup bke
+ */
+
#ifdef __cplusplus
extern "C" {
#endif
diff --git a/source/blender/blenkernel/BKE_sca.h b/source/blender/blenkernel/BKE_sca.h
index a9238dadb27..0db0b71c102 100644
--- a/source/blender/blenkernel/BKE_sca.h
+++ b/source/blender/blenkernel/BKE_sca.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -29,6 +29,10 @@
#ifndef BKE_SCA_H
#define BKE_SCA_H
+/** \file BKE_sca.h
+ * \ingroup bke
+ */
+
struct Text;
struct bSensor;
struct Object;
diff --git a/source/blender/blenkernel/BKE_scene.h b/source/blender/blenkernel/BKE_scene.h
index 2337b95dcbc..ac85f91bf46 100644
--- a/source/blender/blenkernel/BKE_scene.h
+++ b/source/blender/blenkernel/BKE_scene.h
@@ -1,6 +1,4 @@
-/**
- * blenlib/BKE_scene.h (mar-2001 nzc)
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -31,6 +29,12 @@
#ifndef BKE_SCENE_H
#define BKE_SCENE_H
+/** \file BKE_scene.h
+ * \ingroup bke
+ * \since March 2001
+ * \author nzc
+ */
+
#ifdef __cplusplus
extern "C" {
#endif
diff --git a/source/blender/blenkernel/BKE_screen.h b/source/blender/blenkernel/BKE_screen.h
index 125486625bb..0a7d9780a6b 100644
--- a/source/blender/blenkernel/BKE_screen.h
+++ b/source/blender/blenkernel/BKE_screen.h
@@ -1,6 +1,4 @@
-/**
- * blenlib/BKE_screen.h (mar-2001 nzc)
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -31,6 +29,12 @@
#ifndef BKE_SCREEN_H
#define BKE_SCREEN_H
+/** \file BKE_screen.h
+ * \ingroup bke
+ * \since March 2001
+ * \author nzc
+ */
+
struct ARegion;
struct bContext;
struct bContextDataResult;
diff --git a/source/blender/blenkernel/BKE_script.h b/source/blender/blenkernel/BKE_script.h
index 4ea1ee6db85..304e46fe2c5 100644
--- a/source/blender/blenkernel/BKE_script.h
+++ b/source/blender/blenkernel/BKE_script.h
@@ -1,6 +1,4 @@
-/**
- * blenlib/BKE_script.h (mar-2001 nzc)
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -31,6 +29,13 @@
#ifndef BKE_SCRIPT_H
#define BKE_SCRIPT_H
+/** \file BKE_script.h
+ * \ingroup bke
+ * \since March 2001
+ * \author nzc
+ * \author Willian P. Germano
+ */
+
#ifdef __cplusplus
extern "C" {
#endif
diff --git a/source/blender/blenkernel/BKE_sequencer.h b/source/blender/blenkernel/BKE_sequencer.h
index eb19fce94e5..cc1d8537cbd 100644
--- a/source/blender/blenkernel/BKE_sequencer.h
+++ b/source/blender/blenkernel/BKE_sequencer.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -31,6 +31,10 @@
#ifndef BKE_SEQUENCER_H
#define BKE_SEQUENCER_H
+/** \file BKE_sequencer.h
+ * \ingroup bke
+ */
+
struct bContext;
struct Editing;
struct ImBuf;
@@ -254,6 +258,7 @@ int seq_single_check(struct Sequence *seq);
void seq_single_fix(struct Sequence *seq);
int seq_test_overlap(struct ListBase * seqbasep, struct Sequence *test);
void seq_translate(struct Scene *scene, struct Sequence *seq, int delta);
+struct Sequence *seq_foreground_frame_get(struct Scene *scene, int frame);
struct ListBase *seq_seqbase(struct ListBase *seqbase, struct Sequence *seq);
void seq_offset_animdata(struct Scene *scene, struct Sequence *seq, int ofs);
void seq_dupe_animdata(struct Scene *scene, char *name_from, char *name_to);
diff --git a/source/blender/blenkernel/BKE_shrinkwrap.h b/source/blender/blenkernel/BKE_shrinkwrap.h
index 6b8e7860db8..937a46d68dd 100644
--- a/source/blender/blenkernel/BKE_shrinkwrap.h
+++ b/source/blender/blenkernel/BKE_shrinkwrap.h
@@ -1,6 +1,4 @@
-/**
- * BKE_shrinkwrap.h
- *
+/*
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
@@ -29,6 +27,10 @@
#ifndef BKE_SHRINKWRAP_H
#define BKE_SHRINKWRAP_H
+/** \file BKE_shrinkwrap.h
+ * \ingroup bke
+ */
+
/* mesh util */
//TODO: move this somewhere else
diff --git a/source/blender/blenkernel/BKE_sketch.h b/source/blender/blenkernel/BKE_sketch.h
index a59464bb7ba..f42d733d583 100644
--- a/source/blender/blenkernel/BKE_sketch.h
+++ b/source/blender/blenkernel/BKE_sketch.h
@@ -1,5 +1,4 @@
-/**
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -25,6 +24,10 @@
#ifndef BKE_SKETCH_H
#define BKE_SKETCH_H
+/** \file BKE_sketch.h
+ * \ingroup bke
+ */
+
typedef enum SK_PType
{
PT_CONTINUOUS,
diff --git a/source/blender/blenkernel/BKE_smoke.h b/source/blender/blenkernel/BKE_smoke.h
index 396db60714a..16e5336bcc1 100644
--- a/source/blender/blenkernel/BKE_smoke.h
+++ b/source/blender/blenkernel/BKE_smoke.h
@@ -1,6 +1,4 @@
-/**
- * BKE_smoke.h
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -32,6 +30,11 @@
#ifndef BKE_SMOKE_H_
#define BKE_SMOKE_H_
+/** \file BKE_smoke.h
+ * \ingroup bke
+ * \author Daniel Genrich
+ */
+
typedef float (*bresenham_callback) (float *result, float *input, int res[3], int *pixel, float *tRay, float correct);
void smokeModifier_do(struct SmokeModifierData *smd, struct Scene *scene, struct Object *ob, struct DerivedMesh *dm);
diff --git a/source/blender/blenkernel/BKE_softbody.h b/source/blender/blenkernel/BKE_softbody.h
index 738fe7dde82..6aea9344070 100644
--- a/source/blender/blenkernel/BKE_softbody.h
+++ b/source/blender/blenkernel/BKE_softbody.h
@@ -1,6 +1,4 @@
-/**
- * BKE_softbody.h
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -31,6 +29,10 @@
#ifndef BKE_SOFTBODY_H
#define BKE_SOFTBODY_H
+/** \file BKE_softbody.h
+ * \ingroup bke
+ */
+
struct Object;
struct Scene;
struct SoftBody;
diff --git a/source/blender/blenkernel/BKE_sound.h b/source/blender/blenkernel/BKE_sound.h
index cf77049b599..acd4718a65a 100644
--- a/source/blender/blenkernel/BKE_sound.h
+++ b/source/blender/blenkernel/BKE_sound.h
@@ -1,6 +1,4 @@
-/**
- * sound.h (mar-2001 nzc)
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -31,6 +29,12 @@
#ifndef BKE_SOUND_H
#define BKE_SOUND_H
+/** \file BKE_sound.h
+ * \ingroup bke
+ * \since March 2001
+ * \author nzc
+ */
+
struct PackedFile;
struct bSound;
struct bContext;
@@ -45,7 +49,7 @@ void sound_init(struct Main *main);
void sound_exit(void);
void sound_force_device(int device);
-int sound_define_from_str(char *str);
+int sound_define_from_str(const char *str);
struct bSound* sound_new_file(struct Main *main, const char *filename);
diff --git a/source/blender/blenkernel/BKE_subsurf.h b/source/blender/blenkernel/BKE_subsurf.h
index ef3ad3ad2e9..b82db853d37 100644
--- a/source/blender/blenkernel/BKE_subsurf.h
+++ b/source/blender/blenkernel/BKE_subsurf.h
@@ -28,6 +28,10 @@
#ifndef BKE_SUBSURF_H
#define BKE_SUBSURF_H
+/** \file BKE_subsurf.h
+ * \ingroup bke
+ */
+
struct DMGridAdjacency;
struct DMGridData;
struct DerivedMesh;
diff --git a/source/blender/blenkernel/BKE_suggestions.h b/source/blender/blenkernel/BKE_suggestions.h
index 9eb8897e0e0..e215cabd70f 100644
--- a/source/blender/blenkernel/BKE_suggestions.h
+++ b/source/blender/blenkernel/BKE_suggestions.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -29,6 +29,10 @@
#ifndef BKE_SUGGESTIONS_H
#define BKE_SUGGESTIONS_H
+/** \file BKE_suggestions.h
+ * \ingroup bke
+ */
+
#ifdef __cplusplus
extern "C" {
#endif
diff --git a/source/blender/blenkernel/BKE_text.h b/source/blender/blenkernel/BKE_text.h
index 5f55f8b351e..a6b98b8ea88 100644
--- a/source/blender/blenkernel/BKE_text.h
+++ b/source/blender/blenkernel/BKE_text.h
@@ -1,6 +1,4 @@
-/**
- * blenlib/BKE_text.h (mar-2001 nzc)
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -31,6 +29,12 @@
#ifndef BKE_TEXT_H
#define BKE_TEXT_H
+/** \file BKE_text.h
+ * \ingroup bke
+ * \since March 2001
+ * \author nzc
+ */
+
#ifdef __cplusplus
extern "C" {
#endif
diff --git a/source/blender/blenkernel/BKE_texture.h b/source/blender/blenkernel/BKE_texture.h
index da9f13e07bc..e6a21ec3966 100644
--- a/source/blender/blenkernel/BKE_texture.h
+++ b/source/blender/blenkernel/BKE_texture.h
@@ -1,6 +1,4 @@
-/**
- * blenlib/BKE_texture.h (mar-2001 nzc)
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -31,6 +29,12 @@
#ifndef BKE_TEXTURE_H
#define BKE_TEXTURE_H
+/** \file BKE_texture.h
+ * \ingroup bke
+ * \since March 2001
+ * \author nzc
+ */
+
#ifdef __cplusplus
extern "C" {
#endif
diff --git a/source/blender/blenkernel/BKE_unit.h b/source/blender/blenkernel/BKE_unit.h
index 5708766432f..0a3e56c8cba 100644
--- a/source/blender/blenkernel/BKE_unit.h
+++ b/source/blender/blenkernel/BKE_unit.h
@@ -1,4 +1,4 @@
-/**
+/*
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -24,6 +24,10 @@
#ifndef BKE_UNIT_H
#define BKE_UNIT_H
+/** \file BKE_unit.h
+ * \ingroup bke
+ */
+
#ifdef __cplusplus
extern "C" {
#endif
diff --git a/source/blender/blenkernel/BKE_utildefines.h b/source/blender/blenkernel/BKE_utildefines.h
index fca6a8cbef8..14e622c972e 100644
--- a/source/blender/blenkernel/BKE_utildefines.h
+++ b/source/blender/blenkernel/BKE_utildefines.h
@@ -27,8 +27,12 @@
* ***** END GPL LICENSE BLOCK *****
*/
-/* This file shold contain blender format spesific macros
- * generic defines should go in BLI_utildefines.h */
+/** \file BKE_utildefines.h
+ * \ingroup bke
+ * \brief blender format spesific macros
+ * \note generic defines should go in BLI_utildefines.h
+ */
+
#ifndef BKE_UTILDEFINES_H
#define BKE_UTILDEFINES_H
diff --git a/source/blender/blenkernel/BKE_world.h b/source/blender/blenkernel/BKE_world.h
index 8c6da40fcea..30780b87085 100644
--- a/source/blender/blenkernel/BKE_world.h
+++ b/source/blender/blenkernel/BKE_world.h
@@ -1,6 +1,4 @@
-/**
- * blenlib/BKE_world.h (mar-2001 nzc)
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -31,6 +29,12 @@
#ifndef BKE_WORLD_H
#define BKE_WORLD_H
+/** \file BKE_world.h
+ * \ingroup bke
+ * \since March 2001
+ * \author nzc
+ */
+
struct World;
void free_world(struct World *sc);
diff --git a/source/blender/blenkernel/BKE_writeavi.h b/source/blender/blenkernel/BKE_writeavi.h
index c7f26d9b76c..19cc1ae2dbf 100644
--- a/source/blender/blenkernel/BKE_writeavi.h
+++ b/source/blender/blenkernel/BKE_writeavi.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -30,6 +30,10 @@
#ifndef BKE_WRITEAVI_H
#define BKE_WRITEAVI_H
+/** \file BKE_writeavi.h
+ * \ingroup bke
+ */
+
#ifdef __cplusplus
extern "C" {
#endif
diff --git a/source/blender/blenkernel/BKE_writeffmpeg.h b/source/blender/blenkernel/BKE_writeffmpeg.h
index 311676b37b5..2b10f1b246c 100644
--- a/source/blender/blenkernel/BKE_writeffmpeg.h
+++ b/source/blender/blenkernel/BKE_writeffmpeg.h
@@ -1,4 +1,4 @@
-/**
+/*
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
@@ -28,6 +28,10 @@
#ifndef BKE_WRITEFFMPEG_H
#define BKE_WRITEFFMPEG_H
+/** \file BKE_writeffmpeg.h
+ * \ingroup bke
+ */
+
#ifdef WITH_FFMPEG
#ifdef __cplusplus
diff --git a/source/blender/blenkernel/BKE_writeframeserver.h b/source/blender/blenkernel/BKE_writeframeserver.h
index 036e0dbd774..2117a23b938 100644
--- a/source/blender/blenkernel/BKE_writeframeserver.h
+++ b/source/blender/blenkernel/BKE_writeframeserver.h
@@ -1,4 +1,4 @@
-/**
+/*
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
@@ -28,6 +28,10 @@
#ifndef BKE_WRITEFRAMESERVER_H
#define BKE_WRITEFRAMESERVER_H
+/** \file BKE_writeframeserver.h
+ * \ingroup bke
+ */
+
#ifdef __cplusplus
extern "C" {
#endif
diff --git a/source/blender/blenkernel/CMakeLists.txt b/source/blender/blenkernel/CMakeLists.txt
index c7a474c5949..af02352dfbc 100644
--- a/source/blender/blenkernel/CMakeLists.txt
+++ b/source/blender/blenkernel/CMakeLists.txt
@@ -49,6 +49,7 @@ set(INC
../../../intern/memutil
../../../intern/opennl/extern
../../../intern/smoke/extern
+ ../../../intern/mikktspace
../../../source/blender/windowmanager # XXX - BAD LEVEL CALL WM_api.h
${ZLIB_INCLUDE_DIRS}
)
diff --git a/source/blender/blenkernel/SConscript b/source/blender/blenkernel/SConscript
index c5c7575da38..d865912f5e0 100644
--- a/source/blender/blenkernel/SConscript
+++ b/source/blender/blenkernel/SConscript
@@ -12,6 +12,7 @@ incs += ' #/extern/bullet2/src'
incs += ' #/intern/opennl/extern #/intern/bsp/extern'
incs += ' ../gpu #/extern/glew/include'
incs += ' #/intern/smoke/extern'
+incs += ' #/intern/mikktspace'
incs += ' #/intern/audaspace/intern'
incs += ' ' + env['BF_OPENGL_INC']
diff --git a/source/blender/blenkernel/intern/CCGSubSurf.c b/source/blender/blenkernel/intern/CCGSubSurf.c
index 8c265a1f8c9..3564c93681a 100644
--- a/source/blender/blenkernel/intern/CCGSubSurf.c
+++ b/source/blender/blenkernel/intern/CCGSubSurf.c
@@ -243,13 +243,13 @@ enum {
Vert_eEffected= (1<<0),
Vert_eChanged= (1<<1),
Vert_eSeam= (1<<2),
-} VertFlags;
+} /*VertFlags*/;
enum {
Edge_eEffected= (1<<0),
-} CCGEdgeFlags;
+} /*CCGEdgeFlags*/;
enum {
Face_eEffected= (1<<0),
-} FaceFlags;
+} /*FaceFlags*/;
struct _CCGVert {
CCGVert *next; /* EHData.next */
diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c
index eedc2636991..79e23b77306 100644
--- a/source/blender/blenkernel/intern/DerivedMesh.c
+++ b/source/blender/blenkernel/intern/DerivedMesh.c
@@ -948,7 +948,7 @@ static void emDM_drawMappedFacesGLSL(DerivedMesh *dm,
} \
if(attribs.tottang) { \
float *tang = attribs.tang.array[i*4 + vert]; \
- glVertexAttrib3fvARB(attribs.tang.glIndex, tang); \
+ glVertexAttrib4fvARB(attribs.tang.glIndex, tang); \
} \
}
@@ -2481,6 +2481,111 @@ float *mesh_get_mapped_verts_nors(Scene *scene, Object *ob)
/* ******************* GLSL ******************** */
+typedef struct
+{
+ float * precomputedFaceNormals;
+ MTFace * mtface; // texture coordinates
+ MFace * mface; // indices
+ MVert * mvert; // vertices & normals
+ float (*orco)[3];
+ float (*tangent)[4]; // destination
+ int numFaces;
+
+} SGLSLMeshToTangent;
+
+// interface
+#include "mikktspace.h"
+
+static int GetNumFaces(const SMikkTSpaceContext * pContext)
+{
+ SGLSLMeshToTangent * pMesh = (SGLSLMeshToTangent *) pContext->m_pUserData;
+ return pMesh->numFaces;
+}
+
+static int GetNumVertsOfFace(const SMikkTSpaceContext * pContext, const int face_num)
+{
+ SGLSLMeshToTangent * pMesh = (SGLSLMeshToTangent *) pContext->m_pUserData;
+ return pMesh->mface[face_num].v4!=0 ? 4 : 3;
+}
+
+static void GetPosition(const SMikkTSpaceContext * pContext, float fPos[], const int face_num, const int vert_index)
+{
+ //assert(vert_index>=0 && vert_index<4);
+ SGLSLMeshToTangent * pMesh = (SGLSLMeshToTangent *) pContext->m_pUserData;
+ unsigned int indices[] = { pMesh->mface[face_num].v1, pMesh->mface[face_num].v2,
+ pMesh->mface[face_num].v3, pMesh->mface[face_num].v4 };
+ VECCOPY(fPos, pMesh->mvert[indices[vert_index]].co);
+}
+
+static void GetTextureCoordinate(const SMikkTSpaceContext * pContext, float fUV[], const int face_num, const int vert_index)
+{
+ //assert(vert_index>=0 && vert_index<4);
+ SGLSLMeshToTangent * pMesh = (SGLSLMeshToTangent *) pContext->m_pUserData;
+
+ if(pMesh->mtface!=NULL)
+ {
+ float * uv = pMesh->mtface[face_num].uv[vert_index];
+ fUV[0]=uv[0]; fUV[1]=uv[1];
+ }
+ else
+ {
+ unsigned int indices[] = { pMesh->mface[face_num].v1, pMesh->mface[face_num].v2,
+ pMesh->mface[face_num].v3, pMesh->mface[face_num].v4 };
+
+ map_to_sphere( &fUV[0], &fUV[1],pMesh->orco[indices[vert_index]][0], pMesh->orco[indices[vert_index]][1], pMesh->orco[indices[vert_index]][2]);
+ }
+}
+
+static void GetNormal(const SMikkTSpaceContext * pContext, float fNorm[], const int face_num, const int vert_index)
+{
+ //assert(vert_index>=0 && vert_index<4);
+ SGLSLMeshToTangent * pMesh = (SGLSLMeshToTangent *) pContext->m_pUserData;
+ unsigned int indices[] = { pMesh->mface[face_num].v1, pMesh->mface[face_num].v2,
+ pMesh->mface[face_num].v3, pMesh->mface[face_num].v4 };
+
+ const int smoothnormal = (pMesh->mface[face_num].flag & ME_SMOOTH);
+ if(!smoothnormal) // flat
+ {
+ if(pMesh->precomputedFaceNormals)
+ {
+ VECCOPY(fNorm, &pMesh->precomputedFaceNormals[3*face_num]);
+ }
+ else
+ {
+ float nor[3];
+ float * p0, * p1, * p2;
+ const int iGetNrVerts = pMesh->mface[face_num].v4!=0 ? 4 : 3;
+ p0 = pMesh->mvert[indices[0]].co; p1 = pMesh->mvert[indices[1]].co; p2 = pMesh->mvert[indices[2]].co;
+ if(iGetNrVerts==4)
+ {
+ float * p3 = pMesh->mvert[indices[3]].co;
+ normal_quad_v3( nor, p0, p1, p2, p3);
+ }
+ else {
+ normal_tri_v3(nor, p0, p1, p2);
+ }
+ VECCOPY(fNorm, nor);
+ }
+ }
+ else
+ {
+ int i=0;
+ short * no = pMesh->mvert[indices[vert_index]].no;
+ for(i=0; i<3; i++)
+ fNorm[i]=no[i]/32767.0f;
+ normalize_v3(fNorm);
+ }
+}
+static void SetTSpace(const SMikkTSpaceContext * pContext, const float fvTangent[], const float fSign, const int face_num, const int iVert)
+{
+ //assert(vert_index>=0 && vert_index<4);
+ SGLSLMeshToTangent * pMesh = (SGLSLMeshToTangent *) pContext->m_pUserData;
+ float * pRes = pMesh->tangent[4*face_num+iVert];
+ VECCOPY(pRes, fvTangent);
+ pRes[3]=fSign;
+}
+
+
void DM_add_tangent_layer(DerivedMesh *dm)
{
/* mesh vars */
@@ -2489,14 +2594,17 @@ void DM_add_tangent_layer(DerivedMesh *dm)
MVert *mvert, *v1, *v2, *v3, *v4;
MemArena *arena= NULL;
VertexTangent **vtangents= NULL;
- float (*orco)[3]= NULL, (*tangent)[3];
+ float (*orco)[3]= NULL, (*tangent)[4];
float *uv1, *uv2, *uv3, *uv4, *vtang;
float fno[3], tang[3], uv[4][2];
- int i, j, len, mf_vi[4], totvert, totface;
+ int i, j, len, mf_vi[4], totvert, totface, iCalcNewMethod;
+ float *nors;
if(CustomData_get_layer_index(&dm->faceData, CD_TANGENT) != -1)
return;
+ nors = dm->getFaceDataArray(dm, CD_NORMAL);
+
/* check we have all the needed layers */
totvert= dm->getNumVerts(dm);
totface= dm->getNumFaces(dm);
@@ -2519,72 +2627,108 @@ void DM_add_tangent_layer(DerivedMesh *dm)
arena= BLI_memarena_new(BLI_MEMARENA_STD_BUFSIZE, "tangent layer arena");
BLI_memarena_use_calloc(arena);
vtangents= MEM_callocN(sizeof(VertexTangent*)*totvert, "VertexTangent");
-
- /* sum tangents at connected vertices */
- for(i=0, tf=mtface, mf=mface; i < totface; mf++, tf++, i++) {
- v1= &mvert[mf->v1];
- v2= &mvert[mf->v2];
- v3= &mvert[mf->v3];
-
- if (mf->v4) {
- v4= &mvert[mf->v4];
- normal_quad_v3( fno,v4->co, v3->co, v2->co, v1->co);
- }
- else {
- v4= NULL;
- normal_tri_v3( fno,v3->co, v2->co, v1->co);
- }
-
- if(mtface) {
- uv1= tf->uv[0];
- uv2= tf->uv[1];
- uv3= tf->uv[2];
- uv4= tf->uv[3];
- }
- else {
- uv1= uv[0]; uv2= uv[1]; uv3= uv[2]; uv4= uv[3];
- map_to_sphere( &uv[0][0], &uv[0][1],orco[mf->v1][0], orco[mf->v1][1], orco[mf->v1][2]);
- map_to_sphere( &uv[1][0], &uv[1][1],orco[mf->v2][0], orco[mf->v2][1], orco[mf->v2][2]);
- map_to_sphere( &uv[2][0], &uv[2][1],orco[mf->v3][0], orco[mf->v3][1], orco[mf->v3][2]);
- if(v4)
- map_to_sphere( &uv[3][0], &uv[3][1],orco[mf->v4][0], orco[mf->v4][1], orco[mf->v4][2]);
- }
+
+ // new computation method
+ iCalcNewMethod = 1;
+ if(iCalcNewMethod!=0)
+ {
+ SGLSLMeshToTangent mesh2tangent;
+ SMikkTSpaceContext sContext;
+ SMikkTSpaceInterface sInterface;
+ memset(&mesh2tangent, 0, sizeof(SGLSLMeshToTangent));
+ memset(&sContext, 0, sizeof(SMikkTSpaceContext));
+ memset(&sInterface, 0, sizeof(SMikkTSpaceInterface));
+
+ mesh2tangent.precomputedFaceNormals = nors;
+ mesh2tangent.mtface = mtface;
+ mesh2tangent.mface = mface;
+ mesh2tangent.mvert = mvert;
+ mesh2tangent.orco = orco;
+ mesh2tangent.tangent = tangent;
+ mesh2tangent.numFaces = totface;
+
+ sContext.m_pUserData = &mesh2tangent;
+ sContext.m_pInterface = &sInterface;
+ sInterface.m_getNumFaces = GetNumFaces;
+ sInterface.m_getNumVerticesOfFace = GetNumVertsOfFace;
+ sInterface.m_getPosition = GetPosition;
+ sInterface.m_getTexCoord = GetTextureCoordinate;
+ sInterface.m_getNormal = GetNormal;
+ sInterface.m_setTSpaceBasic = SetTSpace;
+
+ // 0 if failed
+ iCalcNewMethod = genTangSpaceDefault(&sContext);
+ }
+
+ if(!iCalcNewMethod)
+ {
+ /* sum tangents at connected vertices */
+ for(i=0, tf=mtface, mf=mface; i < totface; mf++, tf++, i++) {
+ v1= &mvert[mf->v1];
+ v2= &mvert[mf->v2];
+ v3= &mvert[mf->v3];
+
+ if (mf->v4) {
+ v4= &mvert[mf->v4];
+ normal_quad_v3( fno,v4->co, v3->co, v2->co, v1->co);
+ }
+ else {
+ v4= NULL;
+ normal_tri_v3( fno,v3->co, v2->co, v1->co);
+ }
- tangent_from_uv(uv1, uv2, uv3, v1->co, v2->co, v3->co, fno, tang);
- sum_or_add_vertex_tangent(arena, &vtangents[mf->v1], tang, uv1);
- sum_or_add_vertex_tangent(arena, &vtangents[mf->v2], tang, uv2);
- sum_or_add_vertex_tangent(arena, &vtangents[mf->v3], tang, uv3);
+ if(mtface) {
+ uv1= tf->uv[0];
+ uv2= tf->uv[1];
+ uv3= tf->uv[2];
+ uv4= tf->uv[3];
+ }
+ else {
+ uv1= uv[0]; uv2= uv[1]; uv3= uv[2]; uv4= uv[3];
+ map_to_sphere( &uv[0][0], &uv[0][1],orco[mf->v1][0], orco[mf->v1][1], orco[mf->v1][2]);
+ map_to_sphere( &uv[1][0], &uv[1][1],orco[mf->v2][0], orco[mf->v2][1], orco[mf->v2][2]);
+ map_to_sphere( &uv[2][0], &uv[2][1],orco[mf->v3][0], orco[mf->v3][1], orco[mf->v3][2]);
+ if(v4)
+ map_to_sphere( &uv[3][0], &uv[3][1],orco[mf->v4][0], orco[mf->v4][1], orco[mf->v4][2]);
+ }
- if(mf->v4) {
- v4= &mvert[mf->v4];
-
- tangent_from_uv(uv1, uv3, uv4, v1->co, v3->co, v4->co, fno, tang);
+ tangent_from_uv(uv1, uv2, uv3, v1->co, v2->co, v3->co, fno, tang);
sum_or_add_vertex_tangent(arena, &vtangents[mf->v1], tang, uv1);
+ sum_or_add_vertex_tangent(arena, &vtangents[mf->v2], tang, uv2);
sum_or_add_vertex_tangent(arena, &vtangents[mf->v3], tang, uv3);
- sum_or_add_vertex_tangent(arena, &vtangents[mf->v4], tang, uv4);
+
+ if(mf->v4) {
+ v4= &mvert[mf->v4];
+
+ tangent_from_uv(uv1, uv3, uv4, v1->co, v3->co, v4->co, fno, tang);
+ sum_or_add_vertex_tangent(arena, &vtangents[mf->v1], tang, uv1);
+ sum_or_add_vertex_tangent(arena, &vtangents[mf->v3], tang, uv3);
+ sum_or_add_vertex_tangent(arena, &vtangents[mf->v4], tang, uv4);
+ }
}
- }
- /* write tangent to layer */
- for(i=0, tf=mtface, mf=mface; i < totface; mf++, tf++, i++, tangent+=4) {
- len= (mf->v4)? 4 : 3;
-
- if(mtface == NULL) {
- map_to_sphere( &uv[0][0], &uv[0][1],orco[mf->v1][0], orco[mf->v1][1], orco[mf->v1][2]);
- map_to_sphere( &uv[1][0], &uv[1][1],orco[mf->v2][0], orco[mf->v2][1], orco[mf->v2][2]);
- map_to_sphere( &uv[2][0], &uv[2][1],orco[mf->v3][0], orco[mf->v3][1], orco[mf->v3][2]);
- if(len==4)
- map_to_sphere( &uv[3][0], &uv[3][1],orco[mf->v4][0], orco[mf->v4][1], orco[mf->v4][2]);
- }
+ /* write tangent to layer */
+ for(i=0, tf=mtface, mf=mface; i < totface; mf++, tf++, i++, tangent+=4) {
+ len= (mf->v4)? 4 : 3;
+
+ if(mtface == NULL) {
+ map_to_sphere( &uv[0][0], &uv[0][1],orco[mf->v1][0], orco[mf->v1][1], orco[mf->v1][2]);
+ map_to_sphere( &uv[1][0], &uv[1][1],orco[mf->v2][0], orco[mf->v2][1], orco[mf->v2][2]);
+ map_to_sphere( &uv[2][0], &uv[2][1],orco[mf->v3][0], orco[mf->v3][1], orco[mf->v3][2]);
+ if(len==4)
+ map_to_sphere( &uv[3][0], &uv[3][1],orco[mf->v4][0], orco[mf->v4][1], orco[mf->v4][2]);
+ }
- mf_vi[0]= mf->v1;
- mf_vi[1]= mf->v2;
- mf_vi[2]= mf->v3;
- mf_vi[3]= mf->v4;
+ mf_vi[0]= mf->v1;
+ mf_vi[1]= mf->v2;
+ mf_vi[2]= mf->v3;
+ mf_vi[3]= mf->v4;
- for(j=0; j<len; j++) {
- vtang= find_vertex_tangent(vtangents[mf_vi[j]], mtface ? tf->uv[j] : uv[j]);
- normalize_v3_v3(tangent[j], vtang);
+ for(j=0; j<len; j++) {
+ vtang= find_vertex_tangent(vtangents[mf_vi[j]], mtface ? tf->uv[j] : uv[j]);
+ normalize_v3_v3(tangent[j], vtang);
+ ((float *) tangent[j])[3]=1.0f;
+ }
}
}
diff --git a/source/blender/blenkernel/intern/anim.c b/source/blender/blenkernel/intern/anim.c
index 8fdfca33efb..08d506f94b8 100644
--- a/source/blender/blenkernel/intern/anim.c
+++ b/source/blender/blenkernel/intern/anim.c
@@ -49,6 +49,7 @@
#include "DNA_scene_types.h"
#include "DNA_vfont_types.h"
+#include "BKE_animsys.h"
#include "BKE_curve.h"
#include "BKE_DerivedMesh.h"
#include "BKE_depsgraph.h"
@@ -742,41 +743,69 @@ static void group_duplilist(ListBase *lb, Scene *scene, Object *ob, int level, i
static void frames_duplilist(ListBase *lb, Scene *scene, Object *ob, int level, int animated)
{
extern int enable_cu_speed; /* object.c */
- Object copyob;
- DupliObject *dob;
- int cfrao, ok;
+ Object copyob = {{NULL}};
+ int cfrao = scene->r.cfra;
- /* simple preventing of too deep nested groups */
- if(level>MAX_DUPLI_RECUR) return;
+ /* simple prevention of too deep nested groups */
+ if (level > MAX_DUPLI_RECUR) return;
- cfrao= scene->r.cfra;
- if(ob->parent==NULL && ob->constraints.first==NULL) return;
-
- if(ob->transflag & OB_DUPLINOSPEED) enable_cu_speed= 0;
- copyob= *ob; /* store transform info */
-
- for(scene->r.cfra= ob->dupsta; scene->r.cfra<=ob->dupend; scene->r.cfra++) {
-
- ok= 1;
- if(ob->dupoff) {
+ /* if we don't have any data/settings which will lead to object movement,
+ * don't waste time trying, as it will all look the same...
+ */
+ if (ob->parent==NULL && ob->constraints.first==NULL && ob->adt==NULL)
+ return;
+
+ /* make a copy of the object's original data (before any dupli-data overwrites it)
+ * as we'll need this to keep track of unkeyed data
+ * - this doesn't take into account other data that can be reached from the object,
+ * for example it's shapekeys or bones, hence the need for an update flush at the end
+ */
+ copyob = *ob;
+
+ /* duplicate over the required range */
+ if (ob->transflag & OB_DUPLINOSPEED) enable_cu_speed= 0;
+
+ for (scene->r.cfra= ob->dupsta; scene->r.cfra<=ob->dupend; scene->r.cfra++) {
+ short ok= 1;
+
+ /* - dupoff = how often a frames within the range shouldn't be made into duplis
+ * - dupon = the length of each "skipping" block in frames
+ */
+ if (ob->dupoff) {
ok= scene->r.cfra - ob->dupsta;
ok= ok % (ob->dupon+ob->dupoff);
- if(ok < ob->dupon) ok= 1;
- else ok= 0;
+ ok= (ok < ob->dupon);
}
- if(ok) {
-#if 0 // XXX old animation system
- do_ob_ipo(scene, ob);
-#endif // XXX old animation system
+
+ if (ok) {
+ DupliObject *dob;
+
+ /* WARNING: doing animation updates in this way is not terribly accurate, as the dependencies
+ * and/or other objects which may affect this object's transforms are not updated either.
+ * However, this has always been the way that this worked (i.e. pre 2.5), so I guess that it'll be fine!
+ */
+ BKE_animsys_evaluate_animdata(&ob->id, ob->adt, (float)scene->r.cfra, ADT_RECALC_ANIM); /* ob-eval will do drivers, so we don't need to do them */
where_is_object_time(scene, ob, (float)scene->r.cfra);
+
dob= new_dupli_object(lb, ob, ob->obmat, ob->lay, scene->r.cfra, OB_DUPLIFRAMES, animated);
copy_m4_m4(dob->omat, copyob.obmat);
}
}
- *ob= copyob; /* restore transform info */
- scene->r.cfra= cfrao;
enable_cu_speed= 1;
+
+ /* reset frame to original frame, then re-evaluate animation as above
+ * as 2.5 animation data may have far-reaching consequences
+ */
+ scene->r.cfra= cfrao;
+
+ BKE_animsys_evaluate_animdata(&ob->id, ob->adt, (float)scene->r.cfra, ADT_RECALC_ANIM); /* ob-eval will do drivers, so we don't need to do them */
+ where_is_object_time(scene, ob, (float)scene->r.cfra);
+
+ /* but, to make sure unkeyed object transforms are still sane,
+ * let's copy object's original data back over
+ */
+ *ob = copyob;
}
typedef struct vertexDupliData {
diff --git a/source/blender/blenkernel/intern/armature.c b/source/blender/blenkernel/intern/armature.c
index cc01438fd5d..3174954423f 100644
--- a/source/blender/blenkernel/intern/armature.c
+++ b/source/blender/blenkernel/intern/armature.c
@@ -2100,7 +2100,7 @@ void pchan_to_mat4(bPoseChannel *pchan, float chan_mat[4][4])
/* loc/rot/size to mat4 */
/* used in constraint.c too */
-void chan_calc_mat(bPoseChannel *pchan)
+void pchan_calc_mat(bPoseChannel *pchan)
{
/* this is just a wrapper around the copy of this function which calculates the matrix
* and stores the result in any given channel
@@ -2256,7 +2256,7 @@ void where_is_pose_bone(Scene *scene, Object *ob, bPoseChannel *pchan, float cti
parchan= pchan->parent;
/* this gives a chan_mat with actions (ipos) results */
- if(do_extra) chan_calc_mat(pchan);
+ if(do_extra) pchan_calc_mat(pchan);
else unit_m4(pchan->chan_mat);
/* construct the posemat based on PoseChannels, that we do before applying constraints */
diff --git a/source/blender/blenkernel/intern/brush.c b/source/blender/blenkernel/intern/brush.c
index 4ad3b8bb3cf..473be5a3ee0 100644
--- a/source/blender/blenkernel/intern/brush.c
+++ b/source/blender/blenkernel/intern/brush.c
@@ -227,7 +227,7 @@ void make_local_brush(Brush *brush)
}
}
-static void brush_debug_print_state(Brush *br)
+void brush_debug_print_state(Brush *br)
{
/* create a fake brush and set it to the defaults */
Brush def= {{NULL}};
diff --git a/source/blender/blenkernel/intern/cdderivedmesh.c b/source/blender/blenkernel/intern/cdderivedmesh.c
index abf2257877b..9a04c75db07 100644
--- a/source/blender/blenkernel/intern/cdderivedmesh.c
+++ b/source/blender/blenkernel/intern/cdderivedmesh.c
@@ -1066,7 +1066,7 @@ static void cdDM_drawMappedFacesGLSL(DerivedMesh *dm, int (*setMaterial)(int, vo
} \
if(attribs.tottang) { \
float *tang = attribs.tang.array[a*4 + vert]; \
- glVertexAttrib3fvARB(attribs.tang.glIndex, tang); \
+ glVertexAttrib4fvARB(attribs.tang.glIndex, tang); \
} \
if(smoothnormal) \
glNormal3sv(mvert[index].no); \
@@ -1158,7 +1158,7 @@ static void cdDM_drawMappedFacesGLSL(DerivedMesh *dm, int (*setMaterial)(int, vo
}
if(attribs.tottang) {
datatypes[numdata].index = attribs.tang.glIndex;
- datatypes[numdata].size = 3;
+ datatypes[numdata].size = 4;
datatypes[numdata].type = GL_FLOAT;
numdata++;
}
@@ -1248,12 +1248,12 @@ static void cdDM_drawMappedFacesGLSL(DerivedMesh *dm, int (*setMaterial)(int, vo
}
if(attribs.tottang) {
float *tang = attribs.tang.array[a*4 + 0];
- VECCOPY((float *)&varray[elementsize*curface*3+offset], tang);
+ QUATCOPY((float *)&varray[elementsize*curface*3+offset], tang);
tang = attribs.tang.array[a*4 + 1];
- VECCOPY((float *)&varray[elementsize*curface*3+offset+elementsize], tang);
+ QUATCOPY((float *)&varray[elementsize*curface*3+offset+elementsize], tang);
tang = attribs.tang.array[a*4 + 2];
- VECCOPY((float *)&varray[elementsize*curface*3+offset+elementsize*2], tang);
- offset += sizeof(float)*3;
+ QUATCOPY((float *)&varray[elementsize*curface*3+offset+elementsize*2], tang);
+ offset += sizeof(float)*4;
}
}
curface++;
@@ -1288,12 +1288,12 @@ static void cdDM_drawMappedFacesGLSL(DerivedMesh *dm, int (*setMaterial)(int, vo
}
if(attribs.tottang) {
float *tang = attribs.tang.array[a*4 + 2];
- VECCOPY((float *)&varray[elementsize*curface*3+offset], tang);
+ QUATCOPY((float *)&varray[elementsize*curface*3+offset], tang);
tang = attribs.tang.array[a*4 + 3];
- VECCOPY((float *)&varray[elementsize*curface*3+offset+elementsize], tang);
+ QUATCOPY((float *)&varray[elementsize*curface*3+offset+elementsize], tang);
tang = attribs.tang.array[a*4 + 0];
- VECCOPY((float *)&varray[elementsize*curface*3+offset+elementsize*2], tang);
- offset += sizeof(float)*3;
+ QUATCOPY((float *)&varray[elementsize*curface*3+offset+elementsize*2], tang);
+ offset += sizeof(float)*4;
}
}
curface++;
diff --git a/source/blender/blenkernel/intern/collision.c b/source/blender/blenkernel/intern/collision.c
index 02b3de83ee1..3c0453c82a5 100644
--- a/source/blender/blenkernel/intern/collision.c
+++ b/source/blender/blenkernel/intern/collision.c
@@ -482,7 +482,7 @@ DO_INLINE void collision_interpolateOnTriangle ( float to[3], float v1[3], float
}
-int cloth_collision_response_static ( ClothModifierData *clmd, CollisionModifierData *collmd, CollPair *collpair, CollPair *collision_end )
+static int cloth_collision_response_static ( ClothModifierData *clmd, CollisionModifierData *collmd, CollPair *collpair, CollPair *collision_end )
{
int result = 0;
Cloth *cloth1;
@@ -598,7 +598,7 @@ int cloth_collision_response_static ( ClothModifierData *clmd, CollisionModifier
}
//Determines collisions on overlap, collisions are written to collpair[i] and collision+number_collision_found is returned
-CollPair* cloth_collision ( ModifierData *md1, ModifierData *md2, BVHTreeOverlap *overlap, CollPair *collpair )
+static CollPair* cloth_collision ( ModifierData *md1, ModifierData *md2, BVHTreeOverlap *overlap, CollPair *collpair )
{
ClothModifierData *clmd = ( ClothModifierData * ) md1;
CollisionModifierData *collmd = ( CollisionModifierData * ) md2;
diff --git a/source/blender/blenkernel/intern/constraint.c b/source/blender/blenkernel/intern/constraint.c
index b3f83019ff1..e7efc09ec6e 100644
--- a/source/blender/blenkernel/intern/constraint.c
+++ b/source/blender/blenkernel/intern/constraint.c
@@ -2149,7 +2149,6 @@ static void actcon_flush_tars (bConstraint *con, ListBase *list, short nocopy)
static void actcon_get_tarmat (bConstraint *con, bConstraintOb *cob, bConstraintTarget *ct, float UNUSED(ctime))
{
- extern void chan_calc_mat(bPoseChannel *chan);
bActionConstraint *data = con->data;
if (VALID_CONS_TARGET(ct)) {
@@ -2217,7 +2216,7 @@ static void actcon_get_tarmat (bConstraint *con, bConstraintOb *cob, bConstraint
what_does_obaction(cob->scene, cob->ob, &workob, pose, data->act, pchan->name, t);
/* convert animation to matrices for use here */
- chan_calc_mat(tchan);
+ pchan_calc_mat(tchan);
copy_m4_m4(ct->matrix, tchan->chan_mat);
/* Clean up */
diff --git a/source/blender/blenkernel/intern/customdata.c b/source/blender/blenkernel/intern/customdata.c
index 7788f9f28a2..87fe545644a 100644
--- a/source/blender/blenkernel/intern/customdata.c
+++ b/source/blender/blenkernel/intern/customdata.c
@@ -829,7 +829,7 @@ static const LayerTypeInfo LAYERTYPEINFO[CD_NUMTYPES] = {
{sizeof(MTexPoly), "MTexPoly", 1, "Face Texture", NULL, NULL, NULL, NULL, NULL},
{sizeof(MLoopUV), "MLoopUV", 1, "UV coord", NULL, NULL, layerInterp_mloopuv, NULL, NULL},
{sizeof(MLoopCol), "MLoopCol", 1, "Col", NULL, NULL, layerInterp_mloopcol, NULL, layerDefault_mloopcol},
- {sizeof(float)*3*4, "", 0, NULL, NULL, NULL, NULL, NULL, NULL},
+ {sizeof(float)*4*4, "", 0, NULL, NULL, NULL, NULL, NULL, NULL},
{sizeof(MDisps), "MDisps", 1, NULL, layerCopy_mdisps,
layerFree_mdisps, layerInterp_mdisps, layerSwap_mdisps, NULL, layerRead_mdisps, layerWrite_mdisps,
layerFilesize_mdisps, layerValidate_mdisps},
diff --git a/source/blender/blenkernel/intern/image.c b/source/blender/blenkernel/intern/image.c
index 64327b2005d..8a15f63243c 100644
--- a/source/blender/blenkernel/intern/image.c
+++ b/source/blender/blenkernel/intern/image.c
@@ -72,10 +72,9 @@
#include "BKE_packedFile.h"
#include "BKE_scene.h"
#include "BKE_node.h"
+#include "BKE_sequencer.h" /* seq_foreground_frame_get() */
#include "BKE_utildefines.h"
-//XXX #include "BIF_editseq.h"
-
#include "BLF_api.h"
#include "PIL_time.h"
@@ -527,6 +526,10 @@ void free_old_images(void)
if (U.textimeout == 0 || ctime % U.texcollectrate || ctime == lasttime)
return;
+ /* of course not! */
+ if (G.rendering)
+ return;
+
lasttime = ctime;
ima= G.main->image.first;
@@ -968,7 +971,7 @@ static void stampdata(Scene *scene, StampData *stamp_data, int do_prefix)
}
if (scene->r.stamp & R_STAMP_SEQSTRIP) {
- Sequence *seq= NULL; //XXX = get_foreground_frame_seq(scene->r.cfra);
+ Sequence *seq= seq_foreground_frame_get(scene, scene->r.cfra);
if (seq) strcpy(text, seq->name+2);
else strcpy(text, "<none>");
@@ -2183,10 +2186,7 @@ ImBuf *BKE_image_acquire_ibuf(Image *ima, ImageUser *iuser, void **lock_r)
BLI_unlock_thread(LOCK_IMAGE);
}
- /* we assuming that if it is not rendering, it's also not multithreaded
- * (a somewhat weak assumption) */
- if(G.rendering==0)
- tag_image_time(ima);
+ tag_image_time(ima);
return ibuf;
}
diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c
index 684f1531114..a65681ae6e4 100644
--- a/source/blender/blenkernel/intern/object.c
+++ b/source/blender/blenkernel/intern/object.c
@@ -1636,7 +1636,7 @@ void object_make_proxy(Object *ob, Object *target, Object *gob)
/* there is also a timing calculation in drawobject() */
-int no_speed_curve= 0;
+static int no_speed_curve= 0;
void disable_speed_curve(int val)
{
@@ -1698,10 +1698,10 @@ void object_rot_to_mat3(Object *ob, float mat[][3])
else {
/* quats are normalised before use to eliminate scaling issues */
float tquat[4];
-
+
normalize_qt_qt(tquat, ob->quat);
quat_to_mat3(rmat, tquat);
-
+
normalize_qt_qt(tquat, ob->dquat);
quat_to_mat3(dmat, tquat);
}
@@ -1745,7 +1745,7 @@ void object_apply_mat4(Object *ob, float mat[][4], const short use_compat, const
invert_m4_m4(imat, diff_mat);
mul_m4_m4m4(rmat, mat, imat); /* get the parent relative matrix */
object_apply_mat4(ob, rmat, use_compat, FALSE);
-
+
/* same as below, use rmat rather then mat */
mat4_to_loc_rot_size(ob->loc, rot, ob->size, rmat);
object_mat3_to_rot(ob, rot, use_compat);
@@ -1785,6 +1785,7 @@ void object_to_mat4(Object *ob, float mat[][4])
add_v3_v3v3(mat[3], ob->loc, ob->dloc);
}
+/* extern */
int enable_cu_speed= 1;
static void ob_parcurve(Scene *scene, Object *ob, Object *par, float mat[][4])
@@ -1818,12 +1819,17 @@ static void ob_parcurve(Scene *scene, Object *ob, Object *par, float mat[][4])
* we divide the curvetime calculated in the previous step by the length of the path, to get a time
* factor, which then gets clamped to lie within 0.0 - 1.0 range
*/
- ctime= cu->ctime / cu->pathlen;
+ if (IS_EQ(cu->pathlen, 0.0f) == 0)
+ ctime= cu->ctime / cu->pathlen;
+ else
+ ctime= cu->ctime;
+
CLAMP(ctime, 0.0, 1.0);
}
else {
ctime= scene->r.cfra - give_timeoffset(ob);
- ctime /= cu->pathlen;
+ if (IS_EQ(cu->pathlen, 0.0f) == 0)
+ ctime /= cu->pathlen;
CLAMP(ctime, 0.0, 1.0);
}
diff --git a/source/blender/blenkernel/intern/particle.c b/source/blender/blenkernel/intern/particle.c
index d1d5c13c3dd..4609e64c271 100644
--- a/source/blender/blenkernel/intern/particle.c
+++ b/source/blender/blenkernel/intern/particle.c
@@ -1831,9 +1831,11 @@ static void psys_particle_on_shape(int UNUSED(distr), int UNUSED(index), float *
void psys_particle_on_emitter(ParticleSystemModifierData *psmd, int from, int index, int index_dmcache, float *fuv, float foffset, float *vec, float *nor, float *utan, float *vtan, float *orco, float *ornor){
if(psmd){
if(psmd->psys->part->distr==PART_DISTR_GRID && psmd->psys->part->from != PART_FROM_VERT){
- if(vec){
- VECCOPY(vec,fuv);
- }
+ if(vec)
+ copy_v3_v3(vec,fuv);
+
+ if(orco)
+ copy_v3_v3(orco, fuv);
return;
}
/* we cant use the num_dmcache */
@@ -3566,13 +3568,23 @@ ParticleSettings *psys_new_settings(const char *name, Main *main)
ParticleSettings *psys_copy_settings(ParticleSettings *part)
{
ParticleSettings *partn;
-
+ int a;
+
partn= copy_libblock(part);
- if(partn->pd) partn->pd= MEM_dupallocN(part->pd);
- if(partn->pd2) partn->pd2= MEM_dupallocN(part->pd2);
- partn->effector_weights = MEM_dupallocN(part->effector_weights);
+ partn->pd= MEM_dupallocN(part->pd);
+ partn->pd2= MEM_dupallocN(part->pd2);
+ partn->effector_weights= MEM_dupallocN(part->effector_weights);
+ partn->fluid= MEM_dupallocN(part->fluid);
partn->boids = boid_copy_settings(part->boids);
+
+ for(a=0; a<MAX_MTEX; a++) {
+ if(part->mtex[a]) {
+ partn->mtex[a]= MEM_mallocN(sizeof(MTex), "psys_copy_tex");
+ memcpy(partn->mtex[a], part->mtex[a], sizeof(MTex));
+ id_us_plus((ID *)partn->mtex[a]->tex);
+ }
+ }
return partn;
}
@@ -3771,7 +3783,7 @@ void psys_get_texture(ParticleSimulationData *sim, ParticleData *pa, ParticleTex
short blend=mtex->blendtype;
short texco = mtex->texco;
- if(ELEM(texco, TEXCO_UV, TEXCO_ORCO) && (ELEM(part->from, PART_FROM_FACE, PART_FROM_VOLUME) == 0 || part->distr == PART_DISTR_GRID))
+ if(texco == TEXCO_UV && (ELEM(part->from, PART_FROM_FACE, PART_FROM_VOLUME) == 0 || part->distr == PART_DISTR_GRID))
texco = TEXCO_GLOB;
switch(texco) {
diff --git a/source/blender/blenkernel/intern/particle_system.c b/source/blender/blenkernel/intern/particle_system.c
index 65bd4f110b4..c1a6558aea3 100644
--- a/source/blender/blenkernel/intern/particle_system.c
+++ b/source/blender/blenkernel/intern/particle_system.c
@@ -2217,7 +2217,7 @@ static void psys_update_effectors(ParticleSimulationData *sim)
***********************************************************************************************************/
#define PSYS_FLUID_SPRINGS_INITIAL_SIZE 256
-ParticleSpring *add_fluid_spring(ParticleSystem *psys, ParticleSpring *spring)
+static ParticleSpring *add_fluid_spring(ParticleSystem *psys, ParticleSpring *spring)
{
/* Are more refs required? */
if(psys->alloc_fluidsprings == 0 || psys->fluid_springs == NULL) {
@@ -2236,7 +2236,7 @@ ParticleSpring *add_fluid_spring(ParticleSystem *psys, ParticleSpring *spring)
return psys->fluid_springs + psys->tot_fluidsprings - 1;
}
-void delete_fluid_spring(ParticleSystem *psys, int j)
+static void delete_fluid_spring(ParticleSystem *psys, int j)
{
if (j != psys->tot_fluidsprings - 1)
psys->fluid_springs[j] = psys->fluid_springs[psys->tot_fluidsprings - 1];
@@ -2249,7 +2249,7 @@ void delete_fluid_spring(ParticleSystem *psys, int j)
}
}
-EdgeHash *build_fluid_springhash(ParticleSystem *psys)
+static EdgeHash *build_fluid_springhash(ParticleSystem *psys)
{
EdgeHash *springhash = NULL;
ParticleSpring *spring;
diff --git a/source/blender/blenkernel/intern/pointcache.c b/source/blender/blenkernel/intern/pointcache.c
index c2ec463c708..b7ece436ee2 100644
--- a/source/blender/blenkernel/intern/pointcache.c
+++ b/source/blender/blenkernel/intern/pointcache.c
@@ -280,6 +280,8 @@ static void ptcache_particle_read(int index, void *psys_v, void **data, float cf
/* set frames cached before birth to birth time */
if(cfra < pa->time)
pa->state.time = pa->time;
+ else if(cfra > pa->dietime)
+ pa->state.time = pa->dietime;
if(data[BPHYS_DATA_SIZE])
PTCACHE_DATA_TO(data, BPHYS_DATA_SIZE, 0, &pa->size);
diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c
index 9537931faec..2785878fb08 100644
--- a/source/blender/blenkernel/intern/sequencer.c
+++ b/source/blender/blenkernel/intern/sequencer.c
@@ -2965,6 +2965,28 @@ void seq_translate(Scene *evil_scene, Sequence *seq, int delta)
calc_sequence_disp(evil_scene, seq);
}
+Sequence *seq_foreground_frame_get(Scene *scene, int frame)
+{
+ Editing *ed= seq_give_editing(scene, FALSE);
+ Sequence *seq, *best_seq=NULL;
+ int best_machine = -1;
+
+ if(!ed) return NULL;
+
+ for (seq=ed->seqbasep->first; seq; seq= seq->next) {
+ if(seq->flag & SEQ_MUTE || seq->startdisp > frame || seq->enddisp <= frame)
+ continue;
+ /* only use elements you can see - not */
+ if (ELEM5(seq->type, SEQ_IMAGE, SEQ_META, SEQ_SCENE, SEQ_MOVIE, SEQ_COLOR)) {
+ if (seq->machine > best_machine) {
+ best_seq = seq;
+ best_machine = seq->machine;
+ }
+ }
+ }
+ return best_seq;
+}
+
/* return 0 if there werent enough space */
int shuffle_seq(ListBase * seqbasep, Sequence *test, Scene *evil_scene)
{
diff --git a/source/blender/blenkernel/intern/shrinkwrap.c b/source/blender/blenkernel/intern/shrinkwrap.c
index 29c29fb5158..a75bc2164c3 100644
--- a/source/blender/blenkernel/intern/shrinkwrap.c
+++ b/source/blender/blenkernel/intern/shrinkwrap.c
@@ -255,22 +255,26 @@ int normal_projection_project_vertex(char options, const float *vert, const floa
BLI_bvhtree_ray_cast(tree, co, no, 0.0f, &hit_tmp, callback, userdata);
- if(hit_tmp.index != -1)
- {
- float dot = INPR( dir, hit_tmp.no);
-
- if(((options & MOD_SHRINKWRAP_CULL_TARGET_FRONTFACE) && dot <= 0.0f)
- || ((options & MOD_SHRINKWRAP_CULL_TARGET_BACKFACE) && dot >= 0.0f))
- return FALSE; //Ignore hit
-
+ if(hit_tmp.index != -1) {
+ /* invert the normal first so face culling works on rotated objects */
+ if(transf) {
+ space_transform_invert_normal(transf, hit_tmp.no);
+ }
- //Inverting space transform (TODO make coeherent with the initial dist readjust)
- if(transf)
- {
- space_transform_invert( transf, hit_tmp.co );
- space_transform_invert_normal( transf, hit_tmp.no );
+ if (options & (MOD_SHRINKWRAP_CULL_TARGET_FRONTFACE|MOD_SHRINKWRAP_CULL_TARGET_BACKFACE)) {
+ /* apply backface */
+ const float dot= dot_v3v3(dir, hit_tmp.no);
+ if( ((options & MOD_SHRINKWRAP_CULL_TARGET_FRONTFACE) && dot <= 0.0f) ||
+ ((options & MOD_SHRINKWRAP_CULL_TARGET_BACKFACE) && dot >= 0.0f)
+ ) {
+ return FALSE; /* Ignore hit */
+ }
+ }
- hit_tmp.dist = len_v3v3( (float*)vert, hit_tmp.co );
+ if(transf) {
+ /* Inverting space transform (TODO make coeherent with the initial dist readjust) */
+ space_transform_invert(transf, hit_tmp.co);
+ hit_tmp.dist = len_v3v3((float *)vert, hit_tmp.co);
}
memcpy(hit, &hit_tmp, sizeof(hit_tmp) );
diff --git a/source/blender/blenkernel/intern/smoke.c b/source/blender/blenkernel/intern/smoke.c
index 8039d729842..1d80e989da4 100644
--- a/source/blender/blenkernel/intern/smoke.c
+++ b/source/blender/blenkernel/intern/smoke.c
@@ -135,7 +135,7 @@ static void fill_scs_points(Object *ob, DerivedMesh *dm, SmokeCollSettings *scs)
#define TRI_UVOFFSET (1./4.)
-int smokeModifier_init (SmokeModifierData *smd, Object *ob, Scene *scene, DerivedMesh *dm)
+static int smokeModifier_init (SmokeModifierData *smd, Object *ob, Scene *scene, DerivedMesh *dm)
{
if((smd->type & MOD_SMOKE_TYPE_DOMAIN) && smd->domain && !smd->domain->fluid)
{
diff --git a/source/blender/blenkernel/intern/sound.c b/source/blender/blenkernel/intern/sound.c
index be6c4d22f9c..9c157f57d49 100644
--- a/source/blender/blenkernel/intern/sound.c
+++ b/source/blender/blenkernel/intern/sound.c
@@ -55,7 +55,7 @@ static void sound_sync_callback(void* data, int mode, float time)
}
#endif
-int sound_define_from_str(char *str)
+int sound_define_from_str(const char *str)
{
if (BLI_strcaseeq(str, "NULL"))
return AUD_NULL_DEVICE;
diff --git a/source/blender/blenkernel/intern/subsurf_ccg.c b/source/blender/blenkernel/intern/subsurf_ccg.c
index a2d3016099d..0889f490e79 100644
--- a/source/blender/blenkernel/intern/subsurf_ccg.c
+++ b/source/blender/blenkernel/intern/subsurf_ccg.c
@@ -1392,7 +1392,7 @@ static void ccgDM_drawMappedFacesGLSL(DerivedMesh *dm, int (*setMaterial)(int, v
} \
if(attribs.tottang) { \
float *tang = attribs.tang.array[a*4 + vert]; \
- glVertexAttrib3fvARB(attribs.tang.glIndex, tang); \
+ glVertexAttrib4fvARB(attribs.tang.glIndex, tang); \
} \
}
diff --git a/source/blender/blenkernel/intern/writeavi.c b/source/blender/blenkernel/intern/writeavi.c
index 014a15de1ef..e946ce06aa2 100644
--- a/source/blender/blenkernel/intern/writeavi.c
+++ b/source/blender/blenkernel/intern/writeavi.c
@@ -214,7 +214,7 @@ static int append_avi(RenderData *UNUSED(rd), int frame, int *pixels, int rectx,
return 1;
}
-void end_avi(void)
+static void end_avi(void)
{
if (avi == NULL) return;
diff --git a/source/blender/blenkernel/intern/writeframeserver.c b/source/blender/blenkernel/intern/writeframeserver.c
index eb1c66604f8..3cb3d7e038b 100644
--- a/source/blender/blenkernel/intern/writeframeserver.c
+++ b/source/blender/blenkernel/intern/writeframeserver.c
@@ -49,11 +49,10 @@
#include "BLI_utildefines.h"
-
+#include "BKE_writeframeserver.h"
#include "BKE_global.h"
#include "BKE_report.h"
-
#include "DNA_scene_types.h"
static int sock;