Revision: 20156
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=20156
Author:   ben2610
Date:     2009-05-11 18:31:30 +0200 (Mon, 11 May 2009)

Log Message:
-----------
Tree initialization logic: merge overlapping IK chain so that a bone can only 
be part of one Tree at a time (required for stateful simulation).

Modified Paths:
--------------
    branches/ge_dev/source/blender/ikplugin/CMakeLists.txt
    branches/ge_dev/source/blender/ikplugin/SConscript
    branches/ge_dev/source/blender/ikplugin/intern/Makefile
    branches/ge_dev/source/blender/ikplugin/intern/itasc_plugin.cpp

Added Paths:
-----------
    branches/ge_dev/projectfiles_vc9/blender/ikplugin/
    branches/ge_dev/projectfiles_vc9/blender/ikplugin/BIK_ikplugin.vcproj

Added: branches/ge_dev/projectfiles_vc9/blender/ikplugin/BIK_ikplugin.vcproj
===================================================================
--- branches/ge_dev/projectfiles_vc9/blender/ikplugin/BIK_ikplugin.vcproj       
                        (rev 0)
+++ branches/ge_dev/projectfiles_vc9/blender/ikplugin/BIK_ikplugin.vcproj       
2009-05-11 16:31:30 UTC (rev 20156)
@@ -0,0 +1,213 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="9,00"
+       Name="BIK_ikplugin"
+       ProjectGUID="{9951A8C9-84FE-4CFE-9E18-9D01CB8E09F3}"
+       RootNamespace="BRE_ikplugin"
+       TargetFrameworkVersion="131072"
+       >
+       <Platforms>
+               <Platform
+                       Name="Win32"
+               />
+       </Platforms>
+       <ToolFiles>
+       </ToolFiles>
+       <Configurations>
+               <Configuration
+                       Name="Blender Debug|Win32"
+                       
OutputDirectory="..\..\..\..\build\msvc_9\source\blender\ikplugin\debug"
+                       
IntermediateDirectory="..\..\..\..\build\msvc_9\source\blender\ikplugin\debug"
+                       ConfigurationType="4"
+                       
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+                       UseOfMFC="0"
+                       ATLMinimizesCRunTimeLibraryUsage="false"
+                       CharacterSet="2"
+                       >
+                       <Tool
+                               Name="VCPreBuildEventTool"
+                       />
+                       <Tool
+                               Name="VCCustomBuildTool"
+                       />
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCMIDLTool"
+                       />
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\iksolver\include;..\..\..\source\blender\misc;..\..\..\source\blender\imbuf;..\..\..\source\blender\python;..\..\..\source\blender\blenlib;..\..\..\source\blender\include;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\ikplugin;..\..\..\intern\itasc;..\..\..\extern\Eigen2"
+                               PreprocessorDefinitions="WIN32,_DEBUG,_LIB"
+                               BasicRuntimeChecks="3"
+                               RuntimeLibrary="1"
+                               DefaultCharIsUnsigned="true"
+                               UsePrecompiledHeader="0"
+                               
PrecompiledHeaderFile="..\..\..\..\build\msvc_9\source\blender\ikplugin\debug\BRE_yafray.pch"
+                               
AssemblerListingLocation="..\..\..\..\build\msvc_9\source\blender\ikplugin\debug\"
+                               
ObjectFile="..\..\..\..\build\msvc_9\source\blender\ikplugin\debug\"
+                               
ProgramDataBaseFileName="..\..\..\..\build\msvc_9\source\blender\ikplugin\debug\"
+                               WarningLevel="2"
+                               SuppressStartupBanner="true"
+                               DebugInformationFormat="3"
+                               CompileAs="0"
+                       />
+                       <Tool
+                               Name="VCManagedResourceCompilerTool"
+                       />
+                       <Tool
+                               Name="VCResourceCompilerTool"
+                               PreprocessorDefinitions="_DEBUG"
+                               Culture="1043"
+                       />
+                       <Tool
+                               Name="VCPreLinkEventTool"
+                       />
+                       <Tool
+                               Name="VCLibrarianTool"
+                               
OutputFile="..\..\..\..\build\msvc_9\libs\debug\BRE_ikplugin.lib"
+                               SuppressStartupBanner="true"
+                       />
+                       <Tool
+                               Name="VCALinkTool"
+                       />
+                       <Tool
+                               Name="VCXDCMakeTool"
+                       />
+                       <Tool
+                               Name="VCBscMakeTool"
+                       />
+                       <Tool
+                               Name="VCFxCopTool"
+                       />
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Blender Release|Win32"
+                       
OutputDirectory="..\..\..\..\build\msvc_9\source\blender\ikplugin"
+                       
IntermediateDirectory="..\..\..\..\build\msvc_9\source\blender\ikplugin"
+                       ConfigurationType="4"
+                       
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+                       UseOfMFC="0"
+                       ATLMinimizesCRunTimeLibraryUsage="false"
+                       CharacterSet="2"
+                       >
+                       <Tool
+                               Name="VCPreBuildEventTool"
+                       />
+                       <Tool
+                               Name="VCCustomBuildTool"
+                       />
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCMIDLTool"
+                       />
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               InlineFunctionExpansion="1"
+                               
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\iksolver\include;..\..\..\source\blender\misc;..\..\..\source\blender\imbuf;..\..\..\source\blender\python;..\..\..\source\blender\blenlib;..\..\..\source\blender\include;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\ikplugin;..\..\..\intern\itasc;..\..\..\extern\Eigen2"
+                               PreprocessorDefinitions="WIN32,NDEBUG,_LIB"
+                               StringPooling="true"
+                               RuntimeLibrary="0"
+                               EnableFunctionLevelLinking="true"
+                               DefaultCharIsUnsigned="true"
+                               UsePrecompiledHeader="0"
+                               
PrecompiledHeaderFile="..\..\..\..\build\msvc_9\source\blender\yafray\BIK_ikplugin.pch"
+                               
AssemblerListingLocation="..\..\..\..\build\msvc_9\source\blender\ikplugin\"
+                               
ObjectFile="..\..\..\..\build\msvc_9\source\blender\ikplugin\"
+                               
ProgramDataBaseFileName="..\..\..\..\build\msvc_9\source\blender\ikplugin\"
+                               WarningLevel="2"
+                               SuppressStartupBanner="true"
+                               CompileAs="0"
+                       />
+                       <Tool
+                               Name="VCManagedResourceCompilerTool"
+                       />
+                       <Tool
+                               Name="VCResourceCompilerTool"
+                               PreprocessorDefinitions="NDEBUG"
+                               Culture="1043"
+                       />
+                       <Tool
+                               Name="VCPreLinkEventTool"
+                       />
+                       <Tool
+                               Name="VCLibrarianTool"
+                               
OutputFile="..\..\..\..\build\msvc_9\libs\BIK_ikplugin.lib"
+                               SuppressStartupBanner="true"
+                       />
+                       <Tool
+                               Name="VCALinkTool"
+                       />
+                       <Tool
+                               Name="VCXDCMakeTool"
+                       />
+                       <Tool
+                               Name="VCBscMakeTool"
+                       />
+                       <Tool
+                               Name="VCFxCopTool"
+                       />
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                       />
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <Filter
+                       Name="Source Files"
+                       Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+                       >
+                       <File
+                               
RelativePath="..\..\..\source\blender\ikplugin\intern\ikplugin_api.c"
+                               >
+                       </File>
+                       <File
+                               
RelativePath="..\..\..\source\blender\ikplugin\intern\iksolver_plugin.c"
+                               >
+                       </File>
+                       <File
+                               
RelativePath="..\..\..\source\blender\ikplugin\intern\itasc_plugin.cpp"
+                               >
+                       </File>
+               </Filter>
+               <Filter
+                       Name="Header Files"
+                       Filter="h;hpp;hxx;hm;inl"
+                       >
+                       <File
+                               
RelativePath="..\..\..\source\blender\ikplugin\intern\ikplugin_api.h"
+                               >
+                       </File>
+                       <File
+                               
RelativePath="..\..\..\source\blender\ikplugin\intern\iksolver_plugin.h"
+                               >
+                       </File>
+                       <File
+                               
RelativePath="..\..\..\source\blender\ikplugin\intern\itasc_plugin.h"
+                               >
+                       </File>
+               </Filter>
+               <File
+                       
RelativePath="..\..\..\source\blender\ikplugin\BIK_api.h"
+                       >
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>

