Warning fixes for ITASC. Also, use <stdlib.h> instead of <malloc.h>,

it works everywhere.
This commit is contained in:
Brecht Van Lommel
2009-09-25 09:33:46 +00:00
parent 7c9bb3c40a
commit 5eecb2ab48
9 changed files with 30 additions and 38 deletions

View 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;
}
}
}

View 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 {

View 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_Wy(e_scalar_vector(m_nc,1.0)),
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_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_S(6),m_temp(6),m_tdelta(6),
m_internalPose(F_identity), m_externalPose(F_identity),
m_constraintCallback(NULL), m_constraintParam(NULL),
m_toggle(false),m_substep(false),

View 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;

View File

@@ -31,6 +31,8 @@ public:
case DLS_QMAX:
m_qmax = value;
break;
default:
break;
}
}
};

View 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);
}

View 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;
}

View 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;

View 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