<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://programmingexamples.net/w/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://programmingexamples.net/w/index.php?action=history&amp;feed=atom&amp;title=CPP%2FEigen%2FHomogeneous</id>
		<title>CPP/Eigen/Homogeneous - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://programmingexamples.net/w/index.php?action=history&amp;feed=atom&amp;title=CPP%2FEigen%2FHomogeneous"/>
		<link rel="alternate" type="text/html" href="http://programmingexamples.net/w/index.php?title=CPP/Eigen/Homogeneous&amp;action=history"/>
		<updated>2026-06-15T12:29:23Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.23.5</generator>

	<entry>
		<id>http://programmingexamples.net/w/index.php?title=CPP/Eigen/Homogeneous&amp;diff=4725&amp;oldid=prev</id>
		<title>Daviddoria: Created page with '==Homogeneous.cpp== &lt;source lang=&quot;cpp&quot;&gt; #include &lt;iostream&gt;  #include &lt;Eigen/Geometry&gt; #include &lt;Eigen/Dense&gt; // for Vector  void CreateHomeogeneous(); void ConvertToHomeogeneous…'</title>
		<link rel="alternate" type="text/html" href="http://programmingexamples.net/w/index.php?title=CPP/Eigen/Homogeneous&amp;diff=4725&amp;oldid=prev"/>
				<updated>2011-08-15T15:59:40Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;#039;==Homogeneous.cpp== &amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt; #include &amp;lt;iostream&amp;gt;  #include &amp;lt;Eigen/Geometry&amp;gt; #include &amp;lt;Eigen/Dense&amp;gt; // for Vector  void CreateHomeogeneous(); void ConvertToHomeogeneous…&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Homogeneous.cpp==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;Eigen/Geometry&amp;gt;&lt;br /&gt;
#include &amp;lt;Eigen/Dense&amp;gt; // for Vector&lt;br /&gt;
&lt;br /&gt;
void CreateHomeogeneous();&lt;br /&gt;
void ConvertToHomeogeneous();&lt;br /&gt;
void ConvertFromHomeogeneous();&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char *argv[])&lt;br /&gt;
{&lt;br /&gt;
  //CreateHomeogeneous();&lt;br /&gt;
  ConvertToHomeogeneous();&lt;br /&gt;
  ConvertFromHomeogeneous();&lt;br /&gt;
  &lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void CreateHomeogeneous()&lt;br /&gt;
{&lt;br /&gt;
  /*&lt;br /&gt;
  Eigen::Homogeneous&amp;lt;Eigen::Vector3d, Eigen::Vertical&amp;gt; h;&lt;br /&gt;
  h(0,0) = 3;&lt;br /&gt;
  h(1,0) = 2.5;&lt;br /&gt;
&lt;br /&gt;
  std::cout &amp;lt;&amp;lt; h &amp;lt;&amp;lt; std::endl;&lt;br /&gt;
  */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void ConvertToHomeogeneous()&lt;br /&gt;
{&lt;br /&gt;
  std::cout &amp;lt;&amp;lt; &amp;quot;ConvertToHomeogeneous()&amp;quot; &amp;lt;&amp;lt; std::endl;&lt;br /&gt;
&lt;br /&gt;
  // Create a 3D vector&lt;br /&gt;
  Eigen::Vector3d v;&lt;br /&gt;
  v(0) = 0;&lt;br /&gt;
  v(1) = 1;&lt;br /&gt;
  v(2) = 2;&lt;br /&gt;
&lt;br /&gt;
  std::cout &amp;lt;&amp;lt; &amp;quot;Original 3D vector: &amp;quot; &amp;lt;&amp;lt; v &amp;lt;&amp;lt; std::endl;&lt;br /&gt;
&lt;br /&gt;
  // Get the homogeneous version of the vector&lt;br /&gt;
  Eigen::Vector4d h = v.homogeneous();&lt;br /&gt;
  std::cout &amp;lt;&amp;lt; &amp;quot;Homogeneous version (4D): &amp;quot; &amp;lt;&amp;lt; h &amp;lt;&amp;lt; std::endl;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void ConvertFromHomeogeneous()&lt;br /&gt;
{&lt;br /&gt;
  std::cout &amp;lt;&amp;lt; &amp;quot;ConvertFromHomeogeneous()&amp;quot; &amp;lt;&amp;lt; std::endl;&lt;br /&gt;
&lt;br /&gt;
  // Create a 4D vector&lt;br /&gt;
  Eigen::Vector4d v;&lt;br /&gt;
  v(0) = 0;&lt;br /&gt;
  v(1) = 1;&lt;br /&gt;
  v(2) = 2;&lt;br /&gt;
  v(3) = .5;&lt;br /&gt;
&lt;br /&gt;
  std::cout &amp;lt;&amp;lt; &amp;quot;Original 4D homogeneous vector: &amp;quot; &amp;lt;&amp;lt;  v &amp;lt;&amp;lt; std::endl;&lt;br /&gt;
&lt;br /&gt;
  // Divide the vector by the last entry&lt;br /&gt;
  Eigen::Vector3d unhomog = v.hnormalized();&lt;br /&gt;
  std::cout &amp;lt;&amp;lt; &amp;quot;Un-homogeneous vector: &amp;quot; &amp;lt;&amp;lt; unhomog &amp;lt;&amp;lt; std::endl;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==CMakeLists.txt==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cmake&amp;quot;&amp;gt;&lt;br /&gt;
cmake_minimum_required(VERSION 2.6)&lt;br /&gt;
&lt;br /&gt;
PROJECT(Homogeneous)&lt;br /&gt;
&lt;br /&gt;
# must set EIGEN3_INCLUDE_DIR to ~/src/Eigen (or where ever Eigen lives)&lt;br /&gt;
&lt;br /&gt;
#set(EIGEN3_INCLUDE_DIR ~/src/eigen)&lt;br /&gt;
&lt;br /&gt;
#SET(CMAKE_MODULE_PATH /media/portable/src/Eigen/cmake)&lt;br /&gt;
#SET(CMAKE_MODULE_PATH .)&lt;br /&gt;
set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR} ${CMAKE_MODULE_PATH})&lt;br /&gt;
#set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR})&lt;br /&gt;
&lt;br /&gt;
FIND_PACKAGE(Eigen3 REQUIRED)&lt;br /&gt;
INCLUDE_DIRECTORIES(${EIGEN3_INCLUDE_DIR})&lt;br /&gt;
&lt;br /&gt;
ADD_EXECUTABLE(Homogeneous Homogeneous.cpp )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Daviddoria</name></author>	</entry>

	</feed>