YOU_MIXED_DIFFERENT_NUMERIC_TY error in using PCL with VS 2010
<p>I am compiling an opensource c++ program which uses PCL and OPENCV. The problem seems to be types transformation between different Eigen objects.</p>

<blockquote>
  <p><code>c:\program files (x86)\pcl 1.6.0\3rdparty\eigen\include\eigen\src\core\matrix.h(294): error C2338:</code>
  <code>YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY</code></p>
</blockquote>

<p>Code about Eigen in the program:</p>

<pre><code>    cv::Mat R;
cv::Rodrigues( result.rvec, R );
Eigen::Matrix3d r;
cv::cv2eigen(R, r);

// 将平移向量和旋转矩阵转换成变换矩阵
Eigen::Isometry3d T = Eigen::Isometry3d::Identity();

Eigen::AngleAxisd angle(r);
cout&lt;&lt;"translation"&lt;&lt;endl;
Eigen::Translation&lt;double,3&gt; trans(result.tvec.at&lt;double&gt;(0,0), result.tvec.at&lt;double&gt;(0,1), result.tvec.at&lt;double&gt;(0,2));
T = angle;
T(0,3) = result.tvec.at&lt;double&gt;(0,0); 
T(1,3) = result.tvec.at&lt;double&gt;(0,1); 
T(2,3) = result.tvec.at&lt;double&gt;(0,2);

// Transform point clouds
cout&lt;&lt;"converting image to clouds"&lt;&lt;endl;
PointCloud::Ptr cloud1 = image2PointCloud( frame1.rgb, frame1.depth, camera );
PointCloud::Ptr cloud2 = image2PointCloud( frame2.rgb, frame2.depth, camera );

// Combine point clouds
cout&lt;&lt;"combining clouds"&lt;&lt;endl;
PointCloud::Ptr output (new PointCloud());
pcl::transformPointCloud( *cloud1, *output, T.matrix() );   // error occurs at this line, the compiler told.
*output += *cloud2;
</code></pre>

<p>error message:</p>

<blockquote>
  <p>1>c:\program files (x86)\pcl<br>
  1.6.0\3rdparty\eigen\include\eigen\src\core\matrix.h(294): error C2338:<br>
  YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_
  TO_CAST_NUMERIC_TYPES_EXPLICITLY
      1>          f:\cpps\win32project1\win32project1\jointpointcloud.cpp(88) : see<br>
  reference to function template instantiation<br>
  'Eigen::Matrix&lt;_Scalar,_Rows,_Cols>::Matrix(const<br>
  Eigen::MatrixBase &amp;)' being compiled
      1>          with
      1>          [
      1>              _Scalar=float,
      1>              _Rows=4,
      1>              _Cols=4,
      1>              Derived=Eigen::Matrix
      1>          ]
      1>          f:\cpps\win32project1\win32project1\jointpointcloud.cpp(88) : see<br>
  reference to function template instantiation<br>
  'Eigen::Matrix&lt;_Scalar,_Rows,_Cols>::Matrix(const<br>
  Eigen::MatrixBase &amp;)' being compiled
      1>          with
      1>          [
      1>              _Scalar=float,
      1>              _Rows=4,
      1>              _Cols=4,
      1>              Derived=Eigen::Matrix
      1>          ]
      ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========</p>
</blockquote>