Modified: branches/ge_dev/source/blender/ikplugin/CMakeLists.txt
===================================================================
--- branches/ge_dev/source/blender/ikplugin/CMakeLists.txt      2009-05-11 
16:18:38 UTC (rev 20155)
+++ branches/ge_dev/source/blender/ikplugin/CMakeLists.txt      2009-05-11 
16:31:30 UTC (rev 20156)
@@ -28,6 +28,7 @@
 
 SET(INC 
   ../../../intern/guardedalloc ../../../intern/iksolver/extern
+  ../../../intern/itasc ../../../extern/Eigen2
   ../blenlib ../makesdna ../blenkernel ../include ../ikplugin
 )
 

Modified: branches/ge_dev/source/blender/ikplugin/SConscript
===================================================================
--- branches/ge_dev/source/blender/ikplugin/SConscript  2009-05-11 16:18:38 UTC 
(rev 20155)
+++ branches/ge_dev/source/blender/ikplugin/SConscript  2009-05-11 16:31:30 UTC 
(rev 20156)
@@ -4,6 +4,6 @@
 sources = env.Glob('intern/*.c') + env.Glob('intern/*.cpp')
 
 incs = '#/intern/guardedalloc #/intern/iksolver/extern ../makesdna ../blenlib'
-incs += ' ../blenkernel ../include ../ikplugin'
+incs += ' ../blenkernel ../include ../ikplugin #/intern/itasc #/extern/Eigen2'
 
 env.BlenderLib ( 'bf_ikplugin', sources, Split(incs), [], 
libtype=['blender','player'], priority=[5, 190] )

Modified: branches/ge_dev/source/blender/ikplugin/intern/Makefile
===================================================================
--- branches/ge_dev/source/blender/ikplugin/intern/Makefile     2009-05-11 
16:18:38 UTC (rev 20155)
+++ branches/ge_dev/source/blender/ikplugin/intern/Makefile     2009-05-11 
16:31:30 UTC (rev 20156)
@@ -32,11 +32,12 @@
 
 CFLAGS += $(LEVEL_1_C_WARNINGS)
 CFLAGS += -I$(NAN_GUARDEDALLOC)/include
-CFLAGS += -I$(NAN_IKSOLVER)/include
 CFLAGS += -I../../makesdna
 CFLAGS += -I../../blenkernel
 CFLAGS += -I../../blenlib
 CFLAGS += -I../../include
+CFLAGS += -I../../../intern/itasc
+CFLAGS += -I../../../extern/Eigen2
 CFLAGS += -I..
 
 CPPFLAGS += -I$(NAN_GUARDEDALLOC)/include

Modified: branches/ge_dev/source/blender/ikplugin/intern/itasc_plugin.cpp
===================================================================
--- branches/ge_dev/source/blender/ikplugin/intern/itasc_plugin.cpp     
2009-05-11 16:18:38 UTC (rev 20155)
+++ branches/ge_dev/source/blender/ikplugin/intern/itasc_plugin.cpp     
2009-05-11 16:31:30 UTC (rev 20156)
@@ -27,14 +27,239 @@
  * ***** END GPL LICENSE BLOCK *****
  */
 
+#include <stdlib.h>
+#include <string.h>
+#include <vector>
+
+#include "MEM_guardedalloc.h"
+
+#include "BIK_api.h"
+#include "BLI_blenlib.h"
+#include "BLI_arithb.h"
+
+#include "BKE_armature.h"
+#include "BKE_utildefines.h"
+#include "DNA_object_types.h"
+#include "DNA_action_types.h"
+#include "DNA_constraint_types.h"
+#include "DNA_armature_types.h"
+
 #include "itasc_plugin.h"
 
-void itasc_initialize_tree(struct Object *ob, float ctime)
+#include "Armature.hpp"
+
+// Structure pointed by bArmature.ikdata
+// It contains everything needed to simulate the armatures
+// There can be several simulation islands independent to each other
+struct IK_Data
 {
+       struct IK_Scene* first;
+};
+
+struct IK_Scene
+{
+       IK_Scene*                       next;
+       bPoseChannel*           chan;
+       iTaSC::Armature*        armature;
+       iTaSC::Cache*           cache;
+       iTaSC::Scene*           scene;
+       std::vector<iTaSC::ConstraintSet*>              constraints;
+};
+
+int initialize_scene(Object *ob, bPoseChannel *pchan_tip)
+{
+       bPoseChannel *curchan, *pchan_root=NULL, *chanlist[256], **oldchan;
+       PoseTree *tree;
+       PoseTarget *target;
+       bConstraint *con;
+       bKinematicConstraint *data;
+       int a, segcount= 0, size, newsize, *oldparent, parent, rootbone, 
treecount;
+
+       /* find IK constraint, and validate it */
+       for(con= (bConstraint *)pchan_tip->constraints.first; con; con= 
(bConstraint *)con->next) {
+               if(con->type==CONSTRAINT_TYPE_KINEMATIC) {
+                       data=(bKinematicConstraint*)con->data;
+                       if (data->flag & CONSTRAINT_IK_AUTO) break;
+                       if (data->tar==NULL) continue;
+                       if (data->tar->type==OB_ARMATURE && 
data->subtarget[0]==0) continue;
+                       if ((con->flag & CONSTRAINT_DISABLE)==0 && 
(con->enforce!=0.0)) break;
+               }
+       }

@@ Diff output truncated at 10240 characters. @@

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to