diff options
author | Tamito Kajiyama <rd6t-kjym@asahi-net.or.jp> | 2011-02-20 02:51:18 +0300 |
---|---|---|
committer | Tamito Kajiyama <rd6t-kjym@asahi-net.or.jp> | 2011-02-20 02:51:18 +0300 |
commit | 70aa63306ad3ec1402275ed623b745d06d14db18 (patch) | |
tree | 08cea0cd3818061afc4f3a3b7b922ac668ca80ae /source/blender/blenkernel | |
parent | 3789c398ff2b2fd7f0eadba45686b0e235186f4a (diff) | |
parent | 43d362fcc8592cede760a56cf863a0c3eb80ff5f (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')
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; |