Warning fixes for ITASC. Also, use <stdlib.h> instead of <malloc.h>,
authorBrecht Van Lommel <brechtvanlommel@pandora.be>
Fri, 25 Sep 2009 09:33:46 +0000 (09:33 +0000)
committerBrecht Van Lommel <brechtvanlommel@pandora.be>
Fri, 25 Sep 2009 09:33:46 +0000 (09:33 +0000)
it works everywhere.

intern/itasc/Armature.cpp
intern/itasc/Cache.cpp
intern/itasc/ConstraintSet.cpp
intern/itasc/CopyPose.cpp
intern/itasc/WSDLSSolver.hpp
intern/itasc/kdl/jacobian.cpp
intern/itasc/kdl/treefksolverpos_recursive.cpp
source/blender/ikplugin/intern/ikplugin_api.c
source/blender/ikplugin/intern/itasc_plugin.cpp

index 6ae60089cd822c2285df2ccd90c7a0bf77cc4f1c..7776b6aa3b66ce8742474c745dadeff3a57beced 100644 (file)
@@ -8,9 +8,7 @@
 #include "Armature.hpp"
 #include <algorithm>
 #include <string.h>
-#ifndef __STDC__
-#include <malloc.h>
-#endif
+#include <stdlib.h>
 
 namespace iTaSC {
 
@@ -37,9 +35,9 @@ Armature::Armature():
        m_newqKdl(),
        m_qdotKdl(),
        m_jac(NULL),
+       m_armlength(0.0),
        m_jacsolver(NULL),
-       m_fksolver(NULL),
-       m_armlength(0.0)
+       m_fksolver(NULL)
 {
 }
 
@@ -119,6 +117,8 @@ Armature::JointConstraint_struct::JointConstraint_struct(SegmentMap::const_itera
                values[1].id = value[1].id = ID_JOINT_RZ;               
                v_nr = 2;
                break;
+       case Joint::None:
+               break;
        }
 }
 
@@ -734,6 +734,8 @@ bool Armature::setControlParameter(unsigned int constraintId, unsigned int value
                                case ACT_ALPHA:
                                        pConstraint->values[i].alpha = value;
                                        break;
+                               default:
+                                       break;
                                }
                        }
                } else {
@@ -755,6 +757,8 @@ bool Armature::setControlParameter(unsigned int constraintId, unsigned int value
                                        case ACT_ALPHA:
                                                pConstraint->values[i].alpha = value;
                                                break;
+                                       case ACT_NONE:
+                                               break;
                                        }
                                }
                        }
index d61e5a9eab57252b0e53b772b7ccd1d5a7b14fe7..ccd9cef465556b5c10614067ca08c81e646d61a5 100644 (file)
@@ -7,9 +7,7 @@
 #include <string.h>
 #include <assert.h>
 #include <math.h>
-#ifndef __STDC__
-#include <malloc.h>
-#endif
+#include <stdlib.h>
 #include "Cache.hpp"
 
 namespace iTaSC {
index eaffc2a52f9d8e6c0ffba5b2a55d06b0456aab1a..a38db445ea24acb794a38d0f0613fac478c2b43b 100644 (file)
@@ -12,13 +12,13 @@ namespace iTaSC {
 
 ConstraintSet::ConstraintSet(unsigned int _nc,double accuracy,unsigned int maximum_iterations):
     m_nc(_nc),
-    m_Jf(e_identity_matrix(6,6)),
     m_Cf(e_zero_matrix(m_nc,6)),
-    m_U(e_identity_matrix(6,6)),m_V(e_identity_matrix(6,6)),m_B(e_zero_matrix(6,6)),
-    m_Jf_inv(e_zero_matrix(6,6)),
     m_Wy(e_scalar_vector(m_nc,1.0)),
-    m_chi(e_zero_vector(6)),m_y(m_nc),m_ydot(e_zero_vector(m_nc)),
+    m_y(m_nc),m_ydot(e_zero_vector(m_nc)),m_chi(e_zero_vector(6)),
     m_S(6),m_temp(6),m_tdelta(6),
+    m_Jf(e_identity_matrix(6,6)),
+    m_U(e_identity_matrix(6,6)),m_V(e_identity_matrix(6,6)),m_B(e_zero_matrix(6,6)),
+    m_Jf_inv(e_zero_matrix(6,6)),
        m_internalPose(F_identity), m_externalPose(F_identity),
        m_constraintCallback(NULL), m_constraintParam(NULL), 
        m_toggle(false),m_substep(false),
index 7977089d2807619a78a0b97a38244e0c63f59723..69722909ed18eec02795e4a3825e36ee2bea6b72 100644 (file)
@@ -21,7 +21,7 @@ CopyPose::CopyPose(unsigned int control_output, unsigned int dynamic_output, dou
 {
        m_maxerror = armlength/2.0;
        m_outputControl = (control_output & CTL_ALL);
-       int _nc = nBitsOn(m_outputControl);
+       unsigned int _nc = nBitsOn(m_outputControl);
        if (!_nc) 
                return;
        // reset the constraint set
@@ -284,7 +284,7 @@ void CopyPose::updateJacobian()
 
 void CopyPose::updateState(ConstraintValues* _values, ControlState* _state, unsigned int mask, double timestep)
 {
-       int id = (mask == CTL_ROTATIONX) ? ID_ROTATIONX : ID_POSITIONX;
+       unsigned int id = (mask == CTL_ROTATIONX) ? ID_ROTATIONX : ID_POSITIONX;
        ControlState::ControlValue* _yval;
        ConstraintSingleValue* _data;
        int i, j, k;
index 90f89f4e853e92c7a6c89fdfefa0c2e3b1204bd8..1341cf2af667bb64a67520d1e0b289e5ba4a5703 100644 (file)
@@ -31,6 +31,8 @@ public:
                case DLS_QMAX:
                        m_qmax = value;
                        break;
+               default:
+                       break;
                }
        }
 };
index 4166a341fe7ab6834eeda55ae2856e409aca972a..f8f46b3261931c98578ccdb02f09a3c01177bdc5 100644 (file)
@@ -55,13 +55,13 @@ namespace KDL
 
     double Jacobian::operator()(int i,int j)const
     {
-        assert(i<6*nr_blocks&&j<size);
+        assert(i<6*(int)nr_blocks&&j<(int)size);
         return twists[j+6*(int)(floor((double)i/6))](i%6);
     }
 
     double& Jacobian::operator()(int i,int j)
     {
-        assert(i<6*nr_blocks&&j<size);
+        assert(i<6*(int)nr_blocks&&j<(int)size);
         return twists[j+6*(int)(floor((double)i/6))](i%6);
     }
 
index 8c54906dcf408f12cf15d655e00c9a4ccff453e5..f9dcb336d5d896a7c27cb5952afa5430473c49ea 100644 (file)
@@ -42,7 +42,6 @@ namespace KDL {
         else if(baseit == tree.getSegments().end()) //if the base segment name is not found
                return -3;
         else{
-               const TreeElement& currentElement = it->second;
                        p_out = recursiveFk(q_in, it, baseit);  
                return 0;               
         }
index 714843fc5e579c5be8e514277e25adaa2f32d99f..f106302dbaff5ddef1a079e354f13af3a2553e56 100644 (file)
@@ -72,8 +72,6 @@ static IKPlugin ikplugin_tab[BIK_SOLVER_COUNT] = {
 
 static IKPlugin *get_plugin(bPose *pose)
 {
-       IKPlugin *plugin;
-
        if (!pose || pose->iksolver < 0 || pose->iksolver >= BIK_SOLVER_COUNT)
                return NULL;
 
index b6278e40ea550da8bcf37f04ba655d24e59625dc..4aebda1347cf36b852cd41ab7454b43bf43b938b 100644 (file)
@@ -354,7 +354,7 @@ static int initialize_chain(Object *ob, bPoseChannel *pchan_tip, bConstraint *co
 
 static bool is_cartesian_constraint(bConstraint *con)
 {
-       bKinematicConstraint* data=(bKinematicConstraint*)con->data;
+       //bKinematicConstraint* data=(bKinematicConstraint*)con->data;
 
        return true;
 }
@@ -379,12 +379,8 @@ static bool constraint_valid(bConstraint *con)
 
 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;
+       int treecount;
 
        /* find all IK constraints and validate them */
        treecount = 0;
@@ -456,6 +452,7 @@ static void RemoveEulerAngleFromMatrix(KDL::Rotation& R, double angle, int axis)
        R = R*T;
 }
 
+#if 0
 static void GetEulerXZY(const KDL::Rotation& R, double& X,double& Z,double& Y)
 {
        if (fabs(R(0,1)) > 1.0 - KDL::epsilon ) {
@@ -481,6 +478,7 @@ static void GetEulerXYZ(const KDL::Rotation& R, double& X,double& Y,double& Z)
         Z = KDL::atan2(-R(0,1), R(0,0));
     }
 }
+#endif
 
 static void GetJointRotation(KDL::Rotation& boneRot, int type, double* rot)
 {
@@ -660,9 +658,6 @@ static bool copypose_callback(const iTaSC::Timestamp& timestamp, iTaSC::Constrai
        bKinematicConstraint *condata = (bKinematicConstraint *)iktarget->blenderConstraint->data;
        iTaSC::ConstraintValues* values = _values;
        bItasc* ikparam = (bItasc*) iktarget->owner->pose->ikparam;
-       iTaSC::ConstraintSingleValue* value;
-       double error;
-       int i;
 
        // we need default parameters
        if (!ikparam) 
@@ -839,7 +834,7 @@ static bool joint_callback(const iTaSC::Timestamp& timestamp, iTaSC::ConstraintV
                break;
        }
        if (dof >= 0) {
-               for (int i=0; i<_nvalues; i++, dof++) {
+               for (unsigned int i=0; i<_nvalues; i++, dof++) {
                        _values[i].values[0].yd = ikchan->jointValue[dof];
                        _values[i].alpha = chan->ikrotweight;
                        _values[i].feedback = ikparam->feedback;
@@ -853,7 +848,6 @@ static int convert_channels(IK_Scene *ikscene, PoseTree *tree)
 {
        IK_Channel *ikchan;
        bPoseChannel *pchan;
-       PoseTarget* target;
        Bone *bone;
        int a, flag, njoint;
 
@@ -1046,11 +1040,11 @@ static IK_Scene* convert_tree(Scene *blscene, Object *ob, bPoseChannel *pchan)
        KDL::Frame initPose;
        KDL::Rotation boneRot;
        Bone *bone;
-       int a, t, numtarget;
+       int a, numtarget;
+       unsigned int t;
        float length;
        bool ret = true, ingame;
        double *rot;
-       double lmin[3], lmax[3];
 
        if (tree->totchannel == 0)
                return NULL;
@@ -1105,7 +1099,6 @@ static IK_Scene* convert_tree(Scene *blscene, Object *ob, bPoseChannel *pchan)
        double weight[3];
        // assume uniform scaling and take Y scale as general scale for the armature
        float scale = VecLength(ob->obmat[1]);
-       double X, Y, Z;
        // build the array of joints corresponding to the IK chain
        convert_channels(ikscene, tree);
        if (ingame) {
@@ -1366,8 +1359,8 @@ static IK_Scene* convert_tree(Scene *blscene, Object *ob, bPoseChannel *pchan)
        }
        // set the weight
        e_matrix& Wq = arm->getWq();
-       assert(Wq.cols() == weights.size());
-       for (unsigned int q=0; q<Wq.cols(); q++)
+       assert(Wq.cols() == (int)weights.size());
+       for (int q=0; q<Wq.cols(); q++)
                Wq(q,q)=weights[q];
        // get the inverse rest pose frame of the base to compute relative rest pose of end effectors
        // this is needed to handle the enforce parameter
@@ -1492,8 +1485,6 @@ static void create_scene(Scene *scene, Object *ob)
 
 static void init_scene(Object *ob)
 {
-       bPoseChannel *pchan;
-
        if (ob->pose->ikdata) {
                for(IK_Scene* scene = ((IK_Data*)ob->pose->ikdata)->first;
                        scene != NULL;
@@ -1559,7 +1550,7 @@ static void execute_scene(Scene* blscene, IK_Scene* ikscene, bItasc* ikparam, fl
        }
                
        if (ikscene->cache && !reiterate && simulation) {
-               iTaSC::CacheTS sts, cts, dts;
+               iTaSC::CacheTS sts, cts;
                sts = cts = (iTaSC::CacheTS)(timestamp*1000.0+0.5);
                if (ikscene->cache->getPreviousCacheItem(ikscene->armature, 0, &cts) == NULL || cts == 0) {
                        // the cache is empty before this time, reiterate