Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion extensions/CUDA/src/SoftRobots/CUDA/init.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ void init()
static bool first = true;
if (first)
{
sofa::gpu::cuda::init();
sofacuda::init();
first = false;
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
******************************************************************************/
#pragma once

#include <sofa/core/behavior/BaseConstraint.h>
#include <sofa/core/behavior/BaseLagrangianConstraint.h>

#include <SoftRobots/component/initSoftRobots.h>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
#pragma once

#include <SoftRobots/component/initSoftRobots.h>
#include <sofa/core/behavior/Constraint.h>
#include <sofa/core/behavior/LagrangianConstraint.h>
#include <sofa/core/behavior/ConstraintResolution.h>
#include <sofa/linearalgebra/BaseVector.h>

Expand All @@ -38,7 +38,7 @@ namespace softrobots::constraint

using sofa::core::behavior::ConstraintResolution ;
using sofa::core::ConstraintParams ;
using sofa::core::behavior::Constraint ;
using sofa::core::behavior::LagrangianConstraint ;
using sofa::linearalgebra::BaseVector ;
using sofa::type::Vec ;

Expand All @@ -49,11 +49,11 @@ class PartialRigidificationConstraintResolution6Dof : public ConstraintResolutio
};

template< class DataTypes >
class PartialRigidificationConstraint : public Constraint<DataTypes>
class PartialRigidificationConstraint : public LagrangianConstraint<DataTypes>
{
public:
SOFA_CLASS(SOFA_TEMPLATE(PartialRigidificationConstraint,DataTypes),
SOFA_TEMPLATE(sofa::core::behavior::Constraint,DataTypes));
SOFA_TEMPLATE(sofa::core::behavior::LagrangianConstraint,DataTypes));

typedef typename DataTypes::VecCoord VecCoord;
typedef typename DataTypes::VecDeriv VecDeriv;
Expand Down Expand Up @@ -98,7 +98,7 @@ class PartialRigidificationConstraint : public Constraint<DataTypes>
private:

////////////////////////// Inherited attributes ////////////////////////////
using Constraint<DataTypes>::mstate ;
using LagrangianConstraint<DataTypes>::mstate ;
////////////////////////////////////////////////////////////////////////////
};

Expand Down
18 changes: 9 additions & 9 deletions src/SoftRobots/component/constraint/model/CableModel.inl
Original file line number Diff line number Diff line change
Expand Up @@ -562,7 +562,7 @@ SReal CableModel<DataTypes>::getDistanceToTriangle(const Coord& position, const
const bool r = sofa::geometry::proximity::computeClosestPointOnTriangleToPoint(Vec3(p0), Vec3(p1), Vec3(p2), Vec3(position), projection);
assert(r);
SOFA_UNUSED(r);
projectionOnTriangle = projection;
projectionOnTriangle.set(Vec3(projection[0],projection[1],projection[2]));
const Real distanceToTriangle = (projectionOnTriangle - position).norm();
return distanceToTriangle;
}
Expand Down Expand Up @@ -872,11 +872,11 @@ void CableModel<DataTypes>::drawPullPoint(const VisualParams* vparams)
const SetIndexArray &indices = d_indices.getValue();

vector<Vec3> points(1);
points[0] = d_pullPoint.getValue();
points[0].set(d_pullPoint.getValue());
if(!d_hasPullPoint.getValue() && indices.size()>=1)
{
ReadAccessor<Data<VecCoord>> positions = m_state->readPositions();
points[0] = positions[indices[0]];
points[0].set(positions[indices[0]]);
}

vparams->drawTool()->drawPoints(points, 15, RGBAColor::yellow());
Expand All @@ -894,13 +894,13 @@ void CableModel<DataTypes>::drawPoints(const VisualParams* vparams)
{
if (!m_hasCenters)
{
points[i] = positions[indices[i]];
points[i].set(positions[indices[i]]);
}
else
{
points[i] = positions[m_closestTriangle[i][0]]
points[i].set(positions[m_closestTriangle[i][0]]
+ m_alphaBarycentric[i] * (positions[m_closestTriangle[i][1]] - positions[m_closestTriangle[i][0]])
+ m_betaBarycentric[i] * (positions[m_closestTriangle[i][2]] - positions[m_closestTriangle[i][0]]);
+ m_betaBarycentric[i] * (positions[m_closestTriangle[i][2]] - positions[m_closestTriangle[i][0]]));
}
}

Expand Down Expand Up @@ -949,8 +949,8 @@ void CableModel<DataTypes>::drawLinesBetweenPoints(const VisualParams* vparams)
+ m_alphaBarycentric[i] * (positions[m_closestTriangle[i][1]] - positions[m_closestTriangle[i][0]])
+ m_betaBarycentric[i] * (positions[m_closestTriangle[i][2]] - positions[m_closestTriangle[i][0]]);
}
points[i*2] = currentPosition;
points[i*2+1] = previousPosition;
points[i*2].set(currentPosition);
points[i*2+1].set(previousPosition);
previousPosition = currentPosition;
}

Expand All @@ -967,7 +967,7 @@ void CableModel<DataTypes>::drawPulledAreas(const VisualParams* vparams)
for(unsigned int j=0; j<m_areaIndices[i].size(); j++)
{
vector<Vec3> point(1);
point[0] = positions[m_areaIndices[i][j]];
point[0].set(positions[m_areaIndices[i][j]]);
vparams->drawTool()->drawPoints(point, 40.f * m_ratios[i][j], RGBAColor::yellow());
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/SoftRobots/component/controller/AnimationEditor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ void AnimationEditor<Rigid3Types>::drawTrajectory(const VisualParams* vparams)
for(unsigned int k=0; k<m_animation[i].size(); k++)
{
points.push_back(m_animation[IDSorted[i]][k].getCenter());
vparams->drawTool()->drawFrame(m_animation[m_keyFramesID[i]][k].getCenter(), m_animation[m_keyFramesID[i]][k].getOrientation(), Rigid3Types::CPos(d_drawSize.getValue(),d_drawSize.getValue(),d_drawSize.getValue()));
vparams->drawTool()->drawFrame(m_animation[m_keyFramesID[i]][k].getCenter(), m_animation[m_keyFramesID[i]][k].getOrientation(), sofa::type::Vec3f(d_drawSize.getValue(),d_drawSize.getValue(),d_drawSize.getValue()));
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -197,8 +197,8 @@ void PREquivalentStiffnessForceField<DataTypes>::addForce(const MechanicalParams
Uloc[i+3] = UinX0.getAngularVelocity()[i];
}
Vec6 Floc = m_CInv[n] * Uloc;
Vec3 f_loc(Floc.ptr());
Vec3 tau_loc(Floc.ptr() + 3);
Vec3 f_loc(Floc[0], Floc[1], Floc[2]);
Vec3 tau_loc(Floc[3], Floc[4], Floc[5]);

SpatialVector F1atX1inX0(f_loc, tau_loc);

Expand All @@ -223,8 +223,8 @@ void PREquivalentStiffnessForceField<DataTypes>::addForce(const MechanicalParams
// compute x1 forces in x0's frame and rotate them back to global coordinates
Vec6 f1l0 = m_CInv[n] * dX1;

Vec3 F1(f1l0.ptr());
Vec3 tau1(f1l0.ptr() + 3);
Vec3 F1(f1l0[0], f1l0[1], f1l0[2]);
Vec3 tau1(f1l0[3], f1l0[4], f1l0[5]);
F1 = q0Current.rotate(F1);
tau1 = q0Current.rotate(tau1);

Expand All @@ -249,8 +249,8 @@ void PREquivalentStiffnessForceField<DataTypes>::addForce(const MechanicalParams

// compute f0
Vec6 f0l0 = H * f1l0;
Vec3 F0(f0l0.ptr());
Vec3 tau0(f0l0.ptr() + 3);
Vec3 F0(f0l0[0], f0l0[1], f0l0[2]);
Vec3 tau0(f0l0[3], f0l0[4], f0l0[5]);

F0 = q0Current.rotate(F0);
tau0 = q0Current.rotate(tau0);
Expand Down Expand Up @@ -313,8 +313,8 @@ void PREquivalentStiffnessForceField<DataTypes>::addDForce(const MechanicalParam
Vec12 df = m_K[n + start] * dq * kFact;

// separate force vector
Vec6 df0(df.ptr());
Vec6 df1(df.ptr() + 6);
Vec6 df0(df[0], df[1], df[2], df[3], df[4], df[5]);
Vec6 df1(df[6], df[7], df[8], df[9], df[10], df[11]);

dfdq[n + 0 + start] += df0;
dfdq[n + 1 + start] += df1;
Expand Down Expand Up @@ -436,8 +436,8 @@ void PREquivalentStiffnessForceField<DataTypes>::computeForce(const VecCoord& po

// compute x1 forces in x0's frame and rotate them back to global coordinates
Vec6 f1l0 = m_CInv[n] * dX1;
Vec3 F1(f1l0.ptr());
Vec3 r1(f1l0.ptr() + 3);
Vec3 F1(f1l0[0], f1l0[1], f1l0[2]);
Vec3 r1(f1l0[3], f1l0[4], f1l0[5]);
F1 = q0Current.rotate(F1);
r1 = q0Current.rotate(r1);

Expand All @@ -457,8 +457,8 @@ void PREquivalentStiffnessForceField<DataTypes>::computeForce(const VecCoord& po

// compute f0
Vec6 f0l0 = H * f1l0;
Vec3 F0(f0l0.ptr());
Vec3 r0(f0l0.ptr() + 3);
Vec3 F0(f0l0[0], f0l0[1], f0l0[2]);
Vec3 r0(f0l0[3], f0l0[4], f0l0[5]);
F0 = q0Current.rotate(F0);
r0 = q0Current.rotate(r0);
Vec6 f0(F0, r0);
Expand Down
Loading