[Bf-committers] [Bf-blender-cvs] SVN commit: /data/svn/bf-blender [12838] trunk/blender: Merge from Harmonic Skeleton branch
Joshua Leung
aligorith at gmail.com
Mon Dec 10 23:49:47 CET 2007
Hi,
in BLI_arithb.h
+#ifdef WIN32
+ #define isnan(n) _isnan(n)
+#endif
This seems to be causing needless compiler warnings here,
with mingw/gcc.
i.e.
BLI_arithb.h warning: "isnan" is redefined
math.h warning: this is the location of the previous definition
Aligorith
On Dec 11, 2007 9:14 AM, Martin Poirier <theeth at yahoo.com> wrote:
> Revision: 12838
> http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=12838
> Author: theeth
> Date: 2007-12-10 22:14:19 +0100 (Mon, 10 Dec 2007)
>
> Log Message:
> -----------
> Merge from Harmonic Skeleton branch
>
> This code adds a basic and simple skeleton generator.
>
> Examples and links are in the wiki, docs will come eventually: http://wiki.blender.org/index.php/User:Theeth/skeletor
>
> In a nutshell, select a vertex at the top of the head and press "Generate Skeleton". UI Panel is in the Editing buttons in Edit Mode, tooltips and semi-useful.
>
> Modified Paths:
> --------------
> trunk/blender/projectfiles_vc7/blender/blender.sln
> trunk/blender/projectfiles_vc7/blender/src/BL_src.vcproj
> trunk/blender/source/blender/blenlib/BLI_arithb.h
> trunk/blender/source/blender/blenloader/intern/readfile.c
> trunk/blender/source/blender/include/BIF_editarmature.h
> trunk/blender/source/blender/include/butspace.h
> trunk/blender/source/blender/makesdna/DNA_scene_types.h
> trunk/blender/source/blender/src/buttons_editing.c
> trunk/blender/source/blender/src/editarmature.c
>
> Added Paths:
> -----------
> trunk/blender/source/blender/include/reeb.h
> trunk/blender/source/blender/src/reeb.c
>
> Modified: trunk/blender/projectfiles_vc7/blender/blender.sln
> ===================================================================
> --- trunk/blender/projectfiles_vc7/blender/blender.sln 2007-12-10 21:04:48 UTC (rev 12837)
> +++ trunk/blender/projectfiles_vc7/blender/blender.sln 2007-12-10 21:14:19 UTC (rev 12838)
> @@ -248,8 +248,6 @@
> Debug = Debug
> Release = Release
> EndGlobalSection
> - GlobalSection(ProjectDependencies) = postSolution
> - EndGlobalSection
> GlobalSection(ProjectConfiguration) = postSolution
> {F78B7FC9-DE32-465E-9F26-BB0B6B7A2EAF}.3D Plugin Debug.ActiveCfg = Blender Debug|Win32
> {F78B7FC9-DE32-465E-9F26-BB0B6B7A2EAF}.3D Plugin Release.ActiveCfg = Blender Release|Win32
>
> Modified: trunk/blender/projectfiles_vc7/blender/src/BL_src.vcproj
> ===================================================================
> --- trunk/blender/projectfiles_vc7/blender/src/BL_src.vcproj 2007-12-10 21:04:48 UTC (rev 12837)
> +++ trunk/blender/projectfiles_vc7/blender/src/BL_src.vcproj 2007-12-10 21:14:19 UTC (rev 12838)
> @@ -476,6 +476,9 @@
> RelativePath="..\..\..\source\blender\src\prvicons.c">
> </File>
> <File
> + RelativePath="..\..\..\source\blender\src\reeb.c">
> + </File>
> + <File
> RelativePath="..\..\..\source\blender\src\renderwin.c">
> </File>
> <File
> @@ -888,6 +891,9 @@
> RelativePath="..\..\..\source\blender\include\playanim_ext.h">
> </File>
> <File
> + RelativePath="..\..\..\source\blender\include\reeb.h">
> + </File>
> + <File
> RelativePath="..\..\..\source\blender\include\transform.h">
> </File>
> <File
>
> Modified: trunk/blender/source/blender/blenlib/BLI_arithb.h
> ===================================================================
> --- trunk/blender/source/blender/blenlib/BLI_arithb.h 2007-12-10 21:04:48 UTC (rev 12837)
> +++ trunk/blender/source/blender/blenlib/BLI_arithb.h 2007-12-10 21:14:19 UTC (rev 12838)
> @@ -54,6 +54,10 @@
> #define M_SQRT1_2 0.70710678118654752440
> #endif
>
> +#ifdef WIN32
> + #define isnan(n) _isnan(n)
> +#endif
> +
> #define MAT4_UNITY {{ 1.0, 0.0, 0.0, 0.0},\
> { 0.0, 1.0, 0.0, 0.0},\
> { 0.0, 0.0, 1.0, 0.0},\
>
> Modified: trunk/blender/source/blender/blenloader/intern/readfile.c
> ===================================================================
> --- trunk/blender/source/blender/blenloader/intern/readfile.c 2007-12-10 21:04:48 UTC (rev 12837)
> +++ trunk/blender/source/blender/blenloader/intern/readfile.c 2007-12-10 21:14:19 UTC (rev 12838)
> @@ -6652,7 +6652,7 @@
> else
> wrld->ao_samp_method = WO_AOSAMP_HAMMERSLEY;
>
> - wrld->ao_adapt_thresh = 0.005;
> + wrld->ao_adapt_thresh = 0.005f;
> }
>
> for(la=main->lamp.first; la; la= la->id.next) {
> @@ -6666,6 +6666,7 @@
> }
> }
> if(main->versionfile <= 245) {
> + Scene *sce;
> bScreen *sc;
> Object *ob;
> Image *ima;
> @@ -6838,6 +6839,27 @@
> for(part=main->particle.first; part; part=part->id.next)
> if(part->ren_child_nbr==0)
> part->ren_child_nbr= part->child_nbr;
> + if (main->versionfile < 245 || main->subversionfile < 11)
> + {
> + /* initialize skeleton generation toolsettings */
> + for(sce=main->scene.first; sce; sce = sce->id.next)
> + {
> + sce->toolsettings->skgen_resolution = 50;
> + sce->toolsettings->skgen_threshold_internal = 0.01f;
> + sce->toolsettings->skgen_threshold_external = 0.01f;
> + sce->toolsettings->skgen_angle_limit = 45.0f;
> + sce->toolsettings->skgen_length_ratio = 1.3f;
> + sce->toolsettings->skgen_length_limit = 1.5f;
> + sce->toolsettings->skgen_correlation_limit = 0.98f;
> + sce->toolsettings->skgen_symmetry_limit = 0.1f;
> + sce->toolsettings->skgen_postpro = SKGEN_SMOOTH;
> + sce->toolsettings->skgen_postpro_passes = 1;
> + sce->toolsettings->skgen_options = SKGEN_FILTER_INTERNAL|SKGEN_FILTER_EXTERNAL|SKGEN_SUB_CORRELATION;
> + sce->toolsettings->skgen_subdivisions[0] = SKGEN_SUB_CORRELATION;
> + sce->toolsettings->skgen_subdivisions[1] = SKGEN_SUB_LENGTH;
> + sce->toolsettings->skgen_subdivisions[2] = SKGEN_SUB_ANGLE;
> + }
> + }
> }
>
> if ((main->versionfile < 245) || (main->versionfile == 245 && main->subversionfile < 2)) {
>
> Modified: trunk/blender/source/blender/include/BIF_editarmature.h
> ===================================================================
> --- trunk/blender/source/blender/include/BIF_editarmature.h 2007-12-10 21:04:48 UTC (rev 12837)
> +++ trunk/blender/source/blender/include/BIF_editarmature.h 2007-12-10 21:14:19 UTC (rev 12838)
> @@ -101,6 +101,8 @@
>
> int do_pose_selectbuffer(struct Base *base, unsigned int *buffer, short hits);
>
> +void generateSkeleton(void);
> +
> void mouse_armature(void);
> void remake_editArmature(void);
> void selectconnected_armature(void);
> @@ -117,8 +119,8 @@
> void hide_unselected_pose_bones(void);
> void show_all_pose_bones(void);
>
> -int bone_looper(Object *ob, struct Bone *bone, void *data,
> - int (*bone_func)(Object *, struct Bone *, void *));
> +int bone_looper(struct Object *ob, struct Bone *bone, void *data,
> + int (*bone_func)(struct Object *, struct Bone *, void *));
>
> void undo_push_armature(char *name);
> void armature_bone_rename(struct bArmature *arm, char *oldname, char *newname);
>
> Modified: trunk/blender/source/blender/include/butspace.h
> ===================================================================
> --- trunk/blender/source/blender/include/butspace.h 2007-12-10 21:04:48 UTC (rev 12837)
> +++ trunk/blender/source/blender/include/butspace.h 2007-12-10 21:14:19 UTC (rev 12838)
> @@ -420,6 +420,8 @@
> #define B_SETTFACE_RND 2082
> #define B_SETMCOL_RND 2083
>
> +#define B_GEN_SKELETON 2090
> +
> /* *********************** */
> #define B_VGROUPBUTS 2100
>
>
> Copied: trunk/blender/source/blender/include/reeb.h (from rev 12836, branches/harmonic-skeleton/blender/source/blender/include/reeb.h)
> ===================================================================
> --- trunk/blender/source/blender/include/reeb.h (rev 0)
> +++ trunk/blender/source/blender/include/reeb.h 2007-12-10 21:14:19 UTC (rev 12838)
> @@ -0,0 +1,127 @@
> +/**
> + * $Id:
> + *
> + * ***** BEGIN GPL LICENSE BLOCK *****
> + *
> + * This program is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU General Public License
> + * as published by the Free Software Foundation; either version 2
> + * of the License, or (at your option) any later version. The Blender
> + * Foundation also sells licenses for use in proprietary software under
> + * the Blender License. See http://www.blender.org/BL/ for information
> + * about this.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> + * GNU General Public License for more details.
> + *
> + * You should have received a copy of the GNU General Public License
> + * along with this program; if not, write to the Free Software Foundation,
> + * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
> + *
> + * Contributor(s): Martin Poirier
> + *
> + * ***** END GPL LICENSE BLOCK *****
> + */
> +
> +#ifndef REEB_H_
> +#define REEB_H_
> +
> +#include "DNA_listBase.h"
> +
> +struct EdgeHash;
> +struct ReebArc;
> +struct ReebEdge;
> +struct ReebNode;
> +
> +typedef struct ReebGraph {
> + ListBase arcs;
> + ListBase nodes;
> + int totnodes;
> + struct EdgeHash *emap;
> +} ReebGraph;
> +
> +typedef struct EmbedBucket {
> + float val;
> + int nv;
> + float p[3];
> +} EmbedBucket;
> +
> +typedef struct ReebNode {
> + struct ReebNode *next, *prev;
> + struct ReebArc **arcs;
> + int index;
> + int degree;
> + float weight;
> + float p[3];
> + int flags;
> +} ReebNode;
> +
> +typedef struct ReebEdge {
> + struct ReebEdge *next, *prev;
> + struct ReebArc *arc;
> + struct ReebNode *v1, *v2;
> + struct ReebEdge *nextEdge;
> +} ReebEdge;
> +
> +typedef struct ReebArc {
> + struct ReebArc *next, *prev;
> + ListBase edges;
> + struct ReebNode *v1, *v2;
> + struct EmbedBucket *buckets;
> + int bcount;
> + int flags;
> +} ReebArc;
> +
> +typedef struct ReebArcIterator {
> + struct ReebArc *arc;
> + int index;
> + int start;
> + int end;
> + int stride;
> +} ReebArcIterator;
> +
> +struct EditMesh;
> +
> +int weightToHarmonic(struct EditMesh *em);
> +int weightFromDistance(struct EditMesh *em);
> +int weightFromLoc(struct EditMesh *me, int axis);
> +void weightToVCol(struct EditMesh *em);
> +void renormalizeWeight(struct EditMesh *em, float newmax);
> +
> +ReebGraph * generateReebGraph(struct EditMesh *me, int subdivisions);
> +void freeGraph(ReebGraph *rg);
> +void exportGraph(ReebGraph *rg, int count);
> +
> +#define OTHER_NODE(arc, node) ((arc->v1 == node) ? arc->v2 : arc->v1)
> +
> +void initArcIterator(struct ReebArcIterator *iter, struct ReebArc *arc, struct ReebNode *head);
> +void initArcIterator2(struct ReebArcIterator *iter, struct ReebArc *arc, int start, int end);
> +struct EmbedBucket * nextBucket(struct ReebArcIterator *iter);
> +
> +/* Filtering */
> +void filterNullReebGraph(ReebGraph *rg);
> +int filterExternalReebGraph(ReebGraph *rg, float threshold);
> +int filterInternalReebGraph(ReebGraph *rg, float threshold);
> +
> +/* Post-Build processing */
> +void repositionNodes(ReebGraph *rg);
> +void postprocessGraph(ReebGraph *rg, char mode);
> +void removeNormalNodes(ReebGraph *rg);
> +
> +/* Graph processing */
> +void buildAdjacencyList(ReebGraph *rg);
> +
> +void sortNodes(ReebGraph *rg);
> +void sortArcs(ReebGraph *rg);
> +
> +int subtreeDepth(ReebNode *node, ReebArc *rootArc);
> +int countConnectedArcs(ReebGraph *rg, ReebNode *node);
> +int hasAdjacencyList(ReebGraph *rg);
> +int isGraphCyclic(ReebGraph *rg);
> +
> +/* Sanity check */
> +void verifyBuckets(ReebGraph *rg);
> +
> +#endif /*REEB_H_*/
>
> Modified: trunk/blender/source/blender/makesdna/DNA_scene_types.h
> ===================================================================
> --- trunk/blender/source/blender/makesdna/DNA_scene_types.h 2007-12-10 21:04:48 UTC (rev 12837)
> +++ trunk/blender/source/blender/makesdna/DNA_scene_types.h 2007-12-10 21:14:19 UTC (rev 12838)
> @@ -364,7 +364,7 @@
> short uvcalc_flag;
>
> short pad2;
> -
> +
> /* Image Paint (8 byte aligned please!) */
> struct ImagePaintSettings imapaint;
>
> @@ -385,7 +385,21 @@
> /* Multires */
> char multires_subdiv_type;
>
> - char pad4[2];
> + /* Skeleton generation */
> + short skgen_resolution;
> + float skgen_threshold_internal;
> + float skgen_threshold_external;
> + float skgen_length_ratio;
> + float skgen_length_limit;
> + float skgen_angle_limit;
> + float skgen_correlation_limit;
> + float skgen_symmetry_limit;
> + short skgen_options;
> + char skgen_postpro;
> + char skgen_postpro_passes;
> + char skgen_subdivisions[3];
> +
> + char pad3[5];
> } ToolSettings;
>
> /* Used by all brushes to store their properties, which can be directly set
>
> @@ Diff output truncated at 10240 characters. @@
>
> _______________________________________________
> Bf-blender-cvs mailing list
> Bf-blender-cvs at blender.org
> http://lists.blender.org/mailman/listinfo/bf-blender-cvs
>
More information about the Bf-committers
mailing list