From 391bd2d5fd669c872ffe57dd25428999d88d97ad Mon Sep 17 00:00:00 2001
From: Florent Lamiraux <florent@laas.fr>
Date: Thu, 27 Sep 2018 17:58:14 +0200
Subject: [PATCH] [Handle] Fix size of comparison type.

---
 src/handle.cc | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/src/handle.cc b/src/handle.cc
index 0a37c5ba..1022ad1b 100644
--- a/src/handle.cc
+++ b/src/handle.cc
@@ -69,6 +69,15 @@ namespace hpp {
       return false;
     }
 
+    inline std::size_t maskSize (const std::vector<bool>& mask)
+    {
+      std::size_t res (0);
+      for (std::size_t i = 0; i < 6; ++i) {
+        if (mask[i]) ++res;
+      }
+      return res;
+    }
+
     inline bool is6Dmask (const std::vector<bool>& mask)
     {
       for (std::size_t i = 0; i < 6; ++i) if (!mask[i]) return false;
@@ -123,7 +132,7 @@ namespace hpp {
       return constraints::implicit::RelativePose::create
         (n, gripper->joint ()->robot (), gripper->joint (), joint (),
          gripper->objectPositionInJoint (), localPosition(),
-         mask_, ComparisonTypes_t (mask_.size (), constraints::EqualToZero));
+         mask_, ComparisonTypes_t (maskSize (mask_), constraints::EqualToZero));
     }
 
     ImplicitPtr_t Handle::createGraspComplement
@@ -145,7 +154,7 @@ namespace hpp {
         return constraints::implicit::RelativePose::create
           (n, gripper->joint ()->robot (), gripper->joint (), joint (),
            gripper->objectPositionInJoint (), localPosition(),
-           Cmask, ComparisonTypes_t (Cmask.size (), constraints::Equality));
+           Cmask, ComparisonTypes_t (maskSize (Cmask), constraints::Equality));
       }
     }
 
@@ -192,7 +201,7 @@ namespace hpp {
         (constraints::implicit::RelativePose::create
          (n, gripper->joint()->robot(), gripper->joint (), joint (),
           transform, localPosition(), mask_, ComparisonTypes_t
-          (mask_.size (), constraints::EqualToZero)));
+          (maskSize (mask_), constraints::EqualToZero)));
       return result;
     }
 
-- 
GitLab