Skip to content

Commit e53913f

Browse files
committed
- added missing rendering functions
1 parent 1adf52e commit e53913f

File tree

2 files changed

+19
-0
lines changed

2 files changed

+19
-0
lines changed

Demos/Common/DemoBase.cpp

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -390,6 +390,10 @@ void DemoBase::render()
390390
{
391391
renderDistanceJoint(*(DistanceJoint*)constraints[i]);
392392
}
393+
else if (constraints[i]->getTypeId() == DamperJoint::TYPE_ID)
394+
{
395+
renderDamperJoint(*(DamperJoint*)constraints[i]);
396+
}
393397
}
394398

395399

@@ -753,6 +757,20 @@ void DemoBase::renderDistanceJoint(DistanceJoint &j)
753757
MiniGL::drawCylinder(j.m_jointInfo.col(2), j.m_jointInfo.col(3), m_jointColor, 0.05f);
754758
}
755759

760+
void DemoBase::renderDamperJoint(DamperJoint &joint)
761+
{
762+
SimulationModel *model = Simulation::getCurrent()->getModel();
763+
const SimulationModel::RigidBodyVector &rigidBodies = model->getRigidBodies();
764+
RigidBody *rb = rigidBodies[joint.m_bodies[0]];
765+
766+
Quaternionr qR0;
767+
qR0.coeffs() = joint.m_jointInfo.col(1);
768+
const Vector3r &c = rb->getPosition();
769+
Vector3r axis = qR0.matrix().col(0);
770+
MiniGL::drawSphere(c, 0.1f, m_jointColor);
771+
MiniGL::drawCylinder(c - axis, c + axis, m_jointColor, 0.05f);
772+
}
773+
756774
void DemoBase::mouseMove(int x, int y, void *clientData)
757775
{
758776
DemoBase *base = (DemoBase*)clientData;

Demos/Common/DemoBase.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ namespace PBD
6767
void renderParticleRigidBodyContact(ParticleRigidBodyContactConstraint &cc);
6868
void renderSpring(RigidBodySpring &s);
6969
void renderDistanceJoint(DistanceJoint &j);
70+
void renderDamperJoint(DamperJoint &j);
7071

7172
public:
7273
static int PAUSE;

0 commit comments

Comments
 (0)