<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Anthony Barbier&#039;s Final Year Project Diary</title>
	<atom:link href="http://anthonybarbier.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://anthonybarbier.wordpress.com</link>
	<description>This is the diary of my Final Year Project</description>
	<lastBuildDate>Thu, 25 Mar 2010 11:58:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='anthonybarbier.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Anthony Barbier&#039;s Final Year Project Diary</title>
		<link>http://anthonybarbier.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://anthonybarbier.wordpress.com/osd.xml" title="Anthony Barbier&#039;s Final Year Project Diary" />
	<atom:link rel='hub' href='http://anthonybarbier.wordpress.com/?pushpress=hub'/>
		<item>
		<title>weekly meeting with my supervisor</title>
		<link>http://anthonybarbier.wordpress.com/2010/03/25/weekly-meeting-with-my-supervisor/</link>
		<comments>http://anthonybarbier.wordpress.com/2010/03/25/weekly-meeting-with-my-supervisor/#comments</comments>
		<pubDate>Thu, 25 Mar 2010 11:58:13 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=347</guid>
		<description><![CDATA[Today we talked about the report: - how and what I need to reference - what I should put in my design / analysis parts - how and where to use UML diagrams. At the moment I have finished to write the first draft of the abstract, introduction, analysis and design parts. I am now [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=347&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Today we talked about the report:</p>
<p>- how and what I need to reference</p>
<p>- what I should put in my design / analysis parts</p>
<p>- how and where to use UML diagrams.</p>
<p>At the moment I have finished to write the first draft of the abstract, introduction, analysis and design parts.</p>
<p>I am now going to work on the modifications we talked about during the meeting.</p>
<p>I also need to work on finding some more references.</p>
<p>I&#8217;ll then start working on the implementation part.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/347/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/347/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/347/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/347/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/347/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/347/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/347/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/347/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/347/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/347/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/347/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/347/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/347/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/347/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=347&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2010/03/25/weekly-meeting-with-my-supervisor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>
	</item>
		<item>
		<title>Meeting with my supervisor</title>
		<link>http://anthonybarbier.wordpress.com/2010/03/20/meeting-with-my-supervisor-10/</link>
		<comments>http://anthonybarbier.wordpress.com/2010/03/20/meeting-with-my-supervisor-10/#comments</comments>
		<pubDate>Sat, 20 Mar 2010 10:10:51 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=344</guid>
		<description><![CDATA[This week we talked again about the report, I&#8217;ve asked my supervisor to check my table of contents to be sure I was covering everything. The big sections of my report will be : - Introduction - Analysis -Design -Implementation - Feedback/ Testing - Conclusion We also discussed what each section should content. I have [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=344&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This week we talked again about the report, I&#8217;ve asked my supervisor to check my table of contents to be sure I was covering everything.</p>
<p>The big sections of my report will be :</p>
<p>- Introduction</p>
<p>- Analysis</p>
<p>-Design</p>
<p>-Implementation</p>
<p>- Feedback/ Testing</p>
<p>- Conclusion</p>
<p>We also discussed what each section should content.</p>
<p>I have now finished to write the abstract and introduction, so now I&#8217;m now going to start writing the Analysis and Design parts.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/344/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/344/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/344/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/344/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/344/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/344/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/344/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/344/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/344/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/344/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/344/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/344/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/344/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/344/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=344&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2010/03/20/meeting-with-my-supervisor-10/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>
	</item>
		<item>
		<title>Meeting with my supervisor</title>
		<link>http://anthonybarbier.wordpress.com/2010/03/04/meeting-with-my-supervisor-9/</link>
		<comments>http://anthonybarbier.wordpress.com/2010/03/04/meeting-with-my-supervisor-9/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 19:40:32 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=342</guid>
		<description><![CDATA[Today I showed my supervisor the demonstration applications I used last week during my presentation at Schlumberger. I also told him I had decided to stop coding on the project. Here are the main reasons : - The final year project handbook says students are supposed to work 20 hours per week on their final year project [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=342&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Today I showed my supervisor the demonstration applications I used last week during my presentation at Schlumberger.</p>
<p>I also told him I had decided to stop coding on the project. Here are the main reasons :</p>
<p>- The final year project handbook says students are supposed to work 20 hours per week on their final year project (and 10hours per week for each of the other modules), over a period of 20 weeks. Which makes a total of 400 hours for the whole project. So far I&#8217;ve spent at least 800 hours on the project (report not included). Also I have four other modules, on which I should have worked 40hours per week but I didn&#8217;t.</p>
<p>- The marks : even if it was not my main objective until now, I need to remember that the objective of the year is to get a first class degree. And for that it makes much more sense to work on the other modules than on the final year project, for the simple reason that the implementation only represents 30% of the marks.</p>
<p>So from now on I will only work on the report and the other modules and won&#8217;t be changing the code any more.</p>
<p>My supervisor didn&#8217;t tell me if it was a good idea or not to stop the development, he just told me that I still had to keep a schedule for the remaining weeks.</p>
<p>Also, from now on we will only meet if needed (I won&#8217;t go every week as I used to).</p>
<p>Here is the schedule for next week : I&#8217;m going to start writing the abstract and the introduction parts of my report.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/342/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/342/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/342/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/342/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/342/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/342/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/342/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/342/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/342/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/342/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/342/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/342/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/342/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/342/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=342&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2010/03/04/meeting-with-my-supervisor-9/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>
	</item>
		<item>
		<title>Schlumberger visit #3</title>
		<link>http://anthonybarbier.wordpress.com/2010/02/28/schlumberger-visit-3/</link>
		<comments>http://anthonybarbier.wordpress.com/2010/02/28/schlumberger-visit-3/#comments</comments>
		<pubDate>Sun, 28 Feb 2010 15:55:12 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=339</guid>
		<description><![CDATA[yesterday and today I was in Cambridge to give a presentation of the API, give them the source code, and debug the VR part. It didn&#8217;t really go according to the plan: I spent all thursday and friday fixing bugs and trying to loading new datasets in order to have some more interesting data to show [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=339&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>yesterday and today I was in Cambridge to give a presentation of the API, give them the source code, and debug the VR part.</p>
<p>It didn&#8217;t really go according to the plan: I spent all thursday and friday fixing bugs and trying to loading new datasets in order to have some more interesting data to show during the presentation.</p>
<p>As a result I didn&#8217;t work at all on the VR part.</p>
<p>I now have several scenes : 3 using some simulated data, and 1 using some real data.</p>
<p>The presentation went well, about 10-15 people intended, and they all seemed impressed by the demonstration.</p>
<p>During the meeting we discussed about the future of the project :</p>
<p>- I won&#8217;t modify the code any more.</p>
<p>- They don&#8217;t really know how they want to make the library evolve. So, in the next few months they&#8217;re going to use it, and after they will start thinking about possible improvements or new features.</p>
<p>- Some people suggested to transfer the project to the Visualisation intern</p>
<p>- My project report will be the only developer documentation available.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/339/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/339/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/339/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/339/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/339/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/339/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/339/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/339/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/339/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/339/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/339/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/339/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/339/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/339/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=339&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2010/02/28/schlumberger-visit-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>
	</item>
		<item>
		<title>New features</title>
		<link>http://anthonybarbier.wordpress.com/2010/02/22/new-features/</link>
		<comments>http://anthonybarbier.wordpress.com/2010/02/22/new-features/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 15:30:03 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=337</guid>
		<description><![CDATA[Over the past few days : - I&#8217;ve implemented a very basic VR mode : asymmetric frustum for the head tracking, stereo display, wand input to control the camera and the time. But this has not been tested yet so it&#8217;s hard to tell the current status of the VR part. - I&#8217;ve implemented a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=337&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Over the past few days :</p>
<p>- I&#8217;ve implemented a very basic VR mode : asymmetric frustum for the head tracking, stereo display, wand input to control the camera and the time. But this has not been tested yet so it&#8217;s hard to tell the current status of the VR part.</p>
<p>- I&#8217;ve implemented a graph view : basically you have a rectangle surface on which you can plot graphs, and animate it at the same time as the other objects in the scene. You can also zoom in / out on one axis or both.</p>
<p>- I&#8217;ve added a bit of shading on the BHA so that it looks less flat.</p>
<p>- I&#8217;ve created a binary serializer / loader for the data files (Float list and Double list), the only files which can&#8217;t be serialized as binary are the bha composition files, but it&#8217;s not a problem as they are really small (~10kB)</p>
<p>I&#8217;ve debugged the multi threading and the multi windows system : now you can create as many 3D popup windows as you want, and use different cameras in each of them. (I&#8217;ll post a video of that later)</p>
<p>I&#8217;ve added several functions to the C Interface. (I still need to document it though)</p>
<p>To do next :</p>
<p>- debug the borehole generation : still have some twists problems.</p>
<p>- add the new functions to the Matlab interface</p>
<p>- work on the documentation of both the interfaces.</p>
<p>- Improve a bit the GUI.</p>
<p>- Fly mode camera (for the VR)</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/337/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/337/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/337/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/337/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/337/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/337/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/337/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/337/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/337/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/337/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/337/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/337/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/337/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/337/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=337&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2010/02/22/new-features/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>
	</item>
		<item>
		<title>Stereoscopic display</title>
		<link>http://anthonybarbier.wordpress.com/2010/02/15/stereoscopic-display/</link>
		<comments>http://anthonybarbier.wordpress.com/2010/02/15/stereoscopic-display/#comments</comments>
		<pubDate>Mon, 15 Feb 2010 12:06:34 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=335</guid>
		<description><![CDATA[In the past I was using Open Scene Graph when I wanted to display something in stereo, so I don&#8217;t know how to do it just with OpenGL. I&#8217;ve done some research and here are a few useful links : - This guy did a lot of work about stereographics, and he also put some [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=335&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In the past I was using Open Scene Graph when I wanted to display something in stereo, so I don&#8217;t know how to do it just with OpenGL.</p>
<p>I&#8217;ve done some research and here are a few useful links :</p>
<p>- This guy did a lot of work about stereographics, and he also put some OpenGL code :</p>
<p><a href="http://local.wasp.uwa.edu.au/~pbourke/miscellaneous/stereographics/stereorender">http://local.wasp.uwa.edu.au/~pbourke/miscellaneous/stereographics/stereorender/</a></p>
<p><a href="http://local.wasp.uwa.edu.au/~pbourke/miscellaneous/stereographics">http://local.wasp.uwa.edu.au/~pbourke/miscellaneous/stereographics/</a> </p>
<p>- I need to use Active Stereo, and the only way I know to do that is to use the Quadro FX driver from nVidia : <a href="http://www.nvidia.com/object/quadro_stereo_technology.html">http://www.nvidia.com/object/quadro_stereo_technology.html</a></p>
<p>Here is what I&#8217;ve found on the forum nvidia :</p>
<p>&#8220;This is correct. Stereo support is one of the selling points of the Quadros. The specific feature is called quad buffers. That is; left and right front and back buffers.<br />
To use quad buffers, first select a pixel format with quad buffers/stereo support.<br />
Then use glDrawBuffer(GL_BACK_LEFT/GL_BACK_RIGHT) to select the buffer. No openGL extensions or special API needed.&#8221;</p>
<p><a href="http://developer.nvidia.com/forums/index.php?showtopic=3007">http://developer.nvidia.com/forums/index.php?showtopic=3007</a></p>
<p>So, apparently I just need to set the &#8220;stereo&#8221; flag in my pixel format when the OpenGL context is created (which means using WX_GL_STEREO : <a href="http://docs.wxwidgets.org/2.8/wx_wxglcanvas.html">http://docs.wxwidgets.org/2.8/wx_wxglcanvas.html</a>)</p>
<p>and then I need to render twice the scene using glDrawBuffer(GL_BACK_LEFT) and glDrawBuffer(GL_BACK_RIGHT) , like this :</p>
<p><a href="http://www.orthostereo.com/geometryopengl.html">http://www.orthostereo.com/geometryopengl.html</a>  </p>
<p>GLvoid display(GLvoid)<br />
{<br />
  glDrawBuffer(GL_BACK);                                   //draw into both back buffers<br />
  glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);      //clear color and depth buffers</p>
<p>  glDrawBuffer(GL_BACK_LEFT);                              //draw into back left buffer<br />
  glMatrixMode(GL_PROJECTION);<br />
  glLoadIdentity();                                        //reset projection matrix<br />
  glFrustum(leftCam.leftfrustum, leftCam.rightfrustum,     //set left view frustum<br />
            leftCam.bottomfrustum, leftCam.topfrustum,<br />
            nearZ, farZ);<br />
  glTranslatef(leftCam.modeltranslation, 0.0, 0.0);        //translate to cancel parallax<br />
  glMatrixMode(GL_MODELVIEW);<br />
  glLoadIdentity);<br />
  glPushMatrix();<br />
  {<br />
    glTranslatef(0.0, 0.0, depthZ);                        //translate to screenplane<br />
    drawscene();<br />
  }<br />
  glPopMatrix();</p>
<p>  glDrawBuffer(GL_BACK_RIGHT);                             //draw into back right buffer<br />
  glMatrixMode(GL_PROJECTION);<br />
  glLoadIdentity();                                        //reset projection matrix<br />
  glFrustum(rightCam.leftfrustum, rightCam.rightfrustum,   //set left view frustum<br />
            rightCam.bottomfrustum, rightCam.topfrustum,<br />
            nearZ, farZ);<br />
  glTranslatef(rightCam.modeltranslation, 0.0, 0.0);       //translate to cancel parallax<br />
  glMatrixMode(GL_MODELVIEW);<br />
  glLoadIdentity);</p>
<p>  glPushMatrix();<br />
  {<br />
    glTranslatef(0.0, 0.0, depthZ);                        //translate to screenplane<br />
    drawscene();<br />
  }<br />
  glPopMatrix();<br />
  <br />
  glutSwapBuffers();<br />
}</p>
<p>I don&#8217;t remember what kind of grpahics card we have in the lab, so I&#8217;m not sure I&#8217;ll be able to test it here. I need to check that.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/335/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/335/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/335/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/335/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/335/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/335/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/335/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/335/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/335/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/335/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/335/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/335/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/335/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/335/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=335&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2010/02/15/stereoscopic-display/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>
	</item>
		<item>
		<title>Virtual Reality / VRJuggler</title>
		<link>http://anthonybarbier.wordpress.com/2010/02/15/virtual-reality-vrjuggler/</link>
		<comments>http://anthonybarbier.wordpress.com/2010/02/15/virtual-reality-vrjuggler/#comments</comments>
		<pubDate>Mon, 15 Feb 2010 10:52:20 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=333</guid>
		<description><![CDATA[This week end I&#8217;ve started to work on the Virtual Reality part of the API,  and more specifically on the tracking system. The first step is to be able to read the data from the tracking system. In the past I&#8217;ve used VRJuggler , this is an open source framework dedicated to Virtual Reality. It&#8217;s [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=333&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This week end I&#8217;ve started to work on the Virtual Reality part of the API,  and more specifically on the tracking system.</p>
<p>The first step is to be able to read the data from the tracking system.</p>
<p>In the past I&#8217;ve used <a href="http://www.vrjuggler.org/">VRJuggler </a>, this is an open source framework dedicated to Virtual Reality. It&#8217;s really flexible (this is the most flexible library I&#8217;ve ever used), and it&#8217;s supporting the Intersense IS900 tracking system (which is what Schlumberger has in its iCenter).</p>
<p>As I said I knew this API before I started the project, but I decided not to use it to handle the graphics part because it can&#8217;t be link statically and so it would have implied a lot of DLL to distribute with the library which is exactly what I wanted to avoid.</p>
<h2>Compilation</h2>
<p>So, first I had to recompile VRJuggler because there are no binaries for Visual Studio 2008, this took me ages to do because there are a lot of projects inside the solution and <a href="//nas-anthony/Anthony/FYP/vrjuggler-2.2.1-1-src/vrjuggler-2.2.1-1-src/README-WINDOWS.html">a lot of paths to set.</a></p>
<p>Fortunately, I&#8217;ve found on internet a <a href="http://groups.google.com/group/vrjuggler-questions/browse_thread/thread/9d7c51867263589c/d3ea720673d2f2ef?#d3ea720673d2f2ef">link to a large zip file containing all the dependencies </a> (compiled with VS 2008) for the library (375 MB !), so thanks a lot to the person who did that, I would have probably not had the time to do it myself.</p>
<p>Both Debug and Release versions compiled fine, but for some reasons only the Release version is working, the debug version crashes at initialization. I decided not to waste time on making the Debug version work because it&#8217;s not really important.</p>
<h2>Environment variables</h2>
<p>The main drawback of VRJuggler is that it depends on a lot of environment variables for the path. The reason is the library is so flexible that it requires to load a lot of config files at runtime. I really wanted to avoid using environment variables because it would have meant installing VRJuggler on the client machine, which is not really a good option.</p>
<p>After looking into the API code, I managed to find how to force it to use relative paths for the different files it needed. So now there is no need to install the whole VRJuggler package ! (I still need to test it on another computer to be 100% sure).</p>
<h2>Config files</h2>
<p>VRJuggler loads the hardware configuration from one or several &#8220;jconf&#8221; files at runtime (These are XML files), and there is a tool called VRJConfig to help generating them.And here is the second biggest drawback of VRJuggler : this is so flexible that the config files are quite complicated to generate, even with VRJConfig&#8230; (you need to set the drivers, the hardware, to create some proxys, windows, aliases,&#8230;)</p>
<p>And VRJConfig is a bit buggy too: it won&#8217;t save the configuration properly all the time, sometimes it writes, sometimes it doesn&#8217;t&#8230;</p>
<p>So, after a few hours spent on the configuration ( don&#8217;t forget I&#8217;ve already done once during my placement, I let you imagine what it was like the first time&#8230;), I managed to generate 2 configuration files :</p>
<p>- &#8220;intersense.jconf&#8221; : this is the config file to read the tracking system data directly from the COM port. (You can find <a href="http://developer.vrjuggler.org/docs/vrjuggler/3.0/configuration.guide/configuring_vr_juggler/apas03.html">here</a> the 3 different ways to get IS900 data, basically you can : read from the COM port using VRJuggler driver, read from the COM Port using the Intersense API,  read the data from the Intersense Trackd Server). I decided to use VRJuggler&#8217;s driver.</p>
<p>- &#8220;intersenseSimu.jconf&#8221; : this is a config file which simulates an IS900 device and so I can change the device values using the keyboard.</p>
<h2>VRJuggler Kernel</h2>
<p>VRJuggler is using a system of kernel, this means there is no &#8220;main&#8221; function, instead we create a class which inherits from one of VRJuggler kernel class and we overload the methods we want.</p>
<p>At the initialization VRJuggler will start the kernel in a new thread.</p>
<p>I&#8217;ve written a new kernel based on the &#8220;Simple Input&#8221; example provided with the SDK and on the work I&#8217;ve done during my placement.</p>
<h2>TrackingDLL</h2>
<p>I&#8217;ve now started to write a DLL, it has a C interface. This way it can dynamically be loaded by the main API without having to recompile.</p>
<p>The interface allows the user to :</p>
<p>- start / stop the tracking system</p>
<p>- get the data for the 2 position devices (head / wand), 2 analogic buttons (joystick x and y axis), 6 digital buttons (red,green,blue, yellow, trigger, joystick).</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/333/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/333/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/333/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/333/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/333/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/333/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/333/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/333/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/333/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/333/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/333/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/333/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/333/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/333/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=333&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2010/02/15/virtual-reality-vrjuggler/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>
	</item>
		<item>
		<title>BHA representation problems</title>
		<link>http://anthonybarbier.wordpress.com/2010/02/15/bha-representation-problems/</link>
		<comments>http://anthonybarbier.wordpress.com/2010/02/15/bha-representation-problems/#comments</comments>
		<pubDate>Mon, 15 Feb 2010 09:24:20 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=326</guid>
		<description><![CDATA[I&#8217;ve now moved all the direction computations to double precision (so I can match the same accuracy as in the data files), but even with that I still have two major problems : - According to the data some short components (0.01 meters) have an orientation different of 90 degrees with the previous/next component, and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=326&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve now moved all the direction computations to double precision (so I can match the same accuracy as in the data files), but even with that I still have two major problems :</p>
<p>- According to the data some short components (0.01 meters) have an orientation different of 90 degrees with the previous/next component, and their diameter is so big compared to their length (0.15  meters) that it should be physically impossible to fit. Here is a screenshot of what I&#8217;m talking about : (I&#8217;ve removed the liaisons between the cylinders so that you can better see the components) :</p>
<p><a href="http://anthonybarbier.files.wordpress.com/2010/02/screenshot_1266076295.png"><img class="alignnone size-medium wp-image-327" title="Screenshot_1266076295" src="http://anthonybarbier.files.wordpress.com/2010/02/screenshot_1266076295.png?w=512&#038;h=248" alt="" width="512" height="248" /></a></p>
<p>And here is a screenshot when I use my algorithm to reduce the overlapping between the cylinders (as you can see it&#8217;s still not enough to solve the collision problems) :</p>
<p><a href="http://anthonybarbier.files.wordpress.com/2010/02/screenshot_1266076194.png"><img class="alignnone size-medium wp-image-328" title="Screenshot_1266076194" src="http://anthonybarbier.files.wordpress.com/2010/02/screenshot_1266076194.png?w=512&#038;h=248" alt="" width="512" height="248" /></a></p>
<p>- Second problem : I know some components are meant to be deformed, but in this case it seems weird : the size of the component is multiplied by 10 (usually it&#8217;s 0.1 and it&#8217;s extended to 1), and also all the components seem to extend when they arrive at the same point.</p>
<div id="_mcePaste">
<div id="_mcePaste">TIME,NODE,EW,NS,TVD,Rot</div>
<div id="_mcePaste">t,n,m,m,m,deg</div>
</div>
<div><span style="font-family:monospace;">7,1,-122.60000503,105.30006290,2222.00000000,0     ==&gt; Time 7, there is 0.1 meter between nodes 1 and 2<br />
7,2,-122.60000284,105.30006992,2221.99999931,0</span></div>
<p>&#8230;</p>
<p><span style="font-family:monospace;">9,1,-122.70001239,105.40006676,2223.00000000,0    ==&gt; Time 9, there is more than 1 meter between the nodes 1 and 2<br />
9,2,-122.70001286,105.40007063,2221.99999931,0</span></p>
<p>Here are two screenshots and a video to explain :</p>
<p><a href="http://anthonybarbier.files.wordpress.com/2010/02/screenshot_1266079010.png"><img class="alignnone size-medium wp-image-329" title="Screenshot_1266079010" src="http://anthonybarbier.files.wordpress.com/2010/02/screenshot_1266079010.png?w=512&#038;h=248" alt="" width="512" height="248" /></a></p>
<p><a href="http://anthonybarbier.files.wordpress.com/2010/02/screenshot_1266079016.png"><img class="alignnone size-medium wp-image-330" title="Screenshot_1266079016" src="http://anthonybarbier.files.wordpress.com/2010/02/screenshot_1266079016.png?w=512&#038;h=248" alt="" width="512" height="248" /></a></p>
<p>In this video you can see that each component arriving to the same point will be extended in the same way :</p>
<object width="425" height="334"><param name="movie" value="http://www.dailymotion.com/swf/xc8icn"></param><param name="allowfullscreen" value="true"></param><param name="wmode" value="opaque"></param><embed src="http://www.dailymotion.com/swf/xc8icn" width="425" height="334" allowfullscreen="true" wmode="opaque"></embed></object>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/326/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/326/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/326/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/326/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/326/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/326/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/326/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/326/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/326/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/326/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/326/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/326/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/326/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/326/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=326&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2010/02/15/bha-representation-problems/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2010/02/screenshot_1266076295.png?w=512" medium="image">
			<media:title type="html">Screenshot_1266076295</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2010/02/screenshot_1266076194.png?w=512" medium="image">
			<media:title type="html">Screenshot_1266076194</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2010/02/screenshot_1266079010.png?w=512" medium="image">
			<media:title type="html">Screenshot_1266079010</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2010/02/screenshot_1266079016.png?w=512" medium="image">
			<media:title type="html">Screenshot_1266079016</media:title>
		</media:content>
	</item>
		<item>
		<title>Multi threading / asynchronous mode</title>
		<link>http://anthonybarbier.wordpress.com/2010/02/11/multi-threading-asynchronous-mode/</link>
		<comments>http://anthonybarbier.wordpress.com/2010/02/11/multi-threading-asynchronous-mode/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 23:06:10 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=324</guid>
		<description><![CDATA[Today i&#8217;ve added a multi threading option to my API : instead of calling &#8220;init()&#8221; at the beginning, the user can call &#8220;initNewThread()&#8221;, which will launch the API and start refreshing the window in a secondary thread. After that the user can load the trajectory, borehole, bha etc&#8230; from the main thread, and still use [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=324&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Today i&#8217;ve added a multi threading option to my API :</p>
<p>instead of calling &#8220;init()&#8221; at the beginning, the user can call &#8220;initNewThread()&#8221;, which will launch the API and start refreshing the window in a secondary thread.</p>
<p>After that the user can load the trajectory, borehole, bha etc&#8230; from the main thread, and still use the window at the same time.</p>
<p>Also, the user can programmatically control the window( Like setting the time for example) without having to handle the refresh loop (like it was before).</p>
<p>Finally, I&#8217;ve added a progress bar and an &#8220;abort&#8221; button in order to follow the loading process and be able to cancel if it&#8217;s too long.</p>
<h2>Problems encountered</h2>
<p>My classes were not thread safe (the mutex were not used correctly, for example I was locking a resource,returning a reference, unlocking the resource, and then using the reference.) So now this is all fixed. (I&#8217;ve added explicit functions to lock /unlock the data)</p>
<p>OpenGL calls can only be made from the thread in which the OpenGL context has been created, 2 solutions to fix this problem :</p>
<p>- create a second context in the second thread and share the resources: this solution was not easy to implement with my design (the opengl context is managed by wx, so I should have created a new window, and also it means I should check before each openGL call that the right context is active).</p>
<p>- send messages to the thread which can use opengl so that it makes the call for the other thread : this is the solution I&#8217;ve implemented; at the beginning of each &#8220;update&#8221; loop the secondary thread check if there are some opengl requests coming from the other thread. In the meantime the other thread is blocked and wait for the other thread answer.</p>
<p>So far it&#8217;s working fine like this.</p>
<p>There are two problems left :</p>
<p>- when I close the application the two threads don&#8217;t seem to synchronize correctly.</p>
<p>- the shaders don&#8217;t seem to work for the moment.</p>
<p>I&#8217;ll check that tomorrow.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/324/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/324/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/324/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/324/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/324/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/324/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/324/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=324&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2010/02/11/multi-threading-asynchronous-mode/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>
	</item>
		<item>
		<title>Borehole / BHA / Trajectory debugging</title>
		<link>http://anthonybarbier.wordpress.com/2010/02/09/borehole-bha-trajectory-debugging/</link>
		<comments>http://anthonybarbier.wordpress.com/2010/02/09/borehole-bha-trajectory-debugging/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 20:38:44 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=318</guid>
		<description><![CDATA[I&#8217;ve fixed some of the bugs I was talking about in the previous post : - The trajectory : just by increasing the &#8220;SegmentSize&#8221; property of the curve the bug disappears. - The borehole : I&#8217;ve added a property called &#8220;DistanceDirection&#8221;. This property uses an averaged direction instead of the real direction when the points [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=318&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve fixed some of the bugs I was talking about in the previous post :</p>
<p>- The trajectory : just by increasing the &#8220;SegmentSize&#8221; property of the curve the bug disappears.</p>
<p>- The borehole : I&#8217;ve added a property called &#8220;DistanceDirection&#8221;. This property uses an averaged direction instead of the real direction when the points are too close.</p>
<p>For example, DistanceDirection = 10.f : if the distance between the p0 and p1 is &gt; 10 =&gt; we keep the vector p0p1 as the direction.</p>
<p>the distance between p0 and p1 &lt;10, and if the distance between p0 and p2 &lt;10 too, but the distance between p0 and p3 &gt; 10, then we take the average of p0p1, p0p2, p0p3 as the direction.</p>
<p>Here is the screenshot of the old method :</p>
<p><a href="http://anthonybarbier.files.wordpress.com/2010/02/screenshot_1265625226.png"><img class="alignnone size-medium wp-image-320" title="Screenshot_1265625226" src="http://anthonybarbier.files.wordpress.com/2010/02/screenshot_1265625226.png?w=512&#038;h=248" alt="" width="512" height="248" /></a></p>
<p>And here is the new method result :</p>
<p><a href="http://anthonybarbier.files.wordpress.com/2010/02/screenshot_1265627785.png"><img class="alignnone size-medium wp-image-319" title="Screenshot_1265627785" src="http://anthonybarbier.files.wordpress.com/2010/02/screenshot_1265627785.png?w=512&#038;h=248" alt="" width="512" height="248" /></a></p>
<p>- The BHA : With the previous dataset all the BHA components were almost aligned so I hadn&#8217;t this problem, but now there are some steep angles between two consecutive cylinders, which means there are collisions :</p>
<p><a href="http://anthonybarbier.files.wordpress.com/2010/02/screenshot_1265746408.png"><img class="alignnone size-medium wp-image-322" title="Screenshot_1265746408" src="http://anthonybarbier.files.wordpress.com/2010/02/screenshot_1265746408.png?w=512&#038;h=248" alt="" width="512" height="248" /></a></p>
<p>I wrote an algorithm to move cylinders out of each other, without changing the direction of the components :</p>
<p>&#8220;P&#8221; is the common point to both the cylinders,</p>
<p>V0 is the direction vector from P to the other extremity of the first cylinder.</p>
<p>V1 is the direction vector from P to the other extremity of the second cylinder.</p>
<p>V2 is the normal of the plane containing V0,V1 and P ==&gt; V2 = cross(V0,V1)</p>
<p>V00 is a vector normal to V0 in this plane, its length is the radius of the cylinder 0 : V00 = cross(V0,V2) * Radius_0</p>
<p>V11 is a vector normal to V1 in this plane, its length is the radius of the cylinder 1 : V11 = cross(V1,V2) * Radius_1</p>
<p>Now we want to move each cylinder along its axis of the same distance so that we only have one point of contact left :</p>
<p>t * V0 + V00 = t * V1 + V11</p>
<p>t &#8211;  t * ( V1 / V0 = (V11 &#8211; V00) / V0</p>
<p>t = (V11 &#8211;  V00) /  ( V0 &#8211; V1)</p>
<p>We now move the points of each cylinder along their respective axis of &#8220;t&#8221; times the cylinder direction</p>
<p>Here is the result :</p>
<p><a href="http://anthonybarbier.files.wordpress.com/2010/02/screenshot_1265746420.png"><img class="alignnone size-medium wp-image-321" title="Screenshot_1265746420" src="http://anthonybarbier.files.wordpress.com/2010/02/screenshot_1265746420.png?w=512&#038;h=248" alt="" width="512" height="248" /></a></p>
<h2>Problems left :</h2>
<p>There are still a lot of bugs on the BHA, I think it&#8217;s because of the data : some cylinders are very short, and at some points during the drilling operation they are compressed, as a result I get some cylinders like this :</p>
<div id="_mcePaste">4,3,-122.39998021,105.10011940,2221.99999899,0</div>
<div id="_mcePaste">4,4,-122.39997963,105.10012920,2221.99999891,0</div>
<p>This is impossible to use this to compute the orientation of the component.</p>
<p>This is an accuracy problem, so I can&#8217;t really see any solution to that.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/318/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/318/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/318/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/318/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/318/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/318/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/318/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/318/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/318/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/318/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/318/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/318/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/318/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/318/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=318&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2010/02/09/borehole-bha-trajectory-debugging/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2010/02/screenshot_1265625226.png?w=512" medium="image">
			<media:title type="html">Screenshot_1265625226</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2010/02/screenshot_1265627785.png?w=512" medium="image">
			<media:title type="html">Screenshot_1265627785</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2010/02/screenshot_1265746408.png?w=512" medium="image">
			<media:title type="html">Screenshot_1265746408</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2010/02/screenshot_1265746420.png?w=512" medium="image">
			<media:title type="html">Screenshot_1265746420</media:title>
		</media:content>
	</item>
		<item>
		<title>New Data</title>
		<link>http://anthonybarbier.wordpress.com/2010/02/06/new-data/</link>
		<comments>http://anthonybarbier.wordpress.com/2010/02/06/new-data/#comments</comments>
		<pubDate>Sat, 06 Feb 2010 22:48:57 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=314</guid>
		<description><![CDATA[Maurice and Samba sent me some new data, In this scene the BHA is oscillating a lot more than in the previous one, also the Borehole has a stairs-like shape. As a result there are some big visual bugs : - the cylinders of the borehole seem to collide with each other. - The trajectory [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=314&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Maurice and Samba sent me some new data,</p>
<p>In this scene the BHA is oscillating a lot more than in the previous one, also the Borehole has a stairs-like shape.</p>
<p>As a result there are some big visual bugs :</p>
<p>- the cylinders of the borehole seem to collide with each other.</p>
<p>- The trajectory interpolation doesn&#8217;t work at some points.</p>
<p>- the BHA deformation doesn&#8217;t work properly.</p>
<p>Looks like I&#8217;ll have a lot of debugging to do in the next few days !</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/314/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/314/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/314/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/314/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/314/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/314/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/314/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/314/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/314/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/314/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/314/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/314/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/314/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/314/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=314&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2010/02/06/new-data/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>
	</item>
		<item>
		<title>Meeting with my supervisor</title>
		<link>http://anthonybarbier.wordpress.com/2010/02/06/meeting-with-my-supervisor-8/</link>
		<comments>http://anthonybarbier.wordpress.com/2010/02/06/meeting-with-my-supervisor-8/#comments</comments>
		<pubDate>Sat, 06 Feb 2010 22:45:15 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=312</guid>
		<description><![CDATA[Library packaging This week we talked about the wrapper/interfaces the library should have. C++ : pros : this is the native language of the API, so it&#8217;s the most flexible interface. cons: the client application has to be linked to the library with exactly the same compiler (Visual Studio 2008) or it won&#8217;t work, it [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=312&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h2>Library packaging</h2>
<p>This week we talked about the wrapper/interfaces the library should have.</p>
<p>C++ :</p>
<p>pros : this is the native language of the API, so it&#8217;s the most flexible interface.</p>
<p>cons: the client application has to be linked to the library with exactly the same compiler (Visual Studio 2008) or it won&#8217;t work, it also requires a lot of headers.</p>
<p>C:</p>
<p>pros: C can be loaded from almost any other language, as Schlumberger wants to be able to load the API from fortran it seems to be a good choice. Also the DLL is not compiler dependant.</p>
<p>Finally, there is only one header to distribute and a DLL.</p>
<p>cons:</p>
<p>We can only use structures and functions so we won&#8217;t have access to all the features of the API.</p>
<p>All the functions have to be loaded from the dll using &#8220;GetProcAddress&#8221;</p>
<p>Can&#8217;t handle exceptions.</p>
<p>.NET:</p>
<p>pros: object orientated, we have access to all the API features. It&#8217;s compatible with any other .NET language (most of Schlumberger softwares are written in .NET).</p>
<p>cons: it requires the .NET framework at runtime.</p>
<p>Matlab: This is using the C interface.</p>
<p>So I decided to implement a C interface and Matlab wrapper for the moment. Later I&#8217;ll try to also write a .NET interface.</p>
<h2>Virtual reality</h2>
<p>Apparently the university virtual reality room is only for research, students don&#8217;t have access to it.</p>
<p>I&#8217;m going to use VRJuggler for the VR part, and I know you can create some dummy devices to emulate the wand and head tracking, so I&#8217;ll do that for the beginning. And later I&#8217;ll ask the new visualization intern at Schlumberger to do some tests for me in the iCenter.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/312/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/312/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/312/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/312/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/312/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/312/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/312/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/312/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/312/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/312/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/312/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/312/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/312/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/312/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=312&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2010/02/06/meeting-with-my-supervisor-8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>
	</item>
		<item>
		<title>Meeting with my supervisor and Matlab</title>
		<link>http://anthonybarbier.wordpress.com/2010/01/28/meeting-with-my-supervisor-and-matlab/</link>
		<comments>http://anthonybarbier.wordpress.com/2010/01/28/meeting-with-my-supervisor-and-matlab/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 11:18:56 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=310</guid>
		<description><![CDATA[The demonstration crashed on my supervisor&#8217;s machine, and it still doesn&#8217;t work on Maurice&#8217;s computer, but it works on some other Schlumber scientists&#8217; machines so I&#8217;m not too sure where the problem comes from. It also works fine on the labs machines and on my housemates&#8217; computers. This week I&#8217;ve been trying to contact different [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=310&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The demonstration crashed on my supervisor&#8217;s machine, and it still doesn&#8217;t work on Maurice&#8217;s computer, but it works on some other Schlumber scientists&#8217; machines so I&#8217;m not too sure where the problem comes from.</p>
<p>It also works fine on the labs machines and on my housemates&#8217; computers.</p>
<p>This week I&#8217;ve been trying to contact different people from the School of Science and Engineering in order to see if they could let me use Matlab on one of their machine, but without any success : nobody replied to me.</p>
<p>I&#8217;ve also tried to contact Jean Luc Lugrin, to have more details about how it works to book the virtual reality room, and have more details about the equipment available. He didn&#8217;t reply neither yet.</p>
<p>So this morning I went in person to the school of science, somebody told me to go to the ICT helpdesk in the Stephenson Building, and there they told me there was Matlab in all their labs, and that I could use any of them.</p>
<p>I went to one of the lab, to check if I could log in, and everything is fine. </p>
<p>I&#8217;ve started to do some research about how to call C++ DLLs from Matlab, here are a few links :</p>
<p><a href="http://www.mathworks.com/support/tech-notes/1600/1605.html#C_warning">http://www.mathworks.com/support/tech-notes/1600/1605.html#C_warning</a></p>
<p><a href="http://osiris.tuwien.ac.at/~wgarn/programming/DLLs_for_Matlab.html">http://osiris.tuwien.ac.at/~wgarn/programming/DLLs_for_Matlab.html</a></p>
<p><a href="http://www.mathworks.com/support/tech-notes/1600/1605.html">http://www.mathworks.com/support/tech-notes/1600/1605.html</a></p>
<p>I need to look into it in more details, but I have the impression I just need to write an interface which will call my C++ code. As my library tries to avoid using objects on the client side, it shouldn&#8217;t be too hard to do.</p>
<p>Next step is to work on the VR part if I can get in touch with Jean Luc, otherwise I&#8217;ll start the matlab interface.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/310/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/310/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/310/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/310/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/310/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/310/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/310/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/310/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/310/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/310/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/310/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/310/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/310/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/310/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=310&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2010/01/28/meeting-with-my-supervisor-and-matlab/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>
	</item>
		<item>
		<title>Multi-windows demonstration</title>
		<link>http://anthonybarbier.wordpress.com/2010/01/27/multi-windows-demonstration/</link>
		<comments>http://anthonybarbier.wordpress.com/2010/01/27/multi-windows-demonstration/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 20:29:11 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=307</guid>
		<description><![CDATA[<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=307&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<object width="425" height="334"><param name="movie" value="http://www.dailymotion.com/swf/xc0h2b"></param><param name="allowfullscreen" value="true"></param><param name="wmode" value="opaque"></param><embed src="http://www.dailymotion.com/swf/xc0h2b" width="425" height="334" allowfullscreen="true" wmode="opaque"></embed></object>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/307/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/307/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/307/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/307/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/307/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/307/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/307/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/307/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/307/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/307/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/307/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/307/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/307/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/307/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=307&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2010/01/27/multi-windows-demonstration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>
	</item>
		<item>
		<title>Several bugs fixed</title>
		<link>http://anthonybarbier.wordpress.com/2010/01/27/several-bugs-fixed/</link>
		<comments>http://anthonybarbier.wordpress.com/2010/01/27/several-bugs-fixed/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 19:03:22 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=303</guid>
		<description><![CDATA[It took me a lot of time to track a fex bugs and fix them :  - The library is now statically linked to the CRT libraries. ( some explanations about the different libraries can be found here)  The main problem I had was coming from std::string : if I exported it in the Library, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=303&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>It took me a lot of time to track a fex bugs and fix them : </p>
<p>- The library is now statically linked to the CRT libraries. ( some explanations about the different libraries can be found <a href="http://msdn.microsoft.com/en-us/library/abx4dbyh(VS.80).aspx">here</a>) </p>
<p>The main problem I had was coming from std::string : if I exported it in the Library, it wouldn&#8217;t link correctly in the application. </p>
<p>So now there is not any public string attribute left in the classes. And for some reason I can only pass Strings from the main application to the library by reference (if I pass them by copy I get a memory heap corruption). </p>
<p>For example in the TextOutput class I had forgotten a &#8216;&amp;&#8217; and it was crashing each time I was calling this function. I have no idea why this was happening, and it has been really hard to isolate and fix this bug, because the TextOutput class is used by all the classes of the API so every small change made to this class requires to recompile the whole API ( &gt; 10 minutes&#8230;) </p>
<p>- The demonstration applications were crashing on some machine when the user was closing them : </p>
<p><a href="http://anthonybarbier.files.wordpress.com/2010/01/closeerror.png"><img class="alignnone size-medium wp-image-304" title="closeError" src="http://anthonybarbier.files.wordpress.com/2010/01/closeerror.png?w=512&#038;h=116" alt="" width="512" height="116" /></a> </p>
<p>This bug has been particularly hard to track too, because it was not happening on my machine. </p>
<p>I&#8217;ve looked on internet, and some people were suggesting to generate the<a href="http://msdn.microsoft.com/en-us/library/abx4dbyh(VS.80).aspx"> linker map file</a> and to find to which instruction the address was corresponding. Unfortunately I didn&#8217;t manage to find the correct address, so instead I  reduced the number of lines called in a test program until I was able to isolate the bug. </p>
<p>And apparently the problem was coming from the fact that I was deleting the OpenGL buffers at the end of the execution. </p>
<p>I&#8217;ve checked the OpenGL documentation :  <a href="http://www.opengl.org/sdk/docs/man/xhtml/glDeleteBuffers.xml">http://www.opengl.org/sdk/docs/man/xhtml/glDeleteBuffers.xml</a></p>
<p>and they don&#8217;t say anywhere that I&#8217;m not supposed to free the buffers at the end. On the other hand since I don&#8217;t remove the buffers anymore, I don&#8217;t have any memory leak, and no more error, but I&#8217;ll still have to check later why it&#8217;s doing that.</p>
<p>- I can now have several OpenGL windows at the same time, having different contexts but sharing the same resources.</p>
<p>When I was thinking that I had a problem with my depth buffer on the child window, actually it was a problem of initialization of the projection matrix. (the near and far planes were not initialized&#8230;), which is why the depth buffer was not working as expected and also the shaders didn&#8217;t seem to work.</p>
<p>I have recorded a new video demonstrating the two windows system, I&#8217;ll post it later.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/303/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/303/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/303/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/303/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/303/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/303/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/303/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/303/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/303/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/303/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/303/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/303/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/303/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/303/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=303&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2010/01/27/several-bugs-fixed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2010/01/closeerror.png?w=512" medium="image">
			<media:title type="html">closeError</media:title>
		</media:content>
	</item>
		<item>
		<title>BHA Animation and time control</title>
		<link>http://anthonybarbier.wordpress.com/2010/01/22/bha-animation-and-time-control/</link>
		<comments>http://anthonybarbier.wordpress.com/2010/01/22/bha-animation-and-time-control/#comments</comments>
		<pubDate>Fri, 22 Jan 2010 11:21:03 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=300</guid>
		<description><![CDATA[I&#8217;ve finished to implement the new way of loading a BHA (cf previous posts), and the animation is working too. The BHA is one single mesh made of cylinders of different diameters. The positionning and deformation are done in a shader. All the information is passed using a 2D float texture : each row represents a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=300&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve finished to implement the new way of loading a BHA (cf previous posts), and the animation is working too.</p>
<p>The BHA is one single mesh made of cylinders of different diameters.</p>
<p>The positionning and deformation are done in a shader.</p>
<p>All the information is passed using a 2D float texture : each row represents a different time.</p>
<p>On one row there is for each node the angle(1 float), the position (3 floats)  and the colour value(1 float).</p>
<p>The time is passed as a uniform variable.</p>
<h2>Time Control</h2>
<p>I&#8217;ve created a &#8220;Time&#8221; resource in the CoreManager, everything in the API which is using time is using this variable.</p>
<p>This means by controlling this single variable, it&#8217;s possible to control any animation which occurs in the API.</p>
<p>Here is the interface of the TimeController :</p>
<p>float operator()(); //return time<br />
void play();<br />
void playBackwards();<br />
void stop();<br />
void increaseSpeed();<br />
void decreaseSpeed();<br />
void nextFrame();<br />
void previousFrame();<br />
void setSpeed(const float);<br />
void setDeltaFrame(const float);<br />
void setDeltaSpeed(const float);<br />
void setTimeLimits(float min,float max);<br />
void disableTimeLimits();</p>
<p>And I&#8217;ve created a Wx toolbox, which basically just calls the above methods :</p>
<p><a href="http://anthonybarbier.files.wordpress.com/2010/01/timecontroller.png"><img class="alignnone size-medium wp-image-301" title="TimeController" src="http://anthonybarbier.files.wordpress.com/2010/01/timecontroller.png?w=511&#038;h=229" alt="" width="511" height="229" /></a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/300/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/300/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/300/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/300/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/300/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/300/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/300/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/300/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/300/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/300/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/300/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/300/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/300/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/300/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=300&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2010/01/22/bha-animation-and-time-control/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2010/01/timecontroller.png?w=511" medium="image">
			<media:title type="html">TimeController</media:title>
		</media:content>
	</item>
		<item>
		<title>Meeting with my supervisor</title>
		<link>http://anthonybarbier.wordpress.com/2010/01/22/meeting-with-my-supervisor-7/</link>
		<comments>http://anthonybarbier.wordpress.com/2010/01/22/meeting-with-my-supervisor-7/#comments</comments>
		<pubDate>Fri, 22 Jan 2010 11:01:09 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=298</guid>
		<description><![CDATA[This week I showd my supervisor the demonstration applications that I showd at Schlumberger. We talked about the best way to create chilren windows which share the same OpenGL resources that the main window. So to sum up : There is : - a device context per window - a rendering context. There are two [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=298&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This week I showd my supervisor the demonstration applications that I showd at Schlumberger.</p>
<p>We talked about the best way to create chilren windows which share the same OpenGL resources that the main window.</p>
<p>So to sum up :</p>
<p>There is :</p>
<p>- a device context per window</p>
<p>- a rendering context.</p>
<p>There are two ways to share resources between two windows :</p>
<p>1) at each window update we link/unlink the device context of the window which needs to be refreshed to the rendering context.</p>
<p>=&gt; According to my supervisor this technique is slowing down the application a lot.</p>
<p>2) each window has its own rendering context, and we tell the rendering contexts to share their resources.</p>
<p>=&gt; That&#8217;s what I need to do.</p>
<p>In a first time, I&#8217;ll try to create several windows in a standalone application, once it will be working properly I&#8217;ll try to integrate it in Wx.</p>
<p>This week, I also need to find who to contact in order to have access to Matlab, and to the VR Cave.</p>
<p>I&#8217;m also going to finish the implementation of the new BHA modelling and animation.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/298/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/298/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/298/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/298/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/298/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/298/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/298/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/298/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/298/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/298/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/298/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/298/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/298/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/298/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=298&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2010/01/22/meeting-with-my-supervisor-7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>
	</item>
		<item>
		<title>visit to Schlumberger #2</title>
		<link>http://anthonybarbier.wordpress.com/2010/01/11/visit-to-schlumberger-2/</link>
		<comments>http://anthonybarbier.wordpress.com/2010/01/11/visit-to-schlumberger-2/#comments</comments>
		<pubDate>Mon, 11 Jan 2010 21:31:56 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=291</guid>
		<description><![CDATA[Last friday I went to Schlumberger to give another presentation. This one was mainly centered on the 4D surface and the BHA positionning inside the borehole. 4D Surface There is no big change to do to it, they are happy with the way it works at the moment. There has been one suggestions :  they [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=291&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Last friday I went to Schlumberger to give another presentation.</p>
<p>This one was mainly centered on the 4D surface and the BHA positionning inside the borehole.</p>
<h2>4D Surface</h2>
<p>There is no big change to do to it, they are happy with the way it works at the moment.</p>
<p>There has been one suggestions :  they would like to be able to split the surface in several sections along the depth axis, so that in the case of a trajectory rotating on itself they don&#8217;t lose any information.</p>
<h2>BHA Positionning</h2>
<p>We discussed for a while to decide wether or not we should use procedural shapes instead of obj models.</p>
<p>problems with obj files :</p>
<p>- too many vertices on one circle of the cylinder shape, and there might not be enough on the length.</p>
<p>- the stabilizer (blue shape on the following drawing), is made out of two small cylinders with a bigger one in between, the length and diameter of each of this cylinder may vary. This makes it impossible to scale using only  x,y and z scaling factors.</p>
<p>On the other hand, using procedural shapes fix these problems, but we will lose the small details on the components. (it&#8217;s a purely aesthetic problem).</p>
<p><a href="http://anthonybarbier.files.wordpress.com/2010/01/bhapositionning.png"><img class="alignnone size-medium wp-image-292" title="bhaPositionning" src="http://anthonybarbier.files.wordpress.com/2010/01/bhapositionning.png?w=309&#038;h=512" alt="" width="309" height="512" /></a></p>
<h2>Procedural shapes specifications</h2>
<p>Instead of having a list of components to map onto a skeleton, we directly have a list of bones which are defined by a length and an outside diameter. Each bone is identified by a name.</p>
<p>In the previous drawing, the nodes represent the articulation between two bones. There are three reasons for passing from one bone to another :</p>
<p>- a change of diameter (nodes 2 and 3)</p>
<p>- a change of component (nodes 1,4 and 6)</p>
<p>- a deformation of the component  (node 5)</p>
<p>This will be described in a CSV file, and from now on it will be called a &#8220;BHA file&#8221;.</p>
<p>Example of CSV file:</p>
<p>ELEMENT,LEN,OD<br />
n,m,m<br />
1,0.09700000,0.21460000<br />
2,0.03600000,0.21460000</p>
<p>The second file will contain the offset information for each component at each time.</p>
<p>It will be called &#8220;BHA position File&#8221; or &#8220;deformation file&#8221;</p>
<p><a href="http://anthonybarbier.files.wordpress.com/2010/01/deformationfile.png"><img class="alignnone size-medium wp-image-293" title="deformationFile" src="http://anthonybarbier.files.wordpress.com/2010/01/deformationfile.png?w=512&#038;h=130" alt="" width="512" height="130" /></a></p>
<p>&#8220;TVD&#8221;  &#8220;NS&#8221; and &#8220;EW&#8221; now represent an absolute position (instead of an offset)</p>
<p>Note: the user can provide a position file without a time column to show the BHA in one position only.</p>
<p>The last file is called a &#8220;BHA colour file&#8221;, it looks like a calliper file: 1 (optional) column for the time, 1 column &#8220;Node&#8221;, followed by a number of columns of colour data.</p>
<p>For example if there are 20 colour data columns, it means one column represents 18 degrees.</p>
<h2>GUI</h2>
<p>They confirmed that they were not interested in having a big GUI. They&#8217;re really only interested in the API side. So I&#8217;m going to remove it from the milestones and keep it for the very end.</p>
<h2>Test on Schlumberger&#8217;s machines</h2>
<p>I&#8217;ve run the demo applications on several employees&#8217; laptops (new and old laptops), and it worked fine on all of them : no slow downs,  no big memory or CPU usage.</p>
<p>Which means, I can keep the shader solution for the deformation.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/291/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/291/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/291/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/291/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/291/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/291/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/291/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/291/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/291/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/291/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/291/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/291/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/291/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/291/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=291&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2010/01/11/visit-to-schlumberger-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2010/01/bhapositionning.png?w=309" medium="image">
			<media:title type="html">bhaPositionning</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2010/01/deformationfile.png?w=512" medium="image">
			<media:title type="html">deformationFile</media:title>
		</media:content>
	</item>
		<item>
		<title>OpenGL Popup window</title>
		<link>http://anthonybarbier.wordpress.com/2010/01/11/opengl-popup-window/</link>
		<comments>http://anthonybarbier.wordpress.com/2010/01/11/opengl-popup-window/#comments</comments>
		<pubDate>Mon, 11 Jan 2010 10:48:03 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=286</guid>
		<description><![CDATA[You can now have several opengl windows running at the same time. They are all sharing the same opengl context which means they&#8217;re sharing the vertex and index buffers. Why several windows ? with several windows you can : - visualize different data on the same models. For example one window will map the ratio [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=286&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>You can now have several opengl windows running at the same time. They are all sharing the same opengl context which means they&#8217;re sharing the vertex and index buffers.</p>
<h2>Why several windows ?</h2>
<p>with several windows you can :</p>
<p>- visualize different data on the same models. For example one window will map the ratio current angle / max angle onto the BHA, and the second window will map the current offset.</p>
<p>- monitor several things at the same time. For example you can follow the drilling bit in one window, and display a graph in the child window.</p>
<h2>Problems</h2>
<p><a href="http://anthonybarbier.files.wordpress.com/2010/01/depthbufferproblem.png"><img class="alignnone size-medium wp-image-287" title="depthBufferProblem" src="http://anthonybarbier.files.wordpress.com/2010/01/depthbufferproblem.png?w=512&#038;h=245" alt="" width="512" height="245" /></a></p>
<p>However I still have two bugs :</p>
<p>- There is no depth test in the children windows.</p>
<p>- The children windows don&#8217;t have access to the shaders.</p>
<h2>Todo list</h2>
<p>For the moment it&#8217;s not possible to link the same camera to two windows at the same time.For example, you move the camera in one of the window and the camera is automatically moved in the second one as well.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/286/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/286/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/286/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/286/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/286/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/286/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/286/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/286/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/286/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/286/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/286/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/286/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/286/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/286/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=286&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2010/01/11/opengl-popup-window/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2010/01/depthbufferproblem.png?w=512" medium="image">
			<media:title type="html">depthBufferProblem</media:title>
		</media:content>
	</item>
		<item>
		<title>BHA Mapping #2</title>
		<link>http://anthonybarbier.wordpress.com/2010/01/11/bha-mapping-2/</link>
		<comments>http://anthonybarbier.wordpress.com/2010/01/11/bha-mapping-2/#comments</comments>
		<pubDate>Mon, 11 Jan 2010 10:09:49 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=283</guid>
		<description><![CDATA[The method Following the last BHA Mapping post : - I&#8217;ve implemented a shader version of the BHA Mapping : The shader is using two uniforms: - the size of the texture used to pass the parameters - a texture sampler All the data is passed through the texture. the first 6 values represent the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=283&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h2>The method</h2>
<p>Following the last BHA Mapping post :</p>
<p>- I&#8217;ve implemented a shader version of the BHA Mapping :</p>
<p>The shader is using two uniforms:</p>
<p>- the size of the texture used to pass the parameters</p>
<p>- a texture sampler</p>
<p>All the data is passed through the texture.</p>
<p>the first 6 values represent the x,y and z scaling factors, the number of articulations in the component skeleton, the maximum angle of deformation, and the maximum vector offset.</p>
<p>Then for each articulation we have :</p>
<p>- the z distance from the front of the component</p>
<p>- the angle of deformation</p>
<p>- an offset vector.</p>
<p>Note: the maximum angle and maximum offset are here to compute the colour value of the vertex, they may vary depending on what we want to represent: we might want to visualize the value of the current deformation angle over the maximum angle of this component, or it could be over the maximum angle of the entire BHA.</p>
<p>Then the shader is :</p>
<p>- scaling the model</p>
<p>- moving the vertices according to the offset vector</p>
<p>- rotating the vertices according to the deformation angle.</p>
<p>- transforming and shading each vertex.</p>
<h2>Results</h2>
<p>It&#8217;s working fine:</p>
<p>- almost no pre processing required</p>
<p>- no duplication of data</p>
<p>- the user can change the information mapped onto the BHA during the execution.</p>
<p>- the shader is quite small, so it&#8217;s not too expensive to run. For the moment I&#8217;m not doing the light calculation, so I&#8217;m skipping the normal transformation.</p>
<h2>Animation</h2>
<p>All the parameters are passed using one row of the texture, the obvious way of implementing animation is to use one row=one time.</p>
<p>This will be the next step.</p>
<h2>Problems</h2>
<p>For the moment I don&#8217;t have the models for the BHA components. The only one I have is the drilling bit. So I&#8217;m using cylinders for the other components.</p>
<p>The good thing about using procedural shapes is that I have the exact tesselation I need: not too many vertices on one circle, and more vertices on the length so that I can deform the cylinder accurately.</p>
<p>I&#8217;ve made a test and used the drilling bit to represent all the models: it was really slow, even though I was drawing only 1000 ft of bha in a 15000 ft well.</p>
<h2>Ideas of solutions</h2>
<p>I need to implement a visibility test: all the components are never all visible at the same time. <a href="http://www.lighthouse3d.com/opengl/viewfrustum/">http://www.lighthouse3d.com/opengl/viewfrustum/</a></p>
<p>I need to check with Maurice if we could use procedural shapes instead of the obj files.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/283/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/283/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/283/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/283/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/283/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/283/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/283/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/283/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/283/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/283/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/283/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/283/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/283/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/283/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=283&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2010/01/11/bha-mapping-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>
	</item>
		<item>
		<title>Shader implementation</title>
		<link>http://anthonybarbier.wordpress.com/2010/01/02/shader-implementation/</link>
		<comments>http://anthonybarbier.wordpress.com/2010/01/02/shader-implementation/#comments</comments>
		<pubDate>Sat, 02 Jan 2010 10:43:57 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=280</guid>
		<description><![CDATA[Just a few links I&#8217;ve used to implement the shaders: http://zach.in.tu-clausthal.de/teaching/cg2_07/literatur/glsl_tutorial/index.html Several tutorials from gamedev.net: http://wiki.gamedev.net/index.php/OpenGL:Tutorials:Loading_and_using_GLSL_shaders http://wiki.gamedev.net/index.php/OpenGL_shader_variable_types<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=280&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Just a few links I&#8217;ve used to implement the shaders:</p>
<p><a href="http://zach.in.tu-clausthal.de/teaching/cg2_07/literatur/glsl_tutorial/index.html">http://zach.in.tu-clausthal.de/teaching/cg2_07/literatur/glsl_tutorial/index.html</a></p>
<p>Several <a href="http://wiki.gamedev.net/index.php/Category:OpenGL">tutorials </a>from gamedev.net:</p>
<p><a href="http://wiki.gamedev.net/index.php/OpenGL:Tutorials:Loading_and_using_GLSL_shaders">http://wiki.gamedev.net/index.php/OpenGL:Tutorials:Loading_and_using_GLSL_shaders</a></p>
<p><a href="http://wiki.gamedev.net/index.php/OpenGL_shader_variable_types">http://wiki.gamedev.net/index.php/OpenGL_shader_variable_types</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/280/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/280/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/280/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/280/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/280/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/280/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/280/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/280/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/280/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/280/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/280/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/280/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/280/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/280/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=280&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2010/01/02/shader-implementation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>
	</item>
		<item>
		<title>BHA Position : skeleton generation and components mapping</title>
		<link>http://anthonybarbier.wordpress.com/2010/01/02/bha-position-skeleton-generation-and-components-mapping/</link>
		<comments>http://anthonybarbier.wordpress.com/2010/01/02/bha-position-skeleton-generation-and-components-mapping/#comments</comments>
		<pubDate>Sat, 02 Jan 2010 10:39:03 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=276</guid>
		<description><![CDATA[Here is what is available to generate the skeleton and to map the components onto it: - A component library : this is a collection of 3D models identified by a string. All the components are centred in 0,0,0 and orientated toward +Z. In order to achieve that, when a model is first loaded (from [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=276&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Here is what is available to generate the skeleton and to map the components onto it:</p>
<p>- A component library : this is a collection of 3D models identified by a string. All the components are centred in 0,0,0 and orientated toward +Z. In order to achieve that, when a model is first loaded (from an ASCII obj file), it&#8217;s manually orientated/positioned by the user; then it&#8217;s saved as binary. The rest of the time the application will only use the binary model.</p>
<p>- A Skeleton file: this is a csv file (see previous post)</p>
<p>- A Composition file: this is a csv file contains 3 columns : name of the element (it has to be present in the library), length of the element, outside diameter of the element.</p>
<p>The list is ordered from bottom to top : this means the first element is the one situated at the bottom of the borehole.</p>
<p>Note : an element can be used several times, each time with a different length and outside diameter.</p>
<p>The user has to pass an extra parameter : the current depth of the borehole.</p>
<h2>Skeleton generation</h2>
<p>1) find the 3d position of the current depth of the borehole.</p>
<p>2) From there I move back along the trajectory of the depth given in the skeleton file.</p>
<p>3) I offset this point of the given vector and associate the rotation value to this point. Note : the rotation value is a torsion angle representing the deformation of the component.</p>
<h2>Components mapping</h2>
<p>For each component of the list:</p>
<p>- I make a copy of the model data present in the library</p>
<p>- I scale the model so that it matches the outside diameter and the length given in the composition file.</p>
<p>- I create a skeleton for the component : it contains a minimum of 2 points, the front and the back of the component. If there are some points of the BHA skeleton in between : I add them.</p>
<p>So now for each component I have a map like this :</p>
<p>map[0.0]  =&gt; Offset Vector (0,0,0) and torsion angle (10)</p>
<p>map[5.0]  =&gt; Offset Vector (2,3,1) and torsion angle (8)</p>
<p>map[60.0]  =&gt; Offset Vector (1,2,0) and torsion angle (6)</p>
<p>map[90.0]  =&gt; Offset Vector (-1,1,0.5) and torsion angle (5)</p>
<p>Contrary to what I said in my previous post, the components are mapped like this on the skeleton :</p>
<p><a href="http://anthonybarbier.files.wordpress.com/2010/01/goodbha.png"><img class="alignnone size-full wp-image-277" title="goodBha" src="http://anthonybarbier.files.wordpress.com/2010/01/goodbha.png?w=335&#038;h=221" alt="" width="335" height="221" /></a></p>
<p>And not like this :</p>
<p><a href="http://anthonybarbier.files.wordpress.com/2009/12/bhadiagram.png"><img class="alignnone size-full wp-image-267" title="bhaDiagram" src="http://anthonybarbier.files.wordpress.com/2009/12/bhadiagram.png?w=335&#038;h=221" alt="" width="335" height="221" /></a></p>
<p>The offset vector stored in the map is relative to the normal position of the point (contrary to the BHA skeleton one which is absolute) :</p>
<p><a href="http://anthonybarbier.files.wordpress.com/2010/01/relativeoffsetcomponent.png"><img class="alignnone size-medium wp-image-278" title="relativeOffsetComponent" src="http://anthonybarbier.files.wordpress.com/2010/01/relativeoffsetcomponent.png?w=512&#038;h=203" alt="" width="512" height="203" /></a></p>
<h2>Component deformation : CPU vs GPU</h2>
<p>So now we have all the data needed, the only question is : where to do the deformation and the shading ?</p>
<p><strong>Here are the advantages of using a shader :</strong></p>
<p>- no pre processing : it&#8217;s perfect for real time</p>
<p>- no data duplicated : the model is loaded once, the scale and shading are done on the GPU. (A lot of memory saved)</p>
<p>- the user can change the shader in real time. To visualize where the component is the most bent, where the whole bha is the most bent, to visualize the torsion, etc&#8230;</p>
<p><strong>Drawbacks :</strong></p>
<p>- Requires OpenGL 2.0, I tried to check what it meant, and from what I understand from <a href="http://en.wikipedia.org/wiki/Comparison_of_Nvidia_graphics_processing_units#GeForce_3_series">this article</a>, this means the graphics card has to be at least a geforce 3 (this model has been released at the beginning of 2001). Schlumberger is using several 3D visualization software, that&#8217;s why I&#8217;m sure their machines have real graphics cards and not just an intel graphics chipset.</p>
<p>- Expensive at each frame (and as the scaling is non uniform, we need to renormalize the normal, which implies a square root)</p>
<p>- We can&#8217;t read back the values.</p>
<p>- If we want to remain compatible with a maximum of graphics cards, the shader shouldn&#8217;t use more than 44 uniform floats. To run the shader needs the length of the mesh, the number of control points, and the maximum deformation,  then for each point of the component skeleton we have : the length relative to the front of the component, an offset vector(3 floats) and an angle.</p>
<p>This means 3 variables + a maximum of 8 control points for the skeleton.(5 floats per point)</p>
<p>Note : we could use a texture to store this data, in which case the space is not a problem anymore, but the shader will require more resources to go and read the texture.</p>
<p>For the moment I&#8217;m going to implement the shader version using a texture for the input data. I&#8217;m going back to Schlumberger next thursday so when I&#8217;ll be there, I&#8217;ll try to run my application on several of their machines to check what kind of hardware they have.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/276/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/276/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/276/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/276/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/276/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/276/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/276/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/276/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/276/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/276/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/276/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/276/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/276/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/276/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=276&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2010/01/02/bha-position-skeleton-generation-and-components-mapping/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2010/01/goodbha.png" medium="image">
			<media:title type="html">goodBha</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2009/12/bhadiagram.png" medium="image">
			<media:title type="html">bhaDiagram</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2010/01/relativeoffsetcomponent.png?w=512" medium="image">
			<media:title type="html">relativeOffsetComponent</media:title>
		</media:content>
	</item>
		<item>
		<title>BHA position inside the borehole</title>
		<link>http://anthonybarbier.wordpress.com/2009/12/26/bha-position-inside-the-borehole/</link>
		<comments>http://anthonybarbier.wordpress.com/2009/12/26/bha-position-inside-the-borehole/#comments</comments>
		<pubDate>Sat, 26 Dec 2009 16:53:24 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=265</guid>
		<description><![CDATA[BHA Elements I will have a library of BHA elements, each element will have a name length and outside diameter size. For the moment I have only the model for the drilling bit, so I will use some cylinder for the other pieces. Positions So basically I have a skeleton which is defined by a list [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=265&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h2>BHA Elements</h2>
<p>I will have a library of BHA elements, each element will have a name length and outside diameter size.</p>
<p>For the moment I have only the model for the drilling bit, so I will use some cylinder for the other pieces.</p>
<h2>Positions</h2>
<p><a href="http://anthonybarbier.files.wordpress.com/2009/12/bhapositions.jpg"><img class="alignnone size-medium wp-image-266" title="bhaPositions" src="http://anthonybarbier.files.wordpress.com/2009/12/bhapositions.jpg?w=512&#038;h=229" alt="" width="512" height="229" /></a></p>
<p>So basically I have a skeleton which is defined by a list of joints.</p>
<p>Each joint is defined by :</p>
<p>- a depth offset: this is the distance along the trajectory from the current bottom of the borehole.</p>
<p>- a vector offset : which represents the distance from the trajectory.</p>
<p>- an angle of rotation. The axis of rotation is the trajectory direction.</p>
<p>Note : The articulation points don&#8217;t necessarily correspond to the BHA components.</p>
<h2>How to compute the components positions</h2>
<p>If we assume the angles between the joints of the skeleton are all &gt; 90 degrees ( I need to check with Maurice), then we have this :</p>
<p><a href="http://anthonybarbier.files.wordpress.com/2009/12/bhadiagram.png"><img class="alignnone size-full wp-image-267" title="bhaDiagram" src="http://anthonybarbier.files.wordpress.com/2009/12/bhadiagram.png?w=335&#038;h=221" alt="" width="335" height="221" /></a></p>
<p>The black line represents the skeleton</p>
<p>B and C are some joints of the skeleton</p>
<p>A and X are the extermities of one BHA component of length d. We know A and we need to find X position.</p>
<p>We know the distance between X and A, it means for the moment all the potential X are on the sphere of center A and radius d:</p>
<p><a href="http://anthonybarbier.files.wordpress.com/2009/12/bhaequation2.png"><img class="alignnone size-full wp-image-268" title="bhaEquation2" src="http://anthonybarbier.files.wordpress.com/2009/12/bhaequation2.png?w=145&#038;h=42" alt="" width="145" height="42" /></a></p>
<p>We also know that X belongs to AC, which means we can express X like this:</p>
<p><a href="http://anthonybarbier.files.wordpress.com/2009/12/bhaequation1.png"><img class="alignnone size-full wp-image-269" title="bhaEquation1" src="http://anthonybarbier.files.wordpress.com/2009/12/bhaequation1.png?w=145&#038;h=42" alt="" width="145" height="42" /></a></p>
<p>If we put these two equations together and develop, we get :</p>
<p><a href="http://anthonybarbier.files.wordpress.com/2009/12/bhaequation3.png"><img class="alignnone size-full wp-image-270" title="bhaEquation3" src="http://anthonybarbier.files.wordpress.com/2009/12/bhaequation3.png?w=415&#038;h=135" alt="" width="415" height="135" /></a></p>
<p>We now have a quadratic equation:</p>
<p><a href="http://anthonybarbier.files.wordpress.com/2009/12/bhaequation4.png"><img class="alignnone size-full wp-image-271" title="bhaEquation4" src="http://anthonybarbier.files.wordpress.com/2009/12/bhaequation4.png?w=209&#038;h=189" alt="" width="209" height="189" /></a></p>
<p>Which can be solved like this:</p>
<p><a href="http://anthonybarbier.files.wordpress.com/2009/12/bhaequation5.png"><img class="alignnone size-full wp-image-272" title="bhaEquation5" src="http://anthonybarbier.files.wordpress.com/2009/12/bhaequation5.png?w=123&#038;h=109" alt="" width="123" height="109" /></a></p>
<p>Note : n has to be between 0 and 1, that&#8217;s why we only keep the positive solution.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/265/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/265/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/265/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/265/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/265/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/265/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/265/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/265/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/265/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/265/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/265/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/265/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/265/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/265/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=265&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2009/12/26/bha-position-inside-the-borehole/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2009/12/bhapositions.jpg?w=512" medium="image">
			<media:title type="html">bhaPositions</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2009/12/bhadiagram.png" medium="image">
			<media:title type="html">bhaDiagram</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2009/12/bhaequation2.png" medium="image">
			<media:title type="html">bhaEquation2</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2009/12/bhaequation1.png" medium="image">
			<media:title type="html">bhaEquation1</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2009/12/bhaequation3.png" medium="image">
			<media:title type="html">bhaEquation3</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2009/12/bhaequation4.png" medium="image">
			<media:title type="html">bhaEquation4</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2009/12/bhaequation5.png" medium="image">
			<media:title type="html">bhaEquation5</media:title>
		</media:content>
	</item>
		<item>
		<title>4D Surface</title>
		<link>http://anthonybarbier.wordpress.com/2009/12/26/4d-surface/</link>
		<comments>http://anthonybarbier.wordpress.com/2009/12/26/4d-surface/#comments</comments>
		<pubDate>Sat, 26 Dec 2009 15:49:13 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=256</guid>
		<description><![CDATA[I have done a first implementation of the 4D surface. The general algorithm to extrude a surface out of a curve is pretty simple: We duplicate and translate each point of the curve in the extrusion direction : (the red points represent the original trajectory, the blue points the first extrusion and the green ones the second) [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=256&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I have done a first implementation of the 4D surface.</p>
<p>The general algorithm to extrude a surface out of a curve is pretty simple:</p>
<p>We duplicate and translate each point of the curve in the extrusion direction :</p>
<p>(the red points represent the original trajectory, the blue points the first extrusion and the green ones the second)</p>
<p>  <a href="http://anthonybarbier.files.wordpress.com/2009/12/surfaceextrusion1.png"><img class="alignnone size-full wp-image-258" title="surfaceExtrusion" src="http://anthonybarbier.files.wordpress.com/2009/12/surfaceextrusion1.png?w=266&#038;h=391" alt="" width="266" height="391" /></a></p>
<p>This surface will be used to plot some data which is borehole-depth and time related: the trajectory represents the borehole-depth dimension, and the extrusion represents the time.</p>
<p>Then for each time and depth the data is represented by a colour and/or a vertex displacement up or down along the normal (not implemented yet).</p>
<p>For the moment we have one piece of data for each combination of depth and time, but in reality it doesn&#8217;t make sense to have some data displayed for a section of the borehole which has not been drilled yet.</p>
<p>So in 2D, with the horizontal axis representing time and the vertical one depth, we would have :</p>
<p><a href="http://anthonybarbier.files.wordpress.com/2009/12/surface2d.png"><img class="alignnone size-full wp-image-259" title="surface2D" src="http://anthonybarbier.files.wordpress.com/2009/12/surface2d.png?w=266&#038;h=391" alt="" width="266" height="391" /></a></p>
<p>In blue : this is the surface as it&#8217;s represented at the moment (data for all the time / depth combinations)</p>
<p>In red : this is what it should look like (data only for the existing time / depth combinations) </p>
<p>So for each depth I remove all the vertices which have a time inferior to the time of drilling of this depth. Then I move the first vertex of the row to the exact time:</p>
<p><a href="http://anthonybarbier.files.wordpress.com/2009/12/surface1.png"><img class="alignnone size-full wp-image-260" title="surface1" src="http://anthonybarbier.files.wordpress.com/2009/12/surface1.png?w=143&#038;h=185" alt="" width="143" height="185" /></a></p>
<p>(you can see the first vertex of the two last rows has been moved from its original position.)</p>
<p>The second problem is: how to link the vertices correctly when you don&#8217;t have the same number of vertices on the two rows?</p>
<p>The rows are generated from top to bottom (which means row 0 = top row)</p>
<p>Let&#8217;s say there are n vertices on the top row and n-m vertices on the second. with m &gt;=0 (it&#8217;s impossible to have more vertices than on the previous row : it would mean the time is going backwards).</p>
<p>The indices are generated in two steps:</p>
<p>1st step: the vertices are between 0 and m : we draw only the top triangles of the mesh</p>
<p>2nd step: the vertices &gt;= m : we draw the top and bottom triangles of the quad.</p>
<p>This algorithm gives this :</p>
<p><a href="http://anthonybarbier.files.wordpress.com/2009/12/surface0.png"><img class="alignnone size-full wp-image-261" title="surface0" src="http://anthonybarbier.files.wordpress.com/2009/12/surface0.png?w=186&#038;h=341" alt="" width="186" height="341" /></a></p>
<p>Here is the result I get by putting everything together :</p>
<p><a href="http://anthonybarbier.files.wordpress.com/2009/12/surfacetest.png"><img class="alignnone size-medium wp-image-262" title="surfaceTest" src="http://anthonybarbier.files.wordpress.com/2009/12/surfacetest.png?w=512&#038;h=492" alt="" width="512" height="492" /></a></p>
<p>Note :</p>
<p>- I don&#8217;t have any data to plot on the surface yet : I need to generate some fake one.</p>
<p>- I&#8217;ve generated the drilling times myself (that&#8217;s why you can see some big edges)</p>
<p>What&#8217;s next ?</p>
<p>I still need to do the vertices displacement up and down on the surface, I also need to do the surface manipulation so that it can translate and intersect with the trajectory, but for that I need to implement a picking system (which I don&#8217;t have at the moment neither).</p>
<p>I was also thinking about implementing a surface in 2D (like in the second diagram), dispay it in a secondary window and put a vertical moving line which would represent the time and which would move at the same time as the drilling bit.</p>
<p>But for the moment, my priority is to implement the BHA inside the borehole, Maurice sent me some more explanations about the format of data I will have in input, so I can now start to implement this part.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/256/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/256/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/256/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/256/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/256/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/256/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/256/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/256/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/256/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/256/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/256/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/256/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/256/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/256/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=256&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2009/12/26/4d-surface/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2009/12/surfaceextrusion1.png" medium="image">
			<media:title type="html">surfaceExtrusion</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2009/12/surface2d.png" medium="image">
			<media:title type="html">surface2D</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2009/12/surface1.png" medium="image">
			<media:title type="html">surface1</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2009/12/surface0.png" medium="image">
			<media:title type="html">surface0</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2009/12/surfacetest.png?w=512" medium="image">
			<media:title type="html">surfaceTest</media:title>
		</media:content>
	</item>
		<item>
		<title>Visit to Schlumberger</title>
		<link>http://anthonybarbier.wordpress.com/2009/12/21/visit-at-schlumberger/</link>
		<comments>http://anthonybarbier.wordpress.com/2009/12/21/visit-at-schlumberger/#comments</comments>
		<pubDate>Mon, 21 Dec 2009 09:59:00 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=252</guid>
		<description><![CDATA[Thursday and friday I was in Cambridge to give a presentation about the project and make a demonstration. We also talked about the order in which I should implement the features left. Presentation click here to see the presentation The presentation included explanations about : - the API architecture, and how it makes it possible to replace [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=252&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Thursday and friday I was in Cambridge to give a presentation about the project and make a demonstration.</p>
<p>We also talked about the order in which I should implement the features left.</p>
<h2>Presentation</h2>
<p><a href="http://anthonybarbier.files.wordpress.com/2009/12/drive_presentation.pptx">click here to see the presentation</a></p>
<p>The presentation included explanations about :</p>
<p>- the API architecture, and how it makes it possible to replace any part of it.</p>
<p>- how to extend the library by using the interfaces present in the API.</p>
<p>- how the Parameters class works, and why it is more flexible and safe than normal parameters.</p>
<p>I then made a sum up of the features implemented and which ones still need to be implemented.</p>
<p>I finished the presentation by showing 3 small demonstration applications.</p>
<h2>Feedbacks</h2>
<p>They all seemed satisfied with the presentation and demonstration.</p>
<h2>New ideas</h2>
<p>They would like to be able to map the points of contact between the BHA and the borehole on the borehole.</p>
<p>It should already be possible to do in a &#8220;static&#8221; state as it&#8217;s already possible to map any kind of picture on the borehole.</p>
<p>The main problem is going to be how to animate the texture.</p>
<h2>What&#8217;s next ?</h2>
<p>It&#8217;s be decided that the two more important things left are the visualization of the BHA inside the borehole and the 4D surface.</p>
<p>They&#8217;re not particularly interested in a very complete GUI, so its development has been moved to the very end.</p>
<p>To implement the BHA visualization I need some data files which I don&#8217;t have at the moment, so instead I&#8217;m going to start working on the 4D surface.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/252/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/252/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/252/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/252/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/252/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/252/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/252/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/252/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/252/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/252/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/252/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/252/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/252/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/252/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=252&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2009/12/21/visit-at-schlumberger/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>
	</item>
		<item>
		<title>Animation : controllers / connectors</title>
		<link>http://anthonybarbier.wordpress.com/2009/12/13/animation-controllers-connectors/</link>
		<comments>http://anthonybarbier.wordpress.com/2009/12/13/animation-controllers-connectors/#comments</comments>
		<pubDate>Sun, 13 Dec 2009 13:44:49 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=248</guid>
		<description><![CDATA[I&#8217;ve added a second Controller : FollowBoreholeController. Everything is in the name: it&#8217;s to follow the borehole ! I&#8217;ve also added a Connector class, which allows ObservedData to be connected between themselves, which means by using the following few lines of code I now have a drilling tool rotating on itself and going to down [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=248&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve added a second Controller : FollowBoreholeController. Everything is in the name: it&#8217;s to follow the borehole !</p>
<p>I&#8217;ve also added a Connector class, which allows ObservedData to be connected between themselves, which means by using the following few lines of code I now have a drilling tool rotating on itself and going to down the borehole, and a trajectory camera following it:</p>
<blockquote><p>//move the object to its bounding box centre and orientate it so that +Z is the front</p>
<p>Vector3f min = Drive.drawables["testObj"]-&gt;getBoundingBox().getMinimum();</p>
<p>Vector3f max = Drive.drawables["testObj"]-&gt;getBoundingBox().getMaximum();</p>
<p>cml::matrix_rotation_axis_angle(rot,Vector3f(1.f,0.f,0.f),- PI / 2.f);</p>
<p>cml::matrix_translation(transfo,</p>
<p>(min +</p>
<p>max) * -0.5f);</p>
<p>//Controller which makes the tool rotating on itself</p>
<p>RotationController* rotate = new RotationController;</p>
<p>rotate-&gt;axis = Vector3f(0.f,0.f,1.f);</p>
<p>rotate-&gt;speed = 10.f;</p>
<p>rotate-&gt;inMatrix = rot * transfo;</p>
<p>//Controller to move along the borehole</p>
<p>FollowBoreholeController* follow = new FollowBoreholeController((BoreholeDataObject*)Drive.dataObjects["borehole"]);</p>
<p>follow-&gt;speed = 150.f;</p>
<p>//connector to combine both the rotation of the tool and its position along the borehole</p>
<p>Drive.addConnector(new Connector&lt;Matrix44f&gt;(&amp;rotate-&gt;outMatrix,&amp;follow-&gt;inMatrix));</p>
<p>//connect the output of the controller to the tool transformation</p>
<p>Drive.addConnector(new Connector&lt;Matrix44f&gt;(&amp;follow-&gt;outMatrix,&amp;Drive.drawables["testObj"]-&gt;parameters.getData&lt;Matrix44f&gt;(&#8220;Transformation&#8221;)));</p>
<p>//connect the same controller to the camera</p>
<p>Drive.addConnector(new Connector&lt;float&gt;(&amp;follow-&gt;distanceFromStart,&amp;Drive.cameras.getActiveCamera()-&gt;data.getData&lt;float&gt;(&#8220;DistanceFromStart&#8221;)));</p>
<p>Drive.controllers["rotateObj"] = rotate;</p>
<p>Drive.controllers["followObj"] = follow;</p></blockquote>
<p>I&#8217;ve also implemented a small compass, which sticks to the top right corner of the window.:</p>
<p><a href="http://anthonybarbier.files.wordpress.com/2009/12/screenshot_1260711740.png"><img class="alignnone size-medium wp-image-249" title="Screenshot_1260711740" src="http://anthonybarbier.files.wordpress.com/2009/12/screenshot_1260711740.png?w=512&#038;h=261" alt="" width="512" height="261" /></a></p>
<p>But it doesn&#8217;t work fine yet, and it looks pretty crap, so I&#8217;m not sure if I&#8217;m going to keep it or not yet.</p>
<p>For the moment I&#8217;m starting to work on the trackball camera, I&#8217;ve found a page which explains very well how to implement one : <a href="http://viewport3d.com/trackball.htm">click here</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/248/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/248/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/248/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/248/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/248/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/248/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/248/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/248/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/248/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/248/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/248/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/248/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/248/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/248/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=248&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2009/12/13/animation-controllers-connectors/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2009/12/screenshot_1260711740.png?w=512" medium="image">
			<media:title type="html">Screenshot_1260711740</media:title>
		</media:content>
	</item>
		<item>
		<title>Meeting with my supervisor</title>
		<link>http://anthonybarbier.wordpress.com/2009/12/11/meeting-with-my-supervisor-6/</link>
		<comments>http://anthonybarbier.wordpress.com/2009/12/11/meeting-with-my-supervisor-6/#comments</comments>
		<pubDate>Fri, 11 Dec 2009 00:15:00 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=243</guid>
		<description><![CDATA[This morning I had a meeting with my supervisor, I showd him an updated version of my demo. He found a bug with the texture: you can see a line going along the cylinder where it&#8217;s been generated (on the left on the picture) The problem is coming from the linear interpolation done by the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=243&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This morning I had a meeting with my supervisor, I showd him an updated version of my demo.</p>
<p>He found a bug with the texture: you can see a line going along the cylinder where it&#8217;s been generated (on the left on the picture)</p>
<p><a href="http://anthonybarbier.files.wordpress.com/2009/12/screenshot_1260488572.png"><img class="alignnone size-medium wp-image-244" title="TextureProblem" src="http://anthonybarbier.files.wordpress.com/2009/12/screenshot_1260488572.png?w=512&#038;h=261" alt="" width="512" height="261" /></a></p>
<p>The problem is coming from the linear interpolation done by the texture manager: it interpolates the first row with the last one, the first column with the last one etc&#8230; which doesn&#8217;t work in this case because it&#8217;s not a cyclic texture. To fix that I stopped using the first and last row and column to store data, and I&#8217;ve duplicated the first and last element of each row, and the first and last element of each column so that the linear interpolation keeps working fine.</p>
<p>But this didn&#8217;t entirely fixed the problem because there is also a problem in the way I generate the texture. In the following picture I&#8217;ve just copied/pasted the texture next to itself, and you can see there are some artefacts:</p>
<p><a href="http://anthonybarbier.files.wordpress.com/2009/12/textureartefact.png"><img class="alignnone size-full wp-image-245" title="textureArtefact" src="http://anthonybarbier.files.wordpress.com/2009/12/textureartefact.png?w=60&#038;h=282" alt="" width="60" height="282" /></a></p>
<p>I&#8217;ll check the algorithm tomorrow.</p>
<p>Today I&#8217;ve also added a new category of classes : the Controllers, they will be used to animate the Drawables objects. As the animation is not the main goal of this API I decided to create this category instead of implementing a complete scene graph.</p>
<p>For the moment I&#8217;ve only created a &#8220;rotationController&#8221; that I use to make the drilling tool rotate on itself.</p>
<p>I&#8217;ve also added a &#8220;type&#8221; field in the Data class for both ObservedData and normal Data. So now the user can request for a specific object what are the parameters it accepts:</p>
<p><a href="http://anthonybarbier.files.wordpress.com/2009/12/parameterslist.png"><img class="alignnone size-medium wp-image-246" title="parametersList" src="http://anthonybarbier.files.wordpress.com/2009/12/parameterslist.png?w=481&#038;h=512" alt="" width="481" height="512" /></a></p>
<p>To do that I used<a href="http://msdn.microsoft.com/en-us/library/fyf39xec(VS.80).aspx"> typeid().name()</a>.</p>
<p>Unfortunately, each time the &#8220;name()&#8221; function is called, the returned string is detected as a memory leak (even if actually it&#8217;s not one).</p>
<p>This bug exists for at least 3 years, Microsoft has a page about it <a href="http://support.microsoft.com/kb/140670">here</a>, and the only &#8220;solution&#8221; they propose is &#8220;The reported memory leak can be ignored.&#8221; (Great ! Thank you for the advice !Take your time to fix the bug&#8230;)</p>
<p>So I&#8217;ll have to live with it I guess, even though it&#8217;s really annoying because I can&#8217;t tell if there are some real memory leaks hidden in the middle of all the fake ones.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/243/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/243/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/243/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/243/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/243/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/243/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/243/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/243/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/243/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/243/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/243/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/243/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/243/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/243/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=243&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2009/12/11/meeting-with-my-supervisor-6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2009/12/screenshot_1260488572.png?w=512" medium="image">
			<media:title type="html">TextureProblem</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2009/12/textureartefact.png" medium="image">
			<media:title type="html">textureArtefact</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2009/12/parameterslist.png?w=481" medium="image">
			<media:title type="html">parametersList</media:title>
		</media:content>
	</item>
		<item>
		<title>Borehole diameters</title>
		<link>http://anthonybarbier.wordpress.com/2009/12/10/borehole-diameters/</link>
		<comments>http://anthonybarbier.wordpress.com/2009/12/10/borehole-diameters/#comments</comments>
		<pubDate>Thu, 10 Dec 2009 11:36:34 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=225</guid>
		<description><![CDATA[I&#8217;m now loading the borehole diameter from a calliper log : for different depths I have a list of diameter. I can deduce the angle from the number of diameters I have per depth, for example, if I have 15 values it means I have a value every 24 degrees. I have pretty big radius [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=225&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m now loading the borehole diameter from a calliper log : for different depths I have a list of diameter. I can deduce the angle from the number of diameters I have per depth, for example, if I have 15 values it means I have a value every 24 degrees.</p>
<p>I have pretty big radius variations:</p>
<p><a href="http://anthonybarbier.files.wordpress.com/2009/12/screenshot_1260444364.png"><img class="alignnone size-medium wp-image-226" title="radius problem" src="http://anthonybarbier.files.wordpress.com/2009/12/screenshot_1260444364.png?w=512&#038;h=261" alt="" width="512" height="261" /></a></p>
<p>But I&#8217;ve also noticed some big variations in the log as well, so maybe it&#8217;s normal. (I&#8217;ll ask confirmation)</p>
<p>9603,8.5,8.5,8.5,8.5,8.5,8.5,8.5,8.5,8.5,8.5,8.5,8.5,8.5,8.5,8.5,8.5<br />
9603.5,8.6821,8.6457,8.6092,8.5727,8.5363,9.3479,10.1596,10.9712,11.7829,10.9763,10.1697,9.3631,8.5565,8.5879,8.6193,8.6507</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/225/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=225&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2009/12/10/borehole-diameters/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2009/12/screenshot_1260444364.png?w=512" medium="image">
			<media:title type="html">radius problem</media:title>
		</media:content>
	</item>
		<item>
		<title>update</title>
		<link>http://anthonybarbier.wordpress.com/2009/12/10/update/</link>
		<comments>http://anthonybarbier.wordpress.com/2009/12/10/update/#comments</comments>
		<pubDate>Thu, 10 Dec 2009 09:52:27 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=219</guid>
		<description><![CDATA[I have a problem with my Hermite Cubic interpolation : I can&#8217;t manage to do a uniform tesselation, the look up table trick doesn&#8217;t work at all. I think it&#8217;s because the uniformity doesn&#8217;t depend of the interpolant only : the distance between the control points is important too, and obviously I can&#8217;t do a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=219&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I have a problem with my Hermite Cubic interpolation : I can&#8217;t manage to do a uniform tesselation, the look up table trick doesn&#8217;t work at all. I think it&#8217;s because the uniformity doesn&#8217;t depend of the interpolant only : the distance between the control points is important too, and obviously I can&#8217;t do a look up table for every scenario.</p>
<p>Without the look up table:</p>
<p><a href="http://anthonybarbier.files.wordpress.com/2009/12/screenshot_1260385814.png"><img class="alignnone size-medium wp-image-220" title="Without the look up table" src="http://anthonybarbier.files.wordpress.com/2009/12/screenshot_1260385814.png?w=512&#038;h=261" alt="" width="512" height="261" /></a></p>
<p>With a 1000 samples look up table:</p>
<p><a href="http://anthonybarbier.files.wordpress.com/2009/12/screenshot_1260386088.png"><img class="alignnone size-medium wp-image-221" title="with a 1000 samples look up table" src="http://anthonybarbier.files.wordpress.com/2009/12/screenshot_1260386088.png?w=512&#038;h=261" alt="" width="512" height="261" /></a></p>
<p>I&#8217;ll talk about it with my supervisor today</p>
<p>Yesterday I have migrated the minimum curvature interpolation method : it works fine, it&#8217;s a lot easier to implement than a 3d points interpolation, and it&#8217;s linear !</p>
<p>I&#8217;ve also implemented the diameter loaded from file(with a different radius per angle)</p>
<p>There are a lot of bumps on the borehole, I need to check with Maurice, because they seem to be present in the data too.</p>
<p>And to finish: the prettiest bug of the day!</p>
<p><a href="http://anthonybarbier.files.wordpress.com/2009/12/screenshot_1260383822.png"><img class="alignnone size-medium wp-image-222" title="Pretty bug" src="http://anthonybarbier.files.wordpress.com/2009/12/screenshot_1260383822.png?w=512&#038;h=261" alt="" width="512" height="261" /></a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/219/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/219/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/219/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/219/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/219/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/219/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/219/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/219/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/219/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/219/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/219/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/219/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/219/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/219/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=219&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2009/12/10/update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2009/12/screenshot_1260385814.png?w=512" medium="image">
			<media:title type="html">Without the look up table</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2009/12/screenshot_1260386088.png?w=512" medium="image">
			<media:title type="html">with a 1000 samples look up table</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2009/12/screenshot_1260383822.png?w=512" medium="image">
			<media:title type="html">Pretty bug</media:title>
		</media:content>
	</item>
		<item>
		<title>OBJ parser and boost serialization</title>
		<link>http://anthonybarbier.wordpress.com/2009/12/09/obj-parser-and-boost-serialization/</link>
		<comments>http://anthonybarbier.wordpress.com/2009/12/09/obj-parser-and-boost-serialization/#comments</comments>
		<pubDate>Wed, 09 Dec 2009 01:24:33 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=215</guid>
		<description><![CDATA[Today I&#8217;ve done an OBJ parser, I got only one problem during its implementation : obj indices start from 1 and not 0. Fortunately for me, Mathieu my housemate had already implemented an obj parser, so when I told him I had a bug he knew the problem was probably coming from this (and he [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=215&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Today I&#8217;ve done an OBJ parser,</p>
<p>I got only one problem during its implementation :<a href="http://www.eg-models.de/formats/Format_Obj.html"> obj indices start from 1 and not 0.</a></p>
<p>Fortunately for me, Mathieu my housemate had already implemented an obj parser, so when I told him I had a bug he knew the problem was probably coming from this (and he was right!).</p>
<p><img class="alignnone size-full wp-image-216" title="mathieuSepia" src="http://anthonybarbier.files.wordpress.com/2009/12/mathieusepia.png?w=72&#038;h=108" alt="" width="72" height="108" /></p>
<p>For the moment I have only one model (and the material file is missing that&#8217;s why it&#8217;s white but Maurice told me he would try to get it for me):</p>
<p><a href="http://anthonybarbier.files.wordpress.com/2009/12/objfile1.png"><img class="alignnone size-medium wp-image-217" title="objFile1" src="http://anthonybarbier.files.wordpress.com/2009/12/objfile1.png?w=512&#038;h=414" alt="" width="512" height="414" /></a></p>
<p>OBJ files are easy but quite long to parse (it&#8217;s all in ascii)</p>
<p>For example for this model (1526 KB) it takes :</p>
<p>7.88 seconds in debug</p>
<p>1.46 seconds in release</p>
<p>So I&#8217;ve used the<a href="http://www.boost.org/doc/libs/1_41_0/libs/serialization/doc/serialization.html"> boost serializer</a> to save it as binary (464 KB) and now the parsing is a lot faster:</p>
<p>0.62 seconds in debug</p>
<p>0.038 seconds in release</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/215/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/215/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/215/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/215/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/215/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/215/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/215/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/215/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/215/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/215/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/215/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/215/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/215/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/215/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=215&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2009/12/09/obj-parser-and-boost-serialization/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2009/12/mathieusepia.png" medium="image">
			<media:title type="html">mathieuSepia</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2009/12/objfile1.png?w=512" medium="image">
			<media:title type="html">objFile1</media:title>
		</media:content>
	</item>
		<item>
		<title>Seismic data texture generation / borehole texture coordinates generation</title>
		<link>http://anthonybarbier.wordpress.com/2009/12/08/seismic-data-texture-generation-borehole-texture-coordinates-generation/</link>
		<comments>http://anthonybarbier.wordpress.com/2009/12/08/seismic-data-texture-generation-borehole-texture-coordinates-generation/#comments</comments>
		<pubDate>Tue, 08 Dec 2009 01:41:01 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=204</guid>
		<description><![CDATA[Borehole texture coordinates generation For each circle of the borehole, the &#8220;0&#8243; of the x coordinates has to be at the top, which means I have to find a normal to the trajectory always pointing to the same direction. The first algorithm I tried was: dir = borehole direction up = (0,1,0) right (1,0,0) x [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=204&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h2>Borehole texture coordinates generation</h2>
<p>For each circle of the borehole, the &#8220;0&#8243; of the x coordinates has to be at the top, which means I have to find a normal to the trajectory always pointing to the same direction.</p>
<p>The first algorithm I tried was:</p>
<blockquote><p>dir = borehole direction</p>
<p>up = (0,1,0)</p>
<p>right (1,0,0)</p>
<p>x = cross(dir,up);</p>
<p>y = cross(dir,x);</p>
<p>for each angle :</p>
<p>point = center + x* sin(angle) + y*cos(angle)</p></blockquote>
<p>This works fine most of the time except when the direction is close from being vertical.</p>
<p>In this case Maurice told me the northest point of the borehole was considered to be the top:</p>
<p><a href="http://anthonybarbier.files.wordpress.com/2009/12/boreholecoordinatesexplanation.png"><img class="alignnone size-medium wp-image-208" title="boreholeCoordinatesExplanation" src="http://anthonybarbier.files.wordpress.com/2009/12/boreholecoordinatesexplanation.png?w=512&#038;h=316" alt="" width="512" height="316" /></a></p>
<p>So I generate the vectors like this:</p>
<blockquote><p>if(fabs(dotProduct) &gt; 0.9)</p>
<p>{</p>
<p>dir = borehole direction</p>
<p>up = (0,1,0)</p>
<p>right (1,0,0)</p>
<p>y = cross(right,dir);</p>
<p>x = cross(y,dir);</p>
<p>for each angle :</p>
<p>point = center + x* sin(angle) + y*cos(angle)</p>
<p>}</p></blockquote>
<p>Now the texture coordinates are correct but there is a twist at the point where we switch from &#8220;north&#8221; to &#8220;up&#8221;:</p>
<p><a href="http://anthonybarbier.files.wordpress.com/2009/12/axischangeproblem1.png"><img class="alignnone size-full wp-image-212" title="axisChangeProblem" src="http://anthonybarbier.files.wordpress.com/2009/12/axischangeproblem1.png?w=389&#038;h=483" alt="" width="389" height="483" /></a></p>
<p>To avoid that I&#8217;ve added a step in the algorithm described above:</p>
<p>if the dot product is between 0.92 and 0.90 : I do a linear interpolation in the direction the trajectory is starting to point at</p>
<blockquote><p>float delta = 1.f &#8211; ((dotValue &#8211; 0.9f) / 0.02f);</p>
<p>float angle=0.f;</p>
<p>if(fabs(dir[0]) &gt; fabs(dir[2]))</p>
<p>{</p>
<p>if(dir[0] &gt; 0.f) angle = PI/2.f;</p>
<p>else angle = -PI/2.f;</p>
<p>}</p>
<p>else</p>
<p>{</p>
<p>if(dir[2] &lt; 0.f)</p>
<p>{</p>
<p>if(dir[0] &gt; 0.f) angle = -PI;</p>
<p>else angle = PI;</p>
<p>}</p>
<p>}</p>
<p>matrix_rotation_axis_angle(rotation,dir,angle*delta);</p></blockquote>
<p>The transition is not really smooth :</p>
<p><a href="http://anthonybarbier.files.wordpress.com/2009/12/boreholetransitionobvious.png"><img class="alignnone size-medium wp-image-206" title="boreholeTransitionObvious" src="http://anthonybarbier.files.wordpress.com/2009/12/boreholetransitionobvious.png?w=326&#038;h=512" alt="" width="326" height="512" /></a></p>
<p>But in practice, I&#8217;m going to map seismic data on the pipe, and in this case it looks ok :</p>
<p><a href="http://anthonybarbier.files.wordpress.com/2009/12/boreholetransitionseismic.png"><img class="alignnone size-medium wp-image-207" title="boreholeTransitionSeismic" src="http://anthonybarbier.files.wordpress.com/2009/12/boreholetransitionseismic.png?w=326&#038;h=512" alt="" width="326" height="512" /></a></p>
<h2>Seismic data texture generation</h2>
<p>The seismic data have the following format :</p>
<p>Depth angle_0 angle_1 &#8230; angle_n</p>
<p>The number of columns may vary, so to compute the angle that each column represents I do 360/ (nbColumns -1)</p>
<p>Then for each vertex of each circle of the borehole I convert it into a depth + angle, then I do a tri-linear interpolation with the data I have.</p>
<h3>Texture coordinates :</h3>
<p>I generate the textures coordinates this way :</p>
<p>1 pixel on the height = 1 depth of one borehole circle.</p>
<p>Then if there are more control points than the texture height, I split into several columns (cf one of the previous post).</p>
<p>The user can pick the texture size (as long as it&#8217;s a power of 2), so if he takes a bigger one, the column will be larger, and so it will be more accurate. By default, for compatibility reasons the texture size is set to 1024.</p>
<p>Also I duplicate the first and last pixel of each row of each column: this is because OpenGL is using them when it&#8217;s doing a linear interpolation of the border. (<a href="http://www.talisman.org/opengl-1.1/Reference/glTexParameter.html">source</a>)</p>
<p>So in the end I generate a texture which looks like this:</p>
<p><a href="http://anthonybarbier.files.wordpress.com/2009/12/testseismic.png"><img class="alignnone size-medium wp-image-209" title="testSeismic" src="http://anthonybarbier.files.wordpress.com/2009/12/testseismic.png?w=512&#038;h=512" alt="" width="512" height="512" /></a></p>
<p>Note : for the moment I have only part of a log file, that&#8217;s why most of the values are &#8220;unknown&#8221;, so for debugging purposes I&#8217;ve duplicated the part I have:</p>
<p><a href="http://anthonybarbier.files.wordpress.com/2009/12/logfull_rgba.png"><img class="alignnone size-medium wp-image-210" title="logFull_RGBA" src="http://anthonybarbier.files.wordpress.com/2009/12/logfull_rgba.png?w=512&#038;h=512" alt="" width="512" height="512" /></a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/204/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/204/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/204/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/204/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/204/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/204/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/204/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/204/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/204/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/204/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/204/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/204/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/204/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/204/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=204&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2009/12/08/seismic-data-texture-generation-borehole-texture-coordinates-generation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2009/12/boreholecoordinatesexplanation.png?w=512" medium="image">
			<media:title type="html">boreholeCoordinatesExplanation</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2009/12/axischangeproblem1.png" medium="image">
			<media:title type="html">axisChangeProblem</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2009/12/boreholetransitionobvious.png?w=326" medium="image">
			<media:title type="html">boreholeTransitionObvious</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2009/12/boreholetransitionseismic.png?w=326" medium="image">
			<media:title type="html">boreholeTransitionSeismic</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2009/12/testseismic.png?w=512" medium="image">
			<media:title type="html">testSeismic</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2009/12/logfull_rgba.png?w=512" medium="image">
			<media:title type="html">logFull_RGBA</media:title>
		</media:content>
	</item>
		<item>
		<title>Curve Tesselation</title>
		<link>http://anthonybarbier.wordpress.com/2009/12/05/curve-tesselation/</link>
		<comments>http://anthonybarbier.wordpress.com/2009/12/05/curve-tesselation/#comments</comments>
		<pubDate>Sat, 05 Dec 2009 13:59:58 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=200</guid>
		<description><![CDATA[It appeared that the curve tesselation problem was much bigger than expected : it took me most of yesterday to fix it. I tried different interpolation methods : - Lagrange Cubic : didn&#8217;t fix the problem - Cosine interpolation : fix the problem, but as it&#8217;s taking only two control points there is no continuity. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=200&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>It appeared that the curve tesselation problem was much bigger than expected : it took me most of yesterday to fix it.</p>
<p>I tried different interpolation methods :</p>
<p>- Lagrange Cubic : didn&#8217;t fix the problem</p>
<p>- Cosine interpolation : fix the problem, but as it&#8217;s taking only two control points there is no continuity.</p>
<p>- BSpline interpolation : doesn&#8217;t pass by the control points</p>
<p>- Hermite Cubic interpolation: didn&#8217;t work with default parameters, but by tweaking the tension and bias parameters it now works !</p>
<p><a href="http://www.nag.co.uk/industryarticles/fig4%20-%20hermite.jpg"><img class="alignnone" title="Cubic Hermite vs Cubic spline" src="http://www.nag.co.uk/industryarticles/fig4%20-%20hermite.jpg" alt="" width="406" height="344" /></a> (<a href="http://www.nag.co.uk/industryarticles/fig4%20-%20hermite.jpg">source</a>)</p>
<p>Links:</p>
<p><a href="http://local.wasp.uwa.edu.au/~pbourke/miscellaneous/interpolation/">Different interpolation methods</a></p>
<p><a href="http://en.wikipedia.org/wiki/Cubic_Hermite_spline">Cubic Hermite</a></p>
<p><a href="http://en.wikipedia.org/wiki/Lagrange_polynomial">Lagrange polynomial</a></p>
<p><a href="http://en.wikipedia.org/wiki/Trigonometric_interpolation">Trigonometric interpolation</a></p>
<p><a href="http://www.ibiblio.org/e-notes/Splines/Bint.htm">Cubic BSpline</a></p>
<p>I kept the interpolation methods which didn&#8217;t work in the API because they might work just fine for some other curves.</p>
<p>The second problem I&#8217;ve fixed is the uniform tesselation: as the interpolation method is not linear, I need to convert the interpolant variable from what I want to the real one.</p>
<p>For example for the Cubic Hermite interpolation, I&#8217;ve created an array of 100 samples using the control points (-1,0,0,0),(0,0,0,0),(1,0,0,0),(2,0,0,0) with 0&lt;=t &lt;= 1</p>
<p>Then each time I want a certain interpolant value, I do a look up in my samples map to find the closest values and I do a linear interpolation between them.</p>
<p>I&#8217;ve also almost finished the camera which follows the trajectory, it just needs some more testing and a parameter to pick the speed.</p>
<p>I&#8217;m now going to work on the seismic texture generation.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/200/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/200/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/200/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/200/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/200/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/200/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/200/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=200&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2009/12/05/curve-tesselation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>

		<media:content url="http://www.nag.co.uk/industryarticles/fig4%20-%20hermite.jpg" medium="image">
			<media:title type="html">Cubic Hermite vs Cubic spline</media:title>
		</media:content>
	</item>
		<item>
		<title>Lagrange Interpolation problem</title>
		<link>http://anthonybarbier.wordpress.com/2009/12/04/lagrange-interpolation-problem/</link>
		<comments>http://anthonybarbier.wordpress.com/2009/12/04/lagrange-interpolation-problem/#comments</comments>
		<pubDate>Fri, 04 Dec 2009 03:34:02 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=194</guid>
		<description><![CDATA[When I&#8217;m using the method described in this post I get this problem for the following values : (0,0,0),( 702.0997,0,0), (774.2777,-0.2254,-0.0593) with 1&#60;= t &#60; 2 ( 702.0997,0,0), (774.2777,-0.2254,-0.0593) (833.3321,-0.4927,-0.1495) with 0 &#60;= t&#60; 1 I think I understand where the problem comes from : there is a big x variation in the first segment and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=194&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>When I&#8217;m using the method described in <a href="http://anthonybarbier.wordpress.com/2009/11/07/interpolation-of-the-curves/">this post</a> I get this problem for the following values :</p>
<p>(0,0,0),( 702.0997,0,0), (774.2777,-0.2254,-0.0593) with 1&lt;= t &lt; 2</p>
<p>( 702.0997,0,0), (774.2777,-0.2254,-0.0593) (833.3321,-0.4927,-0.1495) with 0 &lt;= t&lt; 1</p>
<p><a href="http://anthonybarbier.files.wordpress.com/2009/12/lagrangeproblem.png"><img class="alignnone size-medium wp-image-195" title="LagrangeProblem" src="http://anthonybarbier.files.wordpress.com/2009/12/lagrangeproblem.png?w=512&#038;h=222" alt="" width="512" height="222" /></a></p>
<p>I think I understand where the problem comes from : there is a big x variation in the first segment and no y variation (that&#8217;s why the curve is not smooth) and also the x variation of the second segment is a lot smaller so the linear interpolation is a lot more influenced by the first segment than the second one, that&#8217;s why the interpolated points pass the control points and then go back to it.</p>
<p>If I&#8217;m right, I don&#8217;t see any way to fix the problem, so tomorrow I&#8217;m going to change the interpolation method and use a quadratic lagrange interpolation instead of 2 cubic + a linear interpolation.</p>
<p><strong>[Edit:] Sorry I have inversed the names: the interpolation I&#8217;m using at the moment is quadratic (3 control points) and I&#8217;m going to move to cubic (4 control points)</strong></p>
<p>Today I&#8217;ve added some basic shading in order to make the borehole look more 3D, I&#8217;ve fixed the aspect ratio problem, the borehole can now be rendered with texture and transparency at the same time (by rendering the back part of the pipe, inversing the culling and rendering the second part). I&#8217;ve also started to implement an orbital camera which moves along the trajectory.</p>
<p>Once I will have finished the camera I&#8217;ll post some more video/pictures.</p>
<p>Links :</p>
<p><a href="http://msdn.microsoft.com/en-us/library/dd318828(VS.85).aspx">face culling</a></p>
<p><a href="http://www.opengl.org/resources/faq/technical/lights.htm">opengl lights and shadows</a></p>
<p><a href="http://glprogramming.com/red/chapter05.html#name5">materials and lights</a></p>
<p><a href="http://www.gamedev.net/community/forums/topic.asp?topic_id=409302">help about setting up a directional light</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/194/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/194/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/194/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/194/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/194/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/194/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/194/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=194&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2009/12/04/lagrange-interpolation-problem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2009/12/lagrangeproblem.png?w=512" medium="image">
			<media:title type="html">LagrangeProblem</media:title>
		</media:content>
	</item>
		<item>
		<title>Generating correct textures coordinates on a cylinder</title>
		<link>http://anthonybarbier.wordpress.com/2009/12/03/generating-correct-textures-coordinates-on-a-cylinder/</link>
		<comments>http://anthonybarbier.wordpress.com/2009/12/03/generating-correct-textures-coordinates-on-a-cylinder/#comments</comments>
		<pubDate>Thu, 03 Dec 2009 11:51:59 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=187</guid>
		<description><![CDATA[I got into some problems to generate correct textures coordinates: when I generate the extremities circles, the textures coordinates along the last segment (between the last and first vertex) are not interpolated correctly, Here is the problem : In order to fix that I&#8217;ve duplicated the first vertex changing its texture coordinates like this: The [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=187&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I got into some problems to generate correct textures coordinates: when I generate the extremities circles, the textures coordinates along the last segment (between the last and first vertex) are not interpolated correctly, Here is the problem :</p>
<p><img class="alignnone size-full wp-image-188" title="xCoordinatesProblem" src="http://anthonybarbier.files.wordpress.com/2009/12/xcoordinatesproblem.png?w=592&#038;h=254" alt="" width="592" height="254" /></p>
<p>In order to fix that I&#8217;ve duplicated the first vertex changing its texture coordinates like this:</p>
<p><img class="alignnone size-full wp-image-189" title="xCoordinatesFixed" src="http://anthonybarbier.files.wordpress.com/2009/12/xcoordinatesfixed.png?w=592&#038;h=229" alt="" width="592" height="229" /></p>
<p>The second problem is quite similar, I store the seismic data in a texture like this:</p>
<p><img class="alignnone size-full wp-image-190" title="boreholeTexture" src="http://anthonybarbier.files.wordpress.com/2009/12/boreholetexture.png?w=584&#038;h=434" alt="" width="584" height="434" /></p>
<p>so between 1023 and 1024 the y textures coordinates needs to go from 0 to 1, and the x ones has to be incremented by the stride value.</p>
<p><img class="alignnone size-full wp-image-191" title="yCoordinatesProblem" src="http://anthonybarbier.files.wordpress.com/2009/12/ycoordinatesproblem.png?w=592&#038;h=298" alt="" width="592" height="298" /></p>
<p>Same method to fix the problem : I duplicate the last circle and change the texture coordinates on it:</p>
<p><img class="alignnone size-full wp-image-192" title="yCoordinatesFixed" src="http://anthonybarbier.files.wordpress.com/2009/12/ycoordinatesfixed.png?w=592&#038;h=267" alt="" width="592" height="267" /></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/187/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/187/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/187/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/187/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/187/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/187/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/187/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/187/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/187/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/187/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/187/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/187/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/187/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/187/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=187&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2009/12/03/generating-correct-textures-coordinates-on-a-cylinder/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2009/12/xcoordinatesproblem.png" medium="image">
			<media:title type="html">xCoordinatesProblem</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2009/12/xcoordinatesfixed.png" medium="image">
			<media:title type="html">xCoordinatesFixed</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2009/12/boreholetexture.png" medium="image">
			<media:title type="html">boreholeTexture</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2009/12/ycoordinatesproblem.png" medium="image">
			<media:title type="html">yCoordinatesProblem</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2009/12/ycoordinatesfixed.png" medium="image">
			<media:title type="html">yCoordinatesFixed</media:title>
		</media:content>
	</item>
		<item>
		<title>Meeting with my supervisor</title>
		<link>http://anthonybarbier.wordpress.com/2009/12/03/meeting-with-my-supervisor-5/</link>
		<comments>http://anthonybarbier.wordpress.com/2009/12/03/meeting-with-my-supervisor-5/#comments</comments>
		<pubDate>Thu, 03 Dec 2009 10:57:30 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=185</guid>
		<description><![CDATA[Today I presented a demo of the project to my supervisor. He fixed my aspect ratio problem : - the field of view angle was too big - the window was not updating the aspect ratio until it was resized. He suggested me a new way to render the borehole so that I have the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=185&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Today I presented a demo of the project to my supervisor.</p>
<p>He fixed my aspect ratio problem :</p>
<p>- the field of view angle was too big</p>
<p>- the window was not updating the aspect ratio until it was resized.</p>
<p>He suggested me a new way to render the borehole so that I have the transparency working with textures:</p>
<p>- I render the back of the pipe (using the culling)</p>
<p>- then I render the front part of it (by inversing the culling)</p>
<p>Also he suggested to add some lighting effect so we see more the cylinder shape.</p>
<p>Things I have to do for next week:</p>
<p>- Fix/improve the camera system : I should move to a trackball camera system. For that I need to find some documentation on it.(I remember there is one implemented in OpenSceneGraph so I&#8217;ll probably start by having a look at osg&#8217;s code).</p>
<p>- Borehole semi transparent rendering with textures + lighting.</p>
<p>- generate seismic texture.</p>
<p>- implement a camera which follows the trajectory</p>
<p>- obj files loading</p>
<p>- updating use cases (I need to put only actions in them)</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/185/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/185/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/185/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/185/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/185/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/185/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/185/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/185/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/185/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/185/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/185/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/185/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/185/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/185/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=185&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2009/12/03/meeting-with-my-supervisor-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>
	</item>
		<item>
		<title>Transparency problem</title>
		<link>http://anthonybarbier.wordpress.com/2009/11/30/transparence-problem/</link>
		<comments>http://anthonybarbier.wordpress.com/2009/11/30/transparence-problem/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 03:38:54 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=179</guid>
		<description><![CDATA[I&#8217;ve added the texture coordinates to the borehole, but I don&#8217;t think it will be possible to use both a texture and the semi transparency at the same time. Links : textures/blending tutorials (code sampler, pyopengl, man glblendfunc, glBlendFunc tutorial) Here is the problem : Note : the half of the borehole near the camera [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=179&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve added the texture coordinates to the borehole, but I don&#8217;t think it will be possible to use both a texture and the semi transparency at the same time.</p>
<p>Links : textures/blending tutorials (<a href="http://www.codesampler.com/oglsrc/oglsrc_3.htm#ogl_alpha_blending_texture">code sampler</a>, <a href="http://pyopengl.sourceforge.net/documentation/manual/glTexEnv.3G.html">pyopengl</a>, <a href="http://www.cs.rutgers.edu/~decarlo/428/gl_man/blendfunc.html">man glblendfunc</a>, <a href="http://www.machwerx.com/2009/02/11/glblendfunc/">glBlendFunc tutorial</a>)</p>
<p>Here is the problem :</p>
<p><a href="http://anthonybarbier.files.wordpress.com/2009/11/transparencyok.png"><img class="alignnone size-medium wp-image-180" title="TransparencyOk" src="http://anthonybarbier.files.wordpress.com/2009/11/transparencyok.png?w=300&#038;h=245" alt="" width="300" height="245" /></a></p>
<p><a href="http://anthonybarbier.files.wordpress.com/2009/11/transparencyproblem.png"><img class="alignnone size-medium wp-image-181" title="TransparencyProblem" src="http://anthonybarbier.files.wordpress.com/2009/11/transparencyproblem.png?w=300&#038;h=245" alt="" width="300" height="245" /></a></p>
<p>Note : the half of the borehole near the camera is blue, the other one is black.</p>
<p>On the first picture the transparency is working fine : the triangles are rendered from back to front. ( Final colour = (buffer combined with the back face of the pipe) combined with the front face of the pipe)</p>
<p>On the second picture I&#8217;ve just rotated a bit the camera and a problem appears : the front triangles are rendered first which means now : Final colour = (buffer combined with the front face) ERASED BY (buffer combined with the back face of the pipe) ==&gt; the front face is now ignored.</p>
<p>I&#8217;ve tried to find some technics, but it seems that semi transparency is still one of the big problem of computer graphics, some progress has been made concerning <a href="http://developer.download.nvidia.com/SDK/10.5/opengl/src/dual_depth_peeling/doc/DualDepthPeeling.pdf">depth peeling</a> but it still is at an early stage.</p>
<blockquote><p>Depth peeling allows us to draw translucent objects in any order, draw intersecting translucent objects, is pixel-level accurate and can be implemented on fairly old hardware. The problem with it is that it’s slow. For every translucent layer that could ever conceivably overlap there needs to be an additional complete geometry pass</p></blockquote>
<p>(<a href="http://www.aorensoftware.com/blog/the-biggest-graphics-problem-you-have-never-heard-of/">source</a>)</p>
<p><a href="http://www.opengl3.org/wiki/Alpha_Blending">http://www.opengl3.org/wiki/Alpha_Blending</a></p>
<p><a href="http://www.realtimerendering.com/blog/hpg-2009-a-closer-look/">http://www.realtimerendering.com/blog/hpg-2009-a-closer-look/</a></p>
<p>However: the problem disappears if I&#8217;m not using a texture (as both of the side of the cylinder has the same colour, it doesn&#8217;t matter which one is rendered first).</p>
<p>So to sum up :</p>
<p>- transparency : only if there is no texture.</p>
<p>- Interactive cutting plane otherwise.</p>
<p>Next thing will be to try to implement the cutting plane. I got a good idea for that: if I render a cylinder and set the culling so that it&#8217;s the outside triangles which are culled, then the graphics card will do all the work for me !</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/179/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/179/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/179/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/179/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/179/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/179/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/179/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=179&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2009/11/30/transparence-problem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2009/11/transparencyok.png?w=300" medium="image">
			<media:title type="html">TransparencyOk</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2009/11/transparencyproblem.png?w=300" medium="image">
			<media:title type="html">TransparencyProblem</media:title>
		</media:content>
	</item>
		<item>
		<title>Use Cases</title>
		<link>http://anthonybarbier.wordpress.com/2009/11/29/use-cases/</link>
		<comments>http://anthonybarbier.wordpress.com/2009/11/29/use-cases/#comments</comments>
		<pubDate>Sun, 29 Nov 2009 16:45:20 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=170</guid>
		<description><![CDATA[Here is the first serie of the use cases. I will create a few more later. I think these ones are enough for understanding the way the API work. There are a list of functions available to do &#8220;low level&#8221; things, and there are some macro functions (the ones in blue) which regroup a list of [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=170&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Here is the first serie of the use cases. I will create a few more later. I think these ones are enough for understanding the way the API work.</p>
<p>There are a list of functions available to do &#8220;low level&#8221; things, and there are some macro functions (the ones in blue) which regroup a list of calls to the low level ones.</p>
<p> The red boxes represent the dependencies to other objects.</p>
<p><a href="http://anthonybarbier.files.wordpress.com/2009/11/usetrajectory.png"><img class="alignnone size-medium wp-image-171" title="UseTrajectory" src="http://anthonybarbier.files.wordpress.com/2009/11/usetrajectory.png?w=300&#038;h=130" alt="" width="300" height="130" /></a>  <a href="http://anthonybarbier.files.wordpress.com/2009/11/useborehole.png"><img class="alignnone size-medium wp-image-172" title="UseBorehole" src="http://anthonybarbier.files.wordpress.com/2009/11/useborehole.png?w=300&#038;h=161" alt="" width="300" height="161" /></a>  <a href="http://anthonybarbier.files.wordpress.com/2009/11/useseismicdata.png"><img class="alignnone size-medium wp-image-173" title="UseSeismicData" src="http://anthonybarbier.files.wordpress.com/2009/11/useseismicdata.png?w=300&#038;h=162" alt="" width="300" height="162" /></a>  <a href="http://anthonybarbier.files.wordpress.com/2009/11/usebha.png"><img class="alignnone size-medium wp-image-174" title="UseBHA" src="http://anthonybarbier.files.wordpress.com/2009/11/usebha.png?w=300&#038;h=161" alt="" width="300" height="161" /></a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/170/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/170/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/170/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/170/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/170/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/170/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/170/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/170/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/170/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/170/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/170/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/170/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/170/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/170/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=170&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2009/11/29/use-cases/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2009/11/usetrajectory.png?w=300" medium="image">
			<media:title type="html">UseTrajectory</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2009/11/useborehole.png?w=300" medium="image">
			<media:title type="html">UseBorehole</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2009/11/useseismicdata.png?w=300" medium="image">
			<media:title type="html">UseSeismicData</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2009/11/usebha.png?w=300" medium="image">
			<media:title type="html">UseBHA</media:title>
		</media:content>
	</item>
		<item>
		<title>Borehole modeling</title>
		<link>http://anthonybarbier.wordpress.com/2009/11/29/borehole-modeling/</link>
		<comments>http://anthonybarbier.wordpress.com/2009/11/29/borehole-modeling/#comments</comments>
		<pubDate>Sun, 29 Nov 2009 01:00:06 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=166</guid>
		<description><![CDATA[I&#8217;ve finished to generate the Borehole : (tutorial about lighting and semi transparency) (click on the picture to see it in full size) I still have 2 problems though : - the aspect ratio is always wrong and I can&#8217;t find out why&#8230; (I&#8217;ll ask my supervisor) - Depth problem / rendering semi transparent objects : in [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=166&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve finished to generate the Borehole : (<a href="http://www3.ntu.edu.sg/home/ehchua/programming/opengl/GL5_Lighting.html">tutorial about lighting and semi transparency</a>)</p>
<p><a href="http://anthonybarbier.files.wordpress.com/2009/11/borehole1.png"><img class="alignnone size-medium wp-image-167" title="Borehole1" src="http://anthonybarbier.files.wordpress.com/2009/11/borehole1.png?w=300&#038;h=150" alt="" width="300" height="150" /></a></p>
<p>(click on the picture to see it in full size)</p>
<p>I still have 2 problems though :</p>
<p>- the aspect ratio is always wrong and I can&#8217;t find out why&#8230; (I&#8217;ll ask my supervisor)</p>
<p>- Depth problem / rendering semi transparent objects : in order to render semi transparent objects the depth test has to be disabled which is why the lines of the back face of the bounding box are in front of the curve. However I&#8217;ve found several ideas about how to fix that : (<a href="http://www.gamedev.net/community/forums/topic.asp?topic_id=489184">gamedev forum</a>) (<a href="http://www.gamedev.net/community/forums/topic.asp?topic_id=443049">gamedev forum 2</a>) (<a href="http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=showflat&amp;Number=260780">opengl forum</a>).</p>
<p>From what I&#8217;ve read real semi transparency is pretty hard and expensive to achieve. However using a few tricks we can get some pretty good results.</p>
<p>The easiest one to implement is to render all the solid objects first and then the semi transparent ones. ==&gt; That&#8217;s what I&#8217;m going to try.</p>
<p>In case the result is still not good enough, I could then sort the semi transparent objects from back to front (using their bounding boxes).</p>
<p>We&#8217;ll see the result of the first technic, but I think the result should be good enough for what we need here : the Borehole is the only object of the scene which is semi transparent, so if I render it last most of the problems should be solved. The only one left would be when you can see two parts of the borehole overlapping (like in the screenshot).</p>
<p>Next : I&#8217;m going to try to fix the problem described above and add the texture coordinates to the borehole (it shouldn&#8217;t be too hard)</p>
<p>I will also ask Maurice some seismic data to map onto the borehole. I still need to do my user cases scenarios.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/166/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/166/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/166/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/166/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/166/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/166/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/166/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/166/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/166/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/166/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/166/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/166/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/166/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/166/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=166&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2009/11/29/borehole-modeling/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2009/11/borehole1.png?w=300" medium="image">
			<media:title type="html">Borehole1</media:title>
		</media:content>
	</item>
		<item>
		<title>Borehole representation</title>
		<link>http://anthonybarbier.wordpress.com/2009/11/27/borehole-representation/</link>
		<comments>http://anthonybarbier.wordpress.com/2009/11/27/borehole-representation/#comments</comments>
		<pubDate>Fri, 27 Nov 2009 23:54:53 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=163</guid>
		<description><![CDATA[I started thinking about the best way of representing the borehole around the trajectory. Here are the data I have to draw it : - a trajectory - a list of  [distance from start/diameter] couples To represent the borehole I&#8217;m going to draw some kind of cylinders (except that the diameter will be different at [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=163&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I started thinking about the best way of representing the borehole around the trajectory.</p>
<p>Here are the data I have to draw it :</p>
<p>- a trajectory</p>
<p>- a list of  [distance from start/diameter] couples</p>
<p>To represent the borehole I&#8217;m going to draw some kind of cylinders (except that the diameter will be different at each extremity of them).</p>
<p>For that I&#8217;m going to need a normal to the curve for each point. To compute it I&#8217;m going to need the tangent to the curve (I&#8217;m going to take the direction from one extremity to the other of the cylinder for that), then I need to take an arbitrary vector which is different from the tangent one, and from the cross product of these two vectors I&#8217;ll get my normal.</p>
<p>&nbsp;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/163/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/163/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/163/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/163/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/163/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/163/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/163/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/163/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/163/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/163/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/163/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/163/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/163/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/163/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=163&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2009/11/27/borehole-representation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>
	</item>
		<item>
		<title>Orbital Camera</title>
		<link>http://anthonybarbier.wordpress.com/2009/11/27/orbital-camera/</link>
		<comments>http://anthonybarbier.wordpress.com/2009/11/27/orbital-camera/#comments</comments>
		<pubDate>Fri, 27 Nov 2009 01:42:19 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=159</guid>
		<description><![CDATA[Camera Implementation The previous orbital camera I had implemented was using a pre translation, a quaternion and another translation. Each frame I was combining the new quaternion with the previous one, and because of the float rounding some inaccuracy was starting to appear after a few frames (especially when the camera was moving a lot). [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=159&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h2>Camera Implementation</h2>
<p>The previous orbital camera I had implemented was using a pre translation, a quaternion and another translation.</p>
<p>Each frame I was combining the new quaternion with the previous one, and because of the float rounding some inaccuracy was starting to appear after a few frames (especially when the camera was moving a lot).</p>
<p>My supervisor recommended me to use polar coordinates (<a href="http://en.citizendium.org/wiki/Spherical_polar_coordinates">site1  </a> , <a href="http://electron9.phys.utk.edu/vectors/3dcoordinates.htm">site 2</a> and <a href="http://blog.tyleregeto.com/?p=89">site3 </a>) instead of a quaternion: I implemented it today and the main problem with the polar coordinates is when you&#8217;re approaching the poles .</p>
<p>When you&#8217;re rotating the model from left to right: you&#8217;re expecting it to rotate around the current camera up axis.</p>
<p> When you&#8217;re at the &#8220;equator&#8221; level, it does that, but when you&#8217;re getting to close from one of the pole it starts rotating around the camera direction axis instead of the up one.</p>
<p>2nd problem : To update the up vector, I compute the new camera position, then I compute the new camera direction, then I compute the rotation to pass from the original direction to the new one, and finally I apply it to the original up vector. And this technic doesn&#8217;t work when the two directions gets almost parallel and opposite. (It does the same as when you&#8217;re trying to rotate the object and the camera is near a pole).</p>
<p>To avoid these two problems I&#8217;ve added some intermediate variables, now I have :</p>
<p>original position, temp position, current position. (same for up,right and direction)</p>
<p>Temp position represent the origina of the current system</p>
<p>Temp up the y axis of the current system, temp right the x axis and temp direction the z axis.</p>
<p>At the start originalPosition = tempPosition.</p>
<p>then I keep combining the polar coordinates but I keep the same temp vectors frame after frame until theta or phi is approaching from PI.</p>
<p>(PI for phi means it&#8217;s getting close from a pole, and PI for theta means it&#8217;s going to start lining up with the original direction)</p>
<p>At this point the current position/up/right/direction become the new origin/axis of the system, I set theta and phi back to PI/2 (which is the &#8220;middle&#8221; of the equator)</p>
<p>This method works perfectly :</p>
<p>- Combining angles is a lot less dangerous than combining quaternions (there are less rounding)</p>
<p>- I don&#8217;t need to combine 3 different matrices anymore : now I have an interest point, a distance from it and two angles.</p>
<h2>Controls</h2>
<p>I moved to more intuitive controls :</p>
<p>arrow keys up &amp; down to zoom in/out</p>
<p>arrow keys left &amp; right to move the interest point to the left/right.</p>
<p>mouse wheel to zoom in/out</p>
<p>maintain left click and move the mouse up/down left/right to rotate around the interest point.</p>
<h2>Moving Scale</h2>
<p>In the 3D software I&#8217;ve used before, the main problem to move in the 3D space is that the &#8220;delta move&#8221; is hardcoded which means : scrolling for ages if your scene is pretty big, or miss all your objects if it&#8217;s small.</p>
<p>To avoid that I decided to use a system of ratio instead of an absolute value : when you zoom in the distance between you and the object is reduced by10%, if you zoom out, it&#8217;s increased by 10%, if you want to move the interest point to the right/left, it will move it of 10% of the distance between the camera and the interest point,etc&#8230;</p>
<p>For the moment it&#8217;s working pretty well : I take the center of the scene bounding box as interest point, and I position the camera so that it can see the whole box, then the user can move around the scene as described above.</p>
<p>I guess the main problem in the future will be to determine what is the point of interest the user is looking at.</p>
<p>&nbsp;</p>
<p>Next : I&#8217;m going to start working on modelising the borehole.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/159/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/159/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/159/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/159/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/159/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/159/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/159/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/159/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/159/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/159/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/159/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/159/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/159/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/159/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=159&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2009/11/27/orbital-camera/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>
	</item>
		<item>
		<title>Meeting with my supervisor</title>
		<link>http://anthonybarbier.wordpress.com/2009/11/26/meeting-with-my-supervisor-4/</link>
		<comments>http://anthonybarbier.wordpress.com/2009/11/26/meeting-with-my-supervisor-4/#comments</comments>
		<pubDate>Thu, 26 Nov 2009 10:55:18 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=156</guid>
		<description><![CDATA[To do list for the coming week : - More UML diagrams (user cases) - Justify the technic used to slow down the application (and try to find a better one if possible) - Orbital camera implementation - Borehole representation &#160;<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=156&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>To do list for the coming week :</p>
<p>- More UML diagrams (user cases)</p>
<p>- Justify the technic used to slow down the application (and try to find a better one if possible)</p>
<p>- Orbital camera implementation</p>
<p>- Borehole representation</p>
<p>&nbsp;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/156/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=156&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2009/11/26/meeting-with-my-supervisor-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>
	</item>
		<item>
		<title>Maths Library / wxWidgets / Mutex / Mouse + Keyboard events / Models</title>
		<link>http://anthonybarbier.wordpress.com/2009/11/26/maths-library-wxwidgets-mutex-mouse-keyboard-events-models/</link>
		<comments>http://anthonybarbier.wordpress.com/2009/11/26/maths-library-wxwidgets-mutex-mouse-keyboard-events-models/#comments</comments>
		<pubDate>Thu, 26 Nov 2009 00:41:55 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=148</guid>
		<description><![CDATA[The Maths library : For the moment I&#8217;m keeping CML, I&#8217;ve found out how to disable the static asserts, so now I can export my template classes. I&#8217;m in touch with the developpers of the library (see this topic), I explained them the problem, and they are going to check to see if it&#8217;s safe [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=148&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h2>The Maths library :</h2>
<p>For the moment I&#8217;m keeping CML, I&#8217;ve found out how to disable the static asserts, so now I can export my template classes. I&#8217;m in touch with the developpers of the library (<a href="http://cmldev.krebsandfriends.org/forums/viewtopic.php?t=275&amp;view=next&amp;sid=298410595595470b24a8b04eff3d6ea5">see this topic</a>), I explained them the problem, and they are going to check to see if it&#8217;s safe or not to remove these static asserts.</p>
<h2>wxWidgets :</h2>
<p>For the moment I still can use only a console application, but I&#8217;m following two threads (<a href="http://wxforum.shadonet.com/viewtopic.php?p=112120#112120">here </a>and <a href="http://wxforum.shadonet.com/viewtopic.php?t=26152&amp;highlight=">here</a>) on wxWidgets in order to fix that. </p>
<h2>Mutex:</h2>
<p>I have a design problem : at the moment I can&#8217;t store thread safe variables inside STL containers because these containers require a valid copy constructor, however I can&#8217;t lock an object if it is constant (as the mutex value needs to be changed). So two solutions to this problem :</p>
<p>- I can create an unsafe accessor, which won&#8217;t use any mutex. This solution would probably work, but it creates a weakness in the variable.</p>
<p>- I could remove the &#8220;constant&#8221; flag from the object using <a href="http://www.cprogramming.com/reference/typecasting/constcast.html">const_cast  </a>in order to lock it. (I didn&#8217;t try it yet, but I&#8217;m not sure it will work as in the link it says the variable still shouldn&#8217;t be modified)</p>
<p>Anyway, for the moment I don&#8217;t really need to use STL containers to store thread safe variables so I will try to find a solution later if I really need to use them.</p>
<h2>Mouse + Keyboard events:</h2>
<p>I&#8217;ve implemented an interface to capture keyboard and mouse events. (<a href="http://wiki.wxwidgets.org/WxGLCanvas">page of wxWidgets wiki about WxGLCanvas</a>)</p>
<h2>Models:</h2>
<p>Today I talked to Maurice, and he provided one model of tool, it&#8217;s in OBJ format, so I&#8217;ll probably need to write a parser for it (but from what I know this file format is pretty easy to parse so it shouldn&#8217;t take long).</p>
<p>Maurice also told me to not waste too much time on the GUI : scientists are more intereted in the features of the API than in the graphics interface.  So I should probably let the GUI for the end if I have some spare time. (and see with my supervisor if I can change my specifications).</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/148/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/148/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/148/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/148/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/148/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/148/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/148/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/148/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/148/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/148/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/148/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/148/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/148/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/148/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=148&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2009/11/26/maths-library-wxwidgets-mutex-mouse-keyboard-events-models/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>
	</item>
		<item>
		<title>Maths Library</title>
		<link>http://anthonybarbier.wordpress.com/2009/11/24/maths-library/</link>
		<comments>http://anthonybarbier.wordpress.com/2009/11/24/maths-library/#comments</comments>
		<pubDate>Tue, 24 Nov 2009 15:51:16 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=145</guid>
		<description><![CDATA[Until now I was using CML for all the maths. This lib had some pretty good advantages : - all the classes are template, which means no DLL or .lib - it can switch from row to column vectors without changing the syntax in the code. Unfortunately CML is using static template asserts in its code, which [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=145&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Until now I was using <a href="http://cmldev.net/">CML</a> for all the maths.</p>
<p>This lib had some pretty good advantages :</p>
<p>- all the classes are template, which means no DLL or .lib</p>
<p>- it can switch from row to column vectors without changing the syntax in the code.</p>
<p>Unfortunately CML is using static template asserts in its code, which makes it impossible to export in a DLL.</p>
<p>So, to fix this problem there are several solutions :</p>
<p>- edit CML code and remove all the asserts : it&#8217;s not a good idea, because CML really rely on these asserts to check the code validity. Removing them could make the library really unstable.</p>
<p>- do a wrapper for the vectors and matrices like I did for the STL containers : it&#8217;s a lot of work, and it will slow down the API.</p>
<p>- change of maths library.</p>
<p>I don&#8217;t want to use a huge maths library, I just need to do some linear algebra. So far <a href="http://eigen.tuxfamily.org/index.php?title=Main_Page">Eigen</a> seems to be the most suitable one. I didn&#8217;t try it yet though, but the syntax seems really clear. The only drawback is it doesn&#8217;t seem to handle row/column vectors.</p>
<p>&nbsp;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/145/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/145/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/145/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/145/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/145/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/145/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/145/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/145/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/145/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/145/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/145/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/145/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/145/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/145/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=145&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2009/11/24/maths-library/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>
	</item>
		<item>
		<title>DataManager / EventManager / ObservedDataManager</title>
		<link>http://anthonybarbier.wordpress.com/2009/11/24/141/</link>
		<comments>http://anthonybarbier.wordpress.com/2009/11/24/141/#comments</comments>
		<pubDate>Tue, 24 Nov 2009 01:54:53 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=141</guid>
		<description><![CDATA[I just realised I didn&#8217;t explain yet how exactly these classes were working :   DataManager: This class is a simple thread safe DataManager : each piece of data is identified by a string. its interface allows to : - register a new piece of data - get a piece of data by specifying its [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=141&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I just realised I didn&#8217;t explain yet how exactly these classes were working :<br />
 <br />
DataManager:</p>
<p>This class is a simple thread safe DataManager : each piece of data is identified by a string.<br />
its interface allows to :</p>
<p>- register a new piece of data<br />
- get a piece of data by specifying its id string.<br />
- check if an ID string has been registered.<br />
DataManager::Data interface :<br />
- get the value<br />
- set the value<br />
Accessing an element in a map which uses strings as ID can be pretty slow, so in order to speed things up, it&#8217;s possible to get a reference directly to the SecureObject.</p>
<p>Example without the reference :</p>
<p>[for each update]</p>
<p>uint widthScreen = DataManager::database().getData&lt;uint&gt;(&#8220;WidthScreen&#8221;);<br />
/* Update aspect ratio here */<br />
 <br />
Example with the reference :</p>
<p>[During the initialization]<br />
DataManager::Data&lt;uint&gt;&amp; widthScreenRef= DataManager::database().getData&lt;uint&gt;(&#8220;WidthScreen&#8221;);<br />
 <br />
[For each update ]<br />
uint widthScreen = widthScreenRef.getValue();<br />
 </p>
<p>EventManager:</p>
<p>This class implements a pretty intuitive thread safe event/callback system, the interface allows to :<br />
- register a new event<br />
- get an event reference<br />
- trigger an event<br />
- add a callback to an existing event<br />
- check if an event exists.<br />
 EventManager::Event interface :<br />
 - trigger event<br />
 - add callback<br />
 <br />
Here is an example of how to use it :</p>
<p>/* register an event which will transmit a &#8220;bool&#8221; value to the callbacks (in this case the boolean won&#8217;t mean anything)*/<br />
eventManager.registerNewEvent&lt;bool&gt;(&#8220;onRender&#8221;);</p>
<p>In the rendering loop :<br />
onRenderEvent.trigger(true);</p>
<p>To add a callback :<br />
class RenderTriangle:public BaseClass<br />
{<br />
 public:<br />
  /* the callback function has to accept the same type of parameter as the event it&#8217;s connected to*/<br />
  void render(const bool&amp;)<br />
  {<br />
   /*draw the triangle here*/<br />
  }<br />
};</p>
<p>[in the code]<br />
RenderTriangle r;<br />
/* Note : you need to pass a pointer to an object and to a method of this object */<br />
/* Also : the class of the callback HAS TO inherit from &#8220;BaseClass&#8221; */<br />
eventManager.addCallback(&#8220;onRender&#8221;,&amp;r,&amp;RenderTriangle::render);</p>
<p>ObservedDataManager<br />
This class is just a combination of the two previous ones: it stores data, and trigger an event when a piece of data is modified.<br />
here is its interface:<br />
- register a new piece of data<br />
- get a piece of data by specifying its id string.<br />
- check if an ID string has been registered.<br />
ObservedDataManager::Data<br />
- get value<br />
- set value<br />
- add callback</p>
<p>For the moment DataManager and ObservedDataManager are singletons because I wanted them to be available from anywhere in the code, but I&#8217;m going to change that because it should be possible for each module to have its own Data Storage which should be independant from the CoreApplication one. So instead of doing a singleton, the CoreManager will contain an instance of both of the Data managers and as the CoreManager is a singleton this means the Data will still be available from anywere in the API.<br />
 </p>
<p>Note : I&#8217;m still hesitating to keep these 3 classes or just keep the ObservedDataManager as it contains the features of both the other classes, but on the other hand it implies a small overhead if you want to use it only to trigger events, or as a simple data manager.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/141/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/141/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/141/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/141/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/141/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/141/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/141/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/141/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/141/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/141/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/141/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/141/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/141/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/141/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=141&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2009/11/24/141/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>
	</item>
		<item>
		<title>Design explanation #1</title>
		<link>http://anthonybarbier.wordpress.com/2009/11/24/design-explanation-1/</link>
		<comments>http://anthonybarbier.wordpress.com/2009/11/24/design-explanation-1/#comments</comments>
		<pubDate>Tue, 24 Nov 2009 00:00:01 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=134</guid>
		<description><![CDATA[I had some design courses back when I was in France, but I didn&#8217;t design something as complex as an API for a while now, so to refresh my memory I read different things on UML and its different kind of diagrams : Class Diagrams Communication diagrams Use case diagrams For the moment I&#8217;m going [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=134&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I had some design courses back when I was in France, but I didn&#8217;t design something as complex as an API for a while now, so to refresh my memory I read different things on UML and its different kind of <a href="http://www.agilemodeling.com/essays/umlDiagrams.htm">diagrams </a>:</p>
<p><a href="http://www.agilemodeling.com/style/classDiagram.htm">Class Diagrams</a></p>
<p><a href="http://www.agilemodeling.com/artifacts/communicationDiagram.htm">Communication diagrams</a></p>
<p><a href="http://www.agilemodeling.com/artifacts/useCaseDiagram.htm">Use case diagrams</a></p>
<p>For the moment I&#8217;m going to mainly use some commented class diagrams to explain my design, and some communication diagrams to describe the way it&#8217;s executed at runtime.</p>
<p>From the specifications : &#8220;the API has to be flexible &#8220;, that&#8217;s why I decided to split it into modules which will communicate with each other using some interfaces. This way all the modules are independant from each other.</p>
<p>But how to split into modules ?</p>
<p>The most obvious way is : one external library = one module. This way if one day we decide to replace a library by another one the only thing to do is to reimplement the interface with the new library. For the moment I&#8217;m using two external libraries : one for the GUI (wxWidgets) and one for the 3D (OpenGL).</p>
<p>Another good thing to do is to group all the platform specific functions in one module. It&#8217;s the same reason here : if one day we decide to make the API compatible with another platform we&#8217;ll only need to reimplement the interface for the new platform.</p>
<p>In order to make the API easier to use for the scientists, I decided to make the core application as a singleton : this way they won&#8217;t have to handle any object, and it&#8217;s also to be sure there is only one instance of the API used at a time. Also the API has to be useable from the GUI, so the fact that the core is a singleton means the GUI can make API calls the same way the user would do programmatically.</p>
<p>So here is the class diagram representing what I just explained :</p>
<p><a href="http://anthonybarbier.files.wordpress.com/2009/11/drivemodules.png"><img class="alignnone size-full wp-image-135" title="DriveModules" src="http://anthonybarbier.files.wordpress.com/2009/11/drivemodules.png?w=891&#038;h=693" alt="" width="891" height="693" /></a> </p>
<p>We now need a way to initialize the core without it knowing which concrete classes are used.  For that I created a factory interface (ICoreFactory), which is responsible for creating a GUI, a 3DEngine and a platform object.</p>
<p>Then a concrete class implementing this interface has to be created for each combination of GUI/3D Engine/Platform.</p>
<p>For the moment this factory is passed as an argument to the CoreManager &#8220;initialize()&#8221; method :</p>
<p><a href="http://anthonybarbier.files.wordpress.com/2009/11/drivecorefactory.png"><img class="alignnone size-full wp-image-136" title="DriveCoreFactory" src="http://anthonybarbier.files.wordpress.com/2009/11/drivecorefactory.png?w=748&#038;h=405" alt="" width="748" height="405" /></a></p>
<p>Two things to notice :</p>
<p>- The factory is responsible for creating the 3 objects which means if we decide to change one of the three objects we need to recreate a factory for the three (which is not normal), this is because I can&#8217;t separate the 3D engine creation from the GUI creation because I need to know which 3D Engine is used in order to initialize wxWidgets properly (it&#8217;s not the same sort of Canvas for OpenGL or Direct3D for example), but I&#8217;ll try to fix that soon ( I think I know how to avoid that)</p>
<p>- The second thing is the syntax used :  Drive.initialize(new WxGraphicsInterface); which is not really clear on wether or not the Core is going to delete the object, and also it&#8217;s contradictory with my &#8220;no need to handle objects&#8221; policy. Mathieu (my housemate) pointed me out a way to avoid this which is described in &#8220;Modern C++ design&#8221;, I&#8217;ll explain it more in details in a next post but basically it consists in creating the factories as singletons which register to the CoreApplication in their constructor. This way we can call them using an ID instead of a pointer.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/134/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/134/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/134/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/134/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/134/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/134/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/134/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/134/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/134/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/134/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/134/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/134/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/134/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/134/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=134&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2009/11/24/design-explanation-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2009/11/drivemodules.png" medium="image">
			<media:title type="html">DriveModules</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2009/11/drivecorefactory.png" medium="image">
			<media:title type="html">DriveCoreFactory</media:title>
		</media:content>
	</item>
		<item>
		<title>Meeting with my supervisor</title>
		<link>http://anthonybarbier.wordpress.com/2009/11/19/meeting-with-my-supervisor-3/</link>
		<comments>http://anthonybarbier.wordpress.com/2009/11/19/meeting-with-my-supervisor-3/#comments</comments>
		<pubDate>Thu, 19 Nov 2009 12:27:40 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=131</guid>
		<description><![CDATA[We talked mainly about the warnings problem and the design : - Doing a wrapper for the STL containers seems to be the best way to export them.. - I need to do more diagrams (use cases,etc) to justify my design. - In order to VBO to work, the machine needs to be compatible with [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=131&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>We talked mainly about the warnings problem and the design :</p>
<p>- Doing a wrapper for the STL containers seems to be the best way to export them..</p>
<p>- I need to do more diagrams (use cases,etc) to justify my design.</p>
<p>- In order to VBO to work, the machine needs to be compatible with OpenGL 2, as my application will probably use only static drawing, my supervisor suggested to use displaylists instead (which makes the application compatible OpenGL 1.1)</p>
<p>Objectives for next week : I need to do the diagrams, keep on migrating things from my prototype solution, start working on the well surface representation.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/131/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/131/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/131/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/131/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/131/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/131/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/131/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/131/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/131/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/131/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/131/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/131/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/131/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/131/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=131&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2009/11/19/meeting-with-my-supervisor-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>
	</item>
		<item>
		<title>OpenGL up and running !</title>
		<link>http://anthonybarbier.wordpress.com/2009/11/19/opengl-up-and-running/</link>
		<comments>http://anthonybarbier.wordpress.com/2009/11/19/opengl-up-and-running/#comments</comments>
		<pubDate>Thu, 19 Nov 2009 03:17:40 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=128</guid>
		<description><![CDATA[Today I worked on the OpenGL integration : I&#8217;ve created a generic interface(with its own enums, types, etc)  for &#8220;I3DEngine&#8221; which means it&#8217;s totally independant from OpenGL or any other 3D engine. Then I created the functions to map this interface data types to OpenGL ones. Finally I have created a generic interface to manage vertex and index [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=128&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Today I worked on the OpenGL integration : I&#8217;ve created a generic interface(with its own enums, types, etc)  for &#8220;I3DEngine&#8221; which means it&#8217;s totally independant from OpenGL or any other 3D engine.</p>
<p>Then I created the functions to map this interface data types to OpenGL ones.</p>
<p>Finally I have created a generic interface to manage vertex and index buffers, and to draw meshes using <a href="http://www.opengl.org/wiki/VBO_-_just_examples">VBO</a>  (The <a href="http://www.opengl.org/sdk/docs/man/xhtml/glBufferData.xml">opengl documentation</a> also helped me)</p>
<p>I also got again problems with the DLL warnings, it&#8217;s really anoying as each time I&#8217;m using a new instance of a template in my dll I need to export it (if I don&#8217;t it will crash when the client will call the function without necesseraly saying from where the error comes from&#8230;). It also means I have to put  export lines at different places in my code (I don&#8217;t think it&#8217;s possible to group them all in one place) which makes my code less readable.</p>
<p>I&#8217;m using <a href="http://glew.sourceforge.net/">glew</a> to load openGL extensions and I had a bit of trouble to initialize it because its header has to be included before any opengl header, and it has to be initialized after opengl which was a bit hard to do as opengl initialization is done by wxGlCanvas and I was not too sure at which point it was done.</p>
<p>Next Step : migrating the curve interpolation functions, and the camera system.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/128/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=128&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2009/11/19/opengl-up-and-running/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>
	</item>
		<item>
		<title>Current design</title>
		<link>http://anthonybarbier.wordpress.com/2009/11/18/current-design/</link>
		<comments>http://anthonybarbier.wordpress.com/2009/11/18/current-design/#comments</comments>
		<pubDate>Wed, 18 Nov 2009 17:33:56 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=121</guid>
		<description><![CDATA[I did a quick UML diagram of the current design of the application : Some explanations : - The classes in the left column (DataManager,etc) are all singletons : they can be accessed from anywhere in the API - An ICoreFactory object is passed to the &#8220;CoreManager&#8221; class, it&#8217;s in charge of creating the platform, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=121&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I did a quick <a href="http://en.wikipedia.org/wiki/Class_diagram">UML diagram </a>of the current design of the application :</p>
<p><a href="http://anthonybarbier.files.wordpress.com/2009/11/drive_design1.png"><img class="alignnone size-full wp-image-122" title="Drive_design1" src="http://anthonybarbier.files.wordpress.com/2009/11/drive_design1.png?w=737&#038;h=530" alt="" width="737" height="530" /></a></p>
<p>Some explanations :</p>
<p>- The classes in the left column (DataManager,etc) are all singletons : they can be accessed from anywhere in the API</p>
<p>- An ICoreFactory object is passed to the &#8220;CoreManager&#8221; class, it&#8217;s in charge of creating the platform, graphics interface, 3d engine which will be then used by the CoreManager.</p>
<p>- CoreManager is for the moment the only interface of the API (see below for a code sample)</p>
<p>- MenuBar is a singleton for the moment, but it&#8217;s not necessary, so I&#8217;m just going to put it inside the AppWx class and provide an interface &#8220;add/remove menu&#8221; through the EventManager.</p>
<p>Code Sample (How to load the trajectory data from a text file):</p>
<p><span style="font-family:monospace;">#include &lt;Drive/CsvTrajectoryParser.h&gt;<br />
#include &lt;Drive/CoreManager.h&gt;<br />
#include &lt;Drive/Types.h&gt;<br />
#include &lt;Drive/Exception.h&gt;<br />
#include &lt;iostream&gt;</span></p>
<p>using namespace drive;</p>
<p>void main()<br />
{<br />
        try<br />
        {<br />
                Drive.parsers.registerTrajectoryParser(&#8220;csv&#8221;,new drive::CsvTrajectoryParser());</p>
<p>                ParametersMap param;<br />
                FloatArray floatArray;<br />
                Drive.parsers.loadTrajectoryFile(&#8220;data/Cupiagua_surveys.csv&#8221;,floatArray,param);<br />
                //param is a map&lt;String,String&gt; it now contains some information concerning the file:<br />
                //Number of points / Number of components per point / unit for each column / name for each column<br />
                <br />
                while(Drive.update())<br />
                {<br />
                        //main loop<br />
                }<br />
        }<br />
        catch(Exception&amp; e)<br />
        {<br />
                std::cout&lt;&lt;&#8221;EXCEPTION :&#8221;&lt;&lt; e.what()&lt;&lt;std::endl;<br />
                system(&#8220;pause&#8221;);<br />
        }</p>
<p>}</p>
<p>Note :   it&#8217;s just an example, in the future the csv parser will automatically be registered, and it will be possible to do something like LoadAndDisplayTrajectory(filename) without having to deal with the param and floatArray.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/121/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/121/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/121/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/121/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/121/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/121/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/121/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=121&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2009/11/18/current-design/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2009/11/drive_design1.png" medium="image">
			<media:title type="html">Drive_design1</media:title>
		</media:content>
	</item>
		<item>
		<title>Warnings : episode 2</title>
		<link>http://anthonybarbier.wordpress.com/2009/11/18/warnings-episode-2/</link>
		<comments>http://anthonybarbier.wordpress.com/2009/11/18/warnings-episode-2/#comments</comments>
		<pubDate>Wed, 18 Nov 2009 03:21:16 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=115</guid>
		<description><![CDATA[Actually the warnings I was talking about previously are a lot more serious than I expected : all the variables generating a warning are corrupting the memory heap when they are accessed from outside the DLL (ie the main application). Which means : - this doesn&#8217;t concern private objects which can never be accessed from [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=115&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Actually the warnings I was talking about previously are a lot more serious than I expected : all the variables generating a warning are corrupting the memory heap when they are accessed from outside the DLL (ie the main application). Which means :</p>
<p>- this doesn&#8217;t concern private objects which can never be accessed from outside their parent class. ==&gt; in these cases the warning can be disabled because there is no risk of corruption  (<a href="http://msdn.microsoft.com/en-us/library/2c8f766e(VS.80).aspx">how to disable a warning locally</a>)</p>
<p>- in the other cases the classes have to be exported. In the case of std::string I managed to export it :</p>
<div><span style="color:#0000ff;font-size:xx-small;"><span style="color:#0000ff;font-size:xx-small;"><span style="color:#0000ff;font-size:xx-small;"><span style="color:#0000ff;font-size:xx-small;">class </span></span></span></span><span style="color:#0000ff;font-size:xx-small;"><span style="color:#0000ff;font-size:xx-small;"><span style="color:#0000ff;font-size:xx-small;"><span style="color:#0000ff;font-size:xx-small;"><span style="color:#0000ff;font-size:xx-small;"><span style="font-size:xx-small;">DLL_export std::_String_base;</span></span></span></span></span></span></div>
<div><span style="color:#0000ff;font-size:xx-small;"><span style="color:#0000ff;font-size:xx-small;"><span style="color:#0000ff;font-size:xx-small;"><span style="color:#0000ff;font-size:xx-small;"></span></span></span></span><span style="color:#0000ff;font-size:xx-small;"><span style="color:#0000ff;font-size:xx-small;"><span style="color:#0000ff;font-size:xx-small;"><span style="color:#0000ff;font-size:xx-small;">template <span style="color:#0000ff;font-size:xx-small;"><span style="color:#0000ff;font-size:xx-small;"><span style="color:#0000ff;font-size:xx-small;"><span style="color:#0000ff;font-size:xx-small;"><span style="color:#0000ff;font-size:xx-small;"><span style="color:#0000ff;font-size:xx-small;">class</span></span><span style="font-size:xx-small;"> DLL_export std::allocator&lt;</span><span style="color:#0000ff;font-size:xx-small;"><span style="color:#0000ff;font-size:xx-small;">char</span></span><span style="font-size:xx-small;">&gt;;</span></span></span></span></span></span></span></span></span></div>
<div><span style="color:#0000ff;font-size:xx-small;"><span style="color:#0000ff;font-size:xx-small;"><span style="color:#0000ff;font-size:xx-small;"><span style="color:#0000ff;font-size:xx-small;">template </span></span></span></span><span style="color:#0000ff;font-size:xx-small;"><span style="color:#0000ff;font-size:xx-small;"><span style="color:#0000ff;font-size:xx-small;"><span style="color:#0000ff;font-size:xx-small;"><span style="color:#0000ff;font-size:xx-small;"><span style="color:#0000ff;font-size:xx-small;">class</span></span><span style="font-size:xx-small;"> DLL_export std::basic_string&lt;</span><span style="color:#0000ff;font-size:xx-small;"><span style="color:#0000ff;font-size:xx-small;">char</span></span><span style="font-size:xx-small;">, std::char_traits&lt;</span><span style="color:#0000ff;font-size:xx-small;"><span style="color:#0000ff;font-size:xx-small;">char</span></span><span style="font-size:xx-small;">&gt;, std::allocator&lt;</span><span style="color:#0000ff;font-size:xx-small;"><span style="color:#0000ff;font-size:xx-small;">char</span></span><span style="font-size:xx-small;">&gt; &gt;;</span></span></span></span></span></div>
<p>However for std::vector and std::map they both depend of too many template classes, so I preferred to do a wrapper for both of them (<a href="http://www.abstraction.net/content/articles/stl%20and%20dlls.htm">source</a> Note: in the source they say the article is obsolete for the versions of Visual Studio superior to 5.0, but as I got the problem described in the article I&#8217;m not too sure what it means)</p>
<p>Today I&#8217;ve also added the &#8220;Parser Manager&#8221; to the API, and I&#8217;ve implemented the csv parser to load the trajectories.</p>
<p>Next thing to do : integrate the curve generation and the camera system from the previous solution. I also need to create a first UML graph in order to have a more global view of my current design</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/115/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=115&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2009/11/18/warnings-episode-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>
	</item>
		<item>
		<title>Warning  C4275 / C4251</title>
		<link>http://anthonybarbier.wordpress.com/2009/11/17/warning-c4275-c4251/</link>
		<comments>http://anthonybarbier.wordpress.com/2009/11/17/warning-c4275-c4251/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 14:09:23 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=110</guid>
		<description><![CDATA[Warning 1 warning C4275: non dll-interface class &#8216;&#60;class&#62;&#8217; used as base for dll-interface class &#8216;&#60;class&#62;&#8217; &#60;file&#62; Warning 2 warning C4251: &#8216;&#60;class&#62;&#8217;: class &#8216;&#60;class&#62;&#8217; needs to have dll-interface to be used by clients of class &#8216;&#60;class&#62;&#8217; &#60;file&#62; I have lots (~50) of both these warnings when I compile. From what I understand it&#8217;s because I export some classes which depend [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=110&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Warning 1 warning<a href="http://msdn.microsoft.com/en-us/library/3tdb471s(VS.80).aspx"> C4275</a>: non dll-interface class &#8216;&lt;class&gt;&#8217; used as base for dll-interface class &#8216;&lt;class&gt;&#8217; &lt;file&gt;<br />
Warning 2 warning<a href="http://msdn.microsoft.com/en-us/library/esew7y1w(VS.80).aspx"> C4251</a>: &#8216;&lt;class&gt;&#8217;: class &#8216;&lt;class&gt;&#8217; needs to have dll-interface to be used by clients of class &#8216;&lt;class&gt;&#8217; &lt;file&gt;</p>
<p>I have lots (~50) of both these warnings when I compile. From what I understand it&#8217;s because I export some classes which depend from classes which are not exported.</p>
<p>The problem is I can&#8217;t export template classes, I can only export instances of them. So according to this <a href="http://support.microsoft.com/default.aspx?scid=KB;EN-US;168958">link</a>, I should export all the different instances of template I&#8217;m using.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/110/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/110/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/110/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/110/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/110/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/110/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/110/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/110/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/110/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/110/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/110/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/110/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/110/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/110/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=110&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2009/11/17/warning-c4275-c4251/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>
	</item>
		<item>
		<title>Bug Fixed !</title>
		<link>http://anthonybarbier.wordpress.com/2009/11/17/bug-fixed/</link>
		<comments>http://anthonybarbier.wordpress.com/2009/11/17/bug-fixed/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 13:16:13 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=107</guid>
		<description><![CDATA[After spending most of last night on this bug I&#8217;m glad to announce it has been fixed ! The cause was not a wxAUI bug, but more a weird design choice : the docking event is triggered by the &#8220;onIdle&#8221;  evebt (I would have thought it would be triggered by &#8221;onMouseUp&#8221;&#8230;) . And as I was [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=107&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>After spending most of last night on this bug I&#8217;m glad to announce it has been fixed !</p>
<p>The cause was not a wxAUI bug, but more a weird design choice : the docking event is triggered by the &#8220;onIdle&#8221;  evebt (I would have thought it would be triggered by &#8221;onMouseUp&#8221;&#8230;) .</p>
<p>And as I was manually handling the event loop I was never sending &#8220;onIdle&#8221; events&#8230;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/107/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/107/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/107/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/107/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/107/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/107/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/107/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=107&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2009/11/17/bug-fixed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>
	</item>
		<item>
		<title>A few Problems.</title>
		<link>http://anthonybarbier.wordpress.com/2009/11/17/a-few-problems/</link>
		<comments>http://anthonybarbier.wordpress.com/2009/11/17/a-few-problems/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 12:29:18 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=104</guid>
		<description><![CDATA[At the moment my main problem is wxAUI (this is the module which manages the floating toolboxes): when used inside a DLL a toolbox which has been detached at one point won&#8217;t dock again. (all the rest works fine : the toolboxes are initialized at the right position, it&#8217;s possible to close and reopen them, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=104&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>At the moment my main problem is wxAUI (this is the module which manages the floating toolboxes): when used inside a DLL a toolbox which has been detached at one point won&#8217;t dock again. (all the rest works fine : the toolboxes are initialized at the right position, it&#8217;s possible to close and reopen them, it&#8217;s possible to detach them, when I move a toolbox over a position where it could potentially dock the &#8220;shadow&#8221; is displayed correctly)</p>
<p>So for the moment I&#8217;m trying to recompile by myself the wxAui library and to link it directly to my project in order to debug it myself, but another problem is that the only Visual Studio solution provided is a VS6&#8230;</p>
<p>I&#8217;ll also fill a bug report on the wxwidgets tracker.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/104/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/104/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/104/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/104/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/104/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/104/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/104/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=104&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2009/11/17/a-few-problems/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>
	</item>
		<item>
		<title>A few links</title>
		<link>http://anthonybarbier.wordpress.com/2009/11/16/a-few-links/</link>
		<comments>http://anthonybarbier.wordpress.com/2009/11/16/a-few-links/#comments</comments>
		<pubDate>Mon, 16 Nov 2009 12:26:39 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=102</guid>
		<description><![CDATA[Just a post to give a few links I&#8217;ve used in the past few days : Boost multi threading / mutex : http://www.ddj.com/cpp/184401518?pgno=3 Dllimport /Dllexport : http://wiki.tcl.tk/8721 Detecting memory leaks : http://msdn.microsoft.com/en-us/library/w2fhc9a3(VS.71).aspx Help on the wxAuiManager (panel manager) : http://www.twinforms.com/forum/viewtopic.php?id=69 and http://docs.wxwidgets.org/stable/wx_wxauimanager.html Now I have a working wxWidgets window, with a &#8220;PanelManager&#8221; which is used to register [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=102&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Just a post to give a few links I&#8217;ve used in the past few days :</p>
<p>Boost multi threading / mutex : <a href="http://www.ddj.com/cpp/184401518?pgno=3">http://www.ddj.com/cpp/184401518?pgno=3</a></p>
<p>Dllimport /Dllexport : <a href="http://wiki.tcl.tk/8721">http://wiki.tcl.tk/8721</a></p>
<p>Detecting memory leaks : <a href="http://msdn.microsoft.com/en-us/library/w2fhc9a3(VS.71).aspx">http://msdn.microsoft.com/en-us/library/w2fhc9a3(VS.71).aspx</a></p>
<p>Help on the wxAuiManager (panel manager) : <a href="http://www.twinforms.com/forum/viewtopic.php?id=69">http://www.twinforms.com/forum/viewtopic.php?id=69</a> and <a href="http://docs.wxwidgets.org/stable/wx_wxauimanager.html">http://docs.wxwidgets.org/stable/wx_wxauimanager.html</a></p>
<p>Now I have a working wxWidgets window, with a &#8220;PanelManager&#8221; which is used to register some floating toolboxes, and to display/hide them.</p>
<p>Now I need to integrate OpenGL in the wx window. But I need to separate as much as possible OpenGL from wx, in case in the future OpenGL would be replaced by another rendering engine, or wx would be replaced by another GUI.</p>
<p>OpenGL integration : <a href="http://wiki.wxwidgets.org/WxGLCanvas">http://wiki.wxwidgets.org/WxGLCanvas</a></p>
<p>DirectX integration : <a href="http://www.gamedev.net/community/forums/topic.asp?topic_id=500976">http://www.gamedev.net/community/forums/topic.asp?topic_id=500976</a> (just used as a reference to see the differences)</p>
<p>Also, concerning my last post: I managed to improve the error given by visual studio when I forget the &#8216;&amp;&#8217; sign, now it&#8217;s possible to get a meaningful error :</p>
<p><span style="color:#008000;font-size:xx-small;"><span style="color:#008000;font-size:xx-small;"><span style="font-family:monospace;"><span style="color:#888888;">ImpossibleToCopy&lt;SecureObject&gt; c;</span><br />
 /*      You are not allowed to create a copy of this object !<br />
  *      Are you sure you didn&#8217;t want to create a reference<br />
  *      and you forgot the &#8216;&amp;&#8217; ?<br />
  */</span></span></span></p>
<p>And also it indicates the line of the user code which causes this error.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/102/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/102/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/102/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/102/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/102/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/102/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/102/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=102&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2009/11/16/a-few-links/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>
	</item>
		<item>
		<title>&#8220;slowing down&#8221; the application</title>
		<link>http://anthonybarbier.wordpress.com/2009/11/15/slowing-down-the-application/</link>
		<comments>http://anthonybarbier.wordpress.com/2009/11/15/slowing-down-the-application/#comments</comments>
		<pubDate>Sun, 15 Nov 2009 17:45:41 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=95</guid>
		<description><![CDATA[My supervisor noticed my application was taking 50% of the processor even when there was no computation, because it was refreshing the window all the time. To fix that, I decided to limit the refresh rate to the screen frequency. (I found how to detect the screen frequency : Here ) _delta = CLOCKS_PER_SEC / refreshRate; [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=95&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><!--StartFragment-->My supervisor noticed my application was taking 50% of the processor even when there was no computation, because it was refreshing the window all the time.</p>
<p>To fix that, I decided to limit the refresh rate to the screen frequency. (I found how to detect the screen frequency : <a href="http://www.news2news.com/vfp/?example=374&amp;ver=vcpp">Here</a> )</p>
<div><span style="font-family:monospace;">_delta = CLOCKS_PER_SEC / refreshRate;<br />
MSG     msg; // Windows Message Structure<br />
// Is There A Message Waiting?<br />
while(!_stopApplication)<br />
{<br />
   if (PeekMessage(&amp;msg,NULL,0,0,PM_REMOVE))<br />
</span>   <span style="font-family:monospace;">  {<br />
     &#8230; process message &#8230;</span></div>
<div><span style="font-family:monospace;">    }<br />
    else// If There Are No Messages<br />
    {<br />
      clock_t now = clock();<br />
      if(difftime(now, _lastFrame) &lt; _delta)<br />
      {<br />
         Sleep(_lastFrame + _delta &#8211; now);<br />
      }<br />
      _lastFrame = now;<br />
      &#8230; send refresh message &#8230;<br />
     }</span></div>
<div><span style="font-family:monospace;">}</span></div>
<div> </div>
<div>For the moment it works fine like this, but I didn&#8217;t create any opengl window yet.</div>
<div> </div>
<div>Note : concerning the previous post : I confirm it&#8217;s not possible to change a reference once it has been assigned : <a href="http://www.parashift.com/c++-faq-lite/references.html#faq-8.5">source</a></div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/95/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=95&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2009/11/15/slowing-down-the-application/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>
	</item>
		<item>
		<title>Core classes</title>
		<link>http://anthonybarbier.wordpress.com/2009/11/15/core-classes/</link>
		<comments>http://anthonybarbier.wordpress.com/2009/11/15/core-classes/#comments</comments>
		<pubDate>Sun, 15 Nov 2009 17:28:27 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=92</guid>
		<description><![CDATA[I&#8217;ve started to write some of the core classes.  So far I&#8217;ve created an EventManager class,a DataManager class and a ObservedDataManager class. &#160; EventManager:  This is an event library, basically the modules can register some events in the application, or register some callbacks to some existing ones.  Each time one event is triggered all the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=92&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><!--StartFragment-->I&#8217;ve started to write some of the core classes.</p>
<p> So far I&#8217;ve created an EventManager class,a DataManager class and a ObservedDataManager class.</p>
<p>&nbsp;</p>
<p>EventManager:</p>
<p> This is an event library, basically the modules can register some events in the application, or register some callbacks to some existing ones.</p>
<p> Each time one event is triggered all the corresponding callbacks are called.</p>
<p> Each event is identified by a string, but it&#8217;s possible to store a reference to the event to speed up the access.</p>
<p>&nbsp;</p>
<p>DataManager:</p>
<p>This class handle all kind of data, and make it available to all the modules.</p>
<p>Each piece of data is identified by a string, and it&#8217;s also possible to store a reference to the data to speed up the access.</p>
<p>&nbsp;</p>
<p>ObservedDataManager:</p>
<p>This class is a fusion of both of the previous ones : some piece of data is stored, it&#8217;s possible to access using its string id, but an event is also triggered each time its value is modified.</p>
<p>&nbsp;</p>
<p>These three classes are thread safe, and they are all singletons, but it&#8217;s also possible to create another instance of them locally.</p>
<p>I&#8217;ve created them as singletons so they can be accessed from anywhere in the API. (not to limit there number). With this design it&#8217;s like having all the data as global, which can be dangerous as any module can have access to it, but on the other hand it keeps the API very flexible. When I was on placement, it happened quite ofter that I was stuck to implement something because the API didn&#8217;t let me access the data I needed at this place of the API. I could improve the security by limiting the number of classes which can trigger an event or modify a data and let read access to everybody, but I&#8217;m not sure yet if it&#8217;s worth it.</p>
<p>Also I hesitate to keep both DataManager and ObservedDataManager classes, because they are very similar, but the Observed version implied an overhead (an eventManager is created for each piece of data, and an event is triggered each time the value changes).</p>
<p>The last thing is not a technical problem, it&#8217;s just I don&#8217;t like the syntax to access the data/events: as I want to prevent the user from deleting registered events, I have to return a reference and make the constructor/destructor private.</p>
<p> <span style="font-size:xx-small;">ObservedDataManager::Data&lt;uint&gt;&amp; refreshRate = ObservedDataManager::database().getData&lt;uint&gt;(&#8220;</span><span style="color:#a31515;font-size:xx-small;">ApplicationRefreshRate&#8221;</span><span style="font-size:xx-small;">);</span></p>
<p>But if I forget to create &#8220;refreshRate&#8221; as a reference, it won&#8217;t compile as there is no constructor available (which is probably a good thing), but the error message produced is really obscure:</p>
<div><span style="font-family:monospace;">include\boost\thread\win32\shared_mutex.hpp(561) : error C2248: &#8216;boost::noncopyable_::noncopyable::noncopyable&#8217; : cannot access private member declared in class &#8216;boost::noncopyable_::noncopyable&#8217;</span></div>
<p>Note: it doesn&#8217;t even say from which of my file/line the error comes from.</p>
<p>The second problem with references is that they have to be initialised at the construction and can&#8217;t be changed later (at least I didn&#8217;t find how)</p>
<p>Instead of references I could use pointers: I can modify them at any moment,but the problem with pointers is that the overloaded operators become useless.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/92/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/92/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/92/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/92/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/92/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/92/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/92/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=92&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2009/11/15/core-classes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>
	</item>
		<item>
		<title>Design : First draft</title>
		<link>http://anthonybarbier.wordpress.com/2009/11/13/design-first-draft/</link>
		<comments>http://anthonybarbier.wordpress.com/2009/11/13/design-first-draft/#comments</comments>
		<pubDate>Fri, 13 Nov 2009 23:21:29 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=86</guid>
		<description><![CDATA[I have spent the past 2 days reading &#8220;Modern C++ Design&#8221; written by Andrei Alexandrescu, I have also started to think about a design. Here is the first draft of it : Two threads : One to display (GUI + OpenGL) and a secondary one to do all the computations (File loading, interpolation,etc). Like this, even if [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=86&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I have spent the past 2 days reading &#8220;Modern C++ Design&#8221; written by Andrei Alexandrescu, I have also started to think about a design. Here is the first draft of it :</p>
<p><a href="http://anthonybarbier.files.wordpress.com/2009/11/design_1.png"><img class="alignnone size-full wp-image-87" title="Design_1" src="http://anthonybarbier.files.wordpress.com/2009/11/design_1.png?w=469&#038;h=560" alt="Design_1" width="469" height="560" /></a></p>
<p>Two threads : One to display (GUI + OpenGL) and a secondary one to do all the computations (File loading, interpolation,etc). Like this, even if the application is performing intensive computations, the user remains in control: the UI doesn&#8217;t freeze, he can cancel the computations if it takes too much time for example.)</p>
<p>The two threads are synchronized using an event system: each thread can register some events and some callbacks.</p>
<p>So far I&#8217;ve created a template Event system.</p>
<p>Now I need to make it thread safe. I&#8217;m probably going to use the Boost library for the threads and mutex management.</p>
<p>Today I also compiled WxWidgets for windows (there is no existing binaries), I got a lot of trouble to do it because there is no existing solution for Visual Studio 2008 and of course the existing solutions can&#8217;t be converted.</p>
<p>So I had to edit an existing batch files, and tweak it so it uses the VS2008 compiler. After several tries I finally managed to get the static debug and the DLL release libraries generated (not the other ones so far&#8230;)</p>
<p>Another problem I got is that WxWidgets is using a single Macro to register the window/initialize the api/ initialize the window/ run the application, and it doesn&#8217;t return until the window is closed.Also the macro is generating automatically the &#8220;main&#8221; function of the application, this system is quite handy when you&#8217;re writing a window application but definitely not when you&#8217;re writing an API: I can&#8217;t let the GUI handled the main function, because it would means it is aware of the whole architecture of the API and to do the communication between the modules, and it would also mean it would be almost impossible to change the GUI used in the future.</p>
<p>After a lot of tests and research on internent I finally managed to create a wxWindow from a console application and to manage the message queue of the window by myself (which means the window is no longer blocking a thread until the end of its execution). The problem is I can&#8217;t make it work in a window based application (without the console).</p>
<p>However, after some more research, I managed to make it work as a DLL library, which is perfect as this will be the final type of the API.</p>
<p>Now I&#8217;m going to work on the mutex, and start to implement the design I&#8217;ve described. I also need to find out how I&#8217;m going to store the different kind of data in the shared memory.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/86/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=86&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2009/11/13/design-first-draft/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2009/11/design_1.png" medium="image">
			<media:title type="html">Design_1</media:title>
		</media:content>
	</item>
		<item>
		<title>WxWidgets</title>
		<link>http://anthonybarbier.wordpress.com/2009/11/12/wxwidgets/</link>
		<comments>http://anthonybarbier.wordpress.com/2009/11/12/wxwidgets/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 15:53:26 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=64</guid>
		<description><![CDATA[I decided to use WxWidgets for the GUI because it&#8217;s multi platform, and on each platform it&#8217;s using the native libraries of the system, which means the application will always graphically looks like a native application: Windows XP  Mac OS        GTK (linux) Also, my API will be used by very different people, some of them [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=64&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I decided to use WxWidgets for the GUI because it&#8217;s multi platform, and on each platform it&#8217;s using the native libraries of the system, which means the application will always graphically looks like a native application:</p>
<p><a href="http://anthonybarbier.files.wordpress.com/2009/11/wxmsw_main.png"><img class="size-medium wp-image-66   alignleft" title="wxMSW_main" src="http://anthonybarbier.files.wordpress.com/2009/11/wxmsw_main.png?w=300&#038;h=217" alt="wxMSW_main" width="300" height="217" /></a></p>
<p>Windows XP</p>
<p><a href="http://anthonybarbier.files.wordpress.com/2009/11/wxosx_main.png"><img class="alignnone size-medium wp-image-67" title="wxOSX_main" src="http://anthonybarbier.files.wordpress.com/2009/11/wxosx_main.png?w=300&#038;h=192" alt="wxOSX_main" width="300" height="192" /></a> Mac OS    </p>
<p> <a href="http://anthonybarbier.files.wordpress.com/2009/11/wxgtk_main.png"><img class="alignnone size-medium wp-image-68" title="wxGTK_main" src="http://anthonybarbier.files.wordpress.com/2009/11/wxgtk_main.png?w=300&#038;h=199" alt="wxGTK_main" width="300" height="199" /></a>  GTK (linux)</p>
<p>Also, my API will be used by very different people, some of them will be comfortable with programming and will probably want a very minimalist window, and some others will prefer to use menus instead of typing commands, which means it should be easy to show/hide toolbars, and for that WxWidgets is perfect as it&#8217;s using a system of floating toolboxes that you can show/hide, resize, dock or separate from the main window.</p>
<p>Here is a small demo application I have written to show the floating toolboxes :</p>
<object width="425" height="334"><param name="movie" value="http://www.dailymotion.com/swf/xb4in2"></param><param name="allowfullscreen" value="true"></param><param name="wmode" value="opaque"></param><embed src="http://www.dailymotion.com/swf/xb4in2" width="425" height="334" allowfullscreen="true" wmode="opaque"></embed></object>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/64/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=64&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2009/11/12/wxwidgets/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2009/11/wxmsw_main.png?w=300" medium="image">
			<media:title type="html">wxMSW_main</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2009/11/wxosx_main.png?w=300" medium="image">
			<media:title type="html">wxOSX_main</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2009/11/wxgtk_main.png?w=300" medium="image">
			<media:title type="html">wxGTK_main</media:title>
		</media:content>
	</item>
		<item>
		<title>Meeting with my supervisor</title>
		<link>http://anthonybarbier.wordpress.com/2009/11/12/meeting-with-my-supervisor/</link>
		<comments>http://anthonybarbier.wordpress.com/2009/11/12/meeting-with-my-supervisor/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 11:41:25 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=60</guid>
		<description><![CDATA[Today I showd my supervisor what I had done so far (curve interpolation, camera system, zoom function) he suggested that I : - change my &#8220;ObjectCamera&#8221; so it uses polar coordinates - start to use more intuitive commands to move in the world (instead of the &#8220;FPS Keys&#8221; I&#8217;m using now, which are not intuitive at all) - get [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=60&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Today I showd my supervisor what I had done so far (curve interpolation, camera system, zoom function)</p>
<p>he suggested that I :</p>
<p>- change my &#8220;ObjectCamera&#8221; so it uses polar coordinates</p>
<p>- start to use more intuitive commands to move in the world (instead of the &#8220;FPS Keys&#8221; I&#8217;m using now, which are not intuitive at all)</p>
<p>- get rid of GLUT now, and start to directly use the GUI.</p>
<p>- also implement a zoom which only requires to click instead of drawing a rectangle.</p>
<p>- display some information about the selected point</p>
<p>- should be able to also select a point which is not a control point.</p>
<p>Bugs to fix :</p>
<p>- The aspect ratio is wrong.</p>
<p>- Camera zoom problem.</p>
<p>- The application is using too much CPU (It&#8217;s because GLUT is refreshing the screen all the time, once I will have moved to a real GUI it shouldn&#8217;t happen anymore.)</p>
<p>What I&#8217;m going to do for next week :</p>
<p>- change the camera system. (It should also fix my zoom problem) and the commands to move in the world.<br />
- choose a GUI Library, explain why and start to use it.</p>
<p>I also need to contact Maurice to know :</p>
<p>- if he wants to be able to change the colour of the curve and/or which colour they are generally using.</p>
<p>- if the control points should be displayed or not. (if yes at which size)</p>
<p>- which information he wants to be displayed about the selected point. (distance from the top, 3D coordinated,etc)</p>
<p>- what are the commands used in the other software he is using (and if he thinks they could be improved and how)</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/60/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=60&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2009/11/12/meeting-with-my-supervisor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>
	</item>
		<item>
		<title>Cameras</title>
		<link>http://anthonybarbier.wordpress.com/2009/11/07/cameras/</link>
		<comments>http://anthonybarbier.wordpress.com/2009/11/07/cameras/#comments</comments>
		<pubDate>Sat, 07 Nov 2009 02:20:11 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=52</guid>
		<description><![CDATA[So far, I have two working cameras : - a First Person one : you can go forward / backward, right/ left, up/down and rotate the view with the mouse. - an object manipulation one (I don&#8217;t know what is the name of this kind of camera) : you can move the object forward/backward, right/left [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=52&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>So far, I have two working cameras :</p>
<p>- a First Person one : you can go forward / backward, right/ left, up/down and rotate the view with the mouse.</p>
<p>- an object manipulation one (I don&#8217;t know what is the name of this kind of camera) : you can move the object forward/backward, right/left and rotate it with the mouse.</p>
<p>I also tried to implement a zoom : basically my idea was to draw a rectangle on the screen with the mouse and to zoom in to that region.</p>
<p>For the moment it doesn&#8217;t work at all, I think I understand why but I don&#8217;t really see how to fix the problem.</p>
<p>Here is the idea :</p>
<p>we move forward the area selected on the screen until that area is as big as the current near plan. I won&#8217;t detail all the computations, but roughly here is what I do :</p>
<ul>
<li>I compute the distance between the actual near plan and the new one</li>
<li>using some trigonometry I compute the vector along which I should move the camera in order to have the camera centered in the middle of the new near plan.</li>
</ul>
<p>Here are the problems:</p>
<p><a href="http://anthonybarbier.files.wordpress.com/2009/11/zoomrectangle.png"><img class="alignnone size-medium wp-image-53" title="zoomRectangle" src="http://anthonybarbier.files.wordpress.com/2009/11/zoomrectangle.png?w=240&#038;h=300" alt="zoomRectangle" width="240" height="300" /></a></p>
<p><a href="http://anthonybarbier.files.wordpress.com/2009/11/zoomdistancebetweenplans1.png"><img title="zoomDistanceBetweenPlans" src="http://anthonybarbier.files.wordpress.com/2009/11/zoomdistancebetweenplans1.png?w=300&#038;h=29" alt="zoomDistanceBetweenPlans" width="300" height="29" /></a><a href="http://anthonybarbier.files.wordpress.com/2009/11/zoomdistancebetweenplans.png"></a></p>
<p>with xRec the width in pixels of the rectangle drawn</p>
<p>If I take xResolution = 1200, dNearPlan = 1, and I draw a rectangle of 100px on the screen : it will make move the camera forward of only 16 whereas the scale of the world is a lot bigger.</p>
<p>Also there is a second problem : if I tweak the near plan so that the camera moves over a bigger distance, it won&#8217;t move in the correct direction because the direction computation is not accurate enough (there are only &#8216;xResolution&#8217; values possible for the &#8216;x&#8217; of the direction, which is definitely not enough to move over a big distance.</p>
<p>The ideas I got to try to fix the problem :</p>
<p>- to tweak the near plan =&gt; I tried it, and it doesn&#8217;t work because of the direction inaccuracy.</p>
<p>- to tweak the field of view angle =&gt; it will improve a bit the direction accuracy but not enough.</p>
<p>- instead of drawing rectangle, the selection could be done by only clicking on an object.</p>
<p>Problems : how to find the object on which the user clicked :</p>
<p>- using the Z-buffer ==&gt; not accurate enough (only 65535 values)</p>
<p>- using bounding boxes around the objects and doing a ray / box intersection : there is still the problem of the direction inaccuracy.</p>
<p>Solution : I could click /create a rectangle, and generate a pyramid from that, find the objects inside this pyramid and zooming in near them. It would fix the inaccuracy problem.</p>
<p>I&#8217;m now going to try to implement that.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/52/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=52&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2009/11/07/cameras/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2009/11/zoomrectangle.png?w=240" medium="image">
			<media:title type="html">zoomRectangle</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2009/11/zoomdistancebetweenplans1.png?w=300" medium="image">
			<media:title type="html">zoomDistanceBetweenPlans</media:title>
		</media:content>
	</item>
		<item>
		<title>Interpolation of the curves</title>
		<link>http://anthonybarbier.wordpress.com/2009/11/07/interpolation-of-the-curves/</link>
		<comments>http://anthonybarbier.wordpress.com/2009/11/07/interpolation-of-the-curves/#comments</comments>
		<pubDate>Sat, 07 Nov 2009 01:31:53 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=34</guid>
		<description><![CDATA[First I made a mistake in my previous post: the list of coordinates in the raw files is as  (MD, INC , AZI) with MD : length of the arc of curve from previous point INC : angle between direction of the wellbore and the vertical AZI: angle between direction of the wellbore and north when the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=34&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://anthonybarbier.files.wordpress.com/2009/11/lagrangelinear.png"></a><a href="http://anthonybarbier.files.wordpress.com/2009/11/lagrangelinear.png"></a>First I made a mistake in my previous post:</p>
<p>the list of coordinates in the raw files is as  (MD, INC , AZI) with</p>
<p>MD : <strong>length of the arc of curve</strong> <strong>from previous point</strong></p>
<p>INC : angle between direction of the wellbore and the vertical</p>
<p>AZI: angle between direction of the wellbore and north when the wellbore is projected on a horizontal plane.</p>
<p>So it&#8217;s easy to do adaptive tesselation on this type of curve as MD represents the length of the arc between two points.</p>
<p>I only used the minimum curvature equation that Maurice gave me to interpolate this type of curve.</p>
<p>The second type of input data I have is a list of 3D points (TVD,NS,EW) :</p>
<p>TVD: vertical depth (0 is on the surface, positive numbers go down).</p>
<p>NS: direction towards north (negative means towards south)</p>
<p>EW: direction towards east (negative means towards west).</p>
<p>I tried different methods to interpolate these points :  (<a href="http://local.wasp.uwa.edu.au/~pbourke/miscellaneous/interpolation/">source for the methods</a>)</p>
<h3>- cosine interpolation : <a href="http://anthonybarbier.files.wordpress.com/2009/11/cosineinterpolation.png"><img class="alignnone size-full wp-image-37" title="cosineInterpolation" src="http://anthonybarbier.files.wordpress.com/2009/11/cosineinterpolation.png?w=235&#038;h=55" alt="cosineInterpolation" width="235" height="55" /></a></h3>
<p>      Advantages:</p>
<ul>
<li>it&#8217;s easy to compute.</li>
<li>requires only 2 control points to interpolate.</li>
</ul>
<p>Drawbacks:</p>
<ul>
<li>Uses a &#8220;cosine&#8221; which is time expensive.</li>
<li>When there are three aligned points, the curve is not straight.</li>
</ul>
<h3>- cubic interpolation:<a href="http://anthonybarbier.files.wordpress.com/2009/11/cubicinterpolation.png"><img class="alignnone size-medium wp-image-38" title="cubicInterpolation" src="http://anthonybarbier.files.wordpress.com/2009/11/cubicinterpolation.png?w=408&#038;h=33" alt="cubicInterpolation" width="408" height="33" /></a><a href="http://anthonybarbier.files.wordpress.com/2009/11/cubicinterpolation.png"></a></h3>
<p>Advantages:</p>
<ul>
<li>continuity</li>
</ul>
<p>Drawbacks:</p>
<ul>
<li>requires 4 control points : which is a problem for the first and last segment of the curve.</li>
</ul>
<h3>- quadratic Lagrange interpolation + linear interpolation:<a href="http://anthonybarbier.files.wordpress.com/2009/11/lagrangeinterpolation.png"><img class="alignnone size-full wp-image-39" title="lagrangeInterpolation" src="http://anthonybarbier.files.wordpress.com/2009/11/lagrangeinterpolation.png?w=673&#038;h=37" alt="lagrangeInterpolation" width="673" height="37" /></a></h3>
<p><a href="http://anthonybarbier.files.wordpress.com/2009/11/lagrange.png"></a> </p>
<p>Advantages:</p>
<ul>
<li>continuity</li>
<li>only 3 control points</li>
</ul>
<p>Drawbacks:</p>
<ul>
<li> there is no easy formula to compute the arc length.</li>
</ul>
<p>Lagrange linear interpolation: in order to have a smoother curve, between pi and pi+1, for every step I do the linear interpolation between the lagrange curve defined by pi-1,pi,pi+1 and the one defined by pi,pi+1,pi+2.</p>
<p><a href="http://anthonybarbier.files.wordpress.com/2009/11/lagrange.png"><img class="alignnone size-full wp-image-35" title="lagrange" src="http://anthonybarbier.files.wordpress.com/2009/11/lagrange.png?w=411&#038;h=118" alt="lagrange" width="411" height="118" /></a></p>
<p> <a href="http://anthonybarbier.files.wordpress.com/2009/11/lagrangelinear.png"><img title="lagrangeLinear" src="http://anthonybarbier.files.wordpress.com/2009/11/lagrangelinear.png?w=527&#038;h=42" alt="lagrangeLinear" width="527" height="42" /></a></p>
<p>Adaptive Tesselation : (<a href="http://tutorial.math.lamar.edu/Classes/CalcII/ArcLength.aspx">source</a>)</p>
<p>Until now, I was dividing every distance between two control points by the same number of samples. A better way of tesselating is to choose the number of samples to use according to the length of the curve to interpolate.</p>
<p>In order to do that, I compute an approximation of the arc length of the curve by putting sample points along the curve and doing the sum of the segment between them.</p>
<p><a href="http://anthonybarbier.files.wordpress.com/2009/11/arclength.png"><img class="alignnone size-full wp-image-42" title="arcLength" src="http://anthonybarbier.files.wordpress.com/2009/11/arclength.png?w=440&#038;h=83" alt="arcLength" width="440" height="83" /></a></p>
<p>Then I can compute the number of samples needed in order to have a regular tesselation :</p>
<p><a href="http://anthonybarbier.files.wordpress.com/2009/11/adaptivetesselation.png"><img class="alignnone size-medium wp-image-41" title="adaptiveTesselation" src="http://anthonybarbier.files.wordpress.com/2009/11/adaptivetesselation.png?w=556&#038;h=58" alt="adaptiveTesselation" width="556" height="58" /></a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/34/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=34&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2009/11/07/interpolation-of-the-curves/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2009/11/cosineinterpolation.png" medium="image">
			<media:title type="html">cosineInterpolation</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2009/11/cubicinterpolation.png?w=300" medium="image">
			<media:title type="html">cubicInterpolation</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2009/11/lagrangeinterpolation.png" medium="image">
			<media:title type="html">lagrangeInterpolation</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2009/11/lagrange.png" medium="image">
			<media:title type="html">lagrange</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2009/11/lagrangelinear.png" medium="image">
			<media:title type="html">lagrangeLinear</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2009/11/arclength.png" medium="image">
			<media:title type="html">arcLength</media:title>
		</media:content>

		<media:content url="http://anthonybarbier.files.wordpress.com/2009/11/adaptivetesselation.png?w=300" medium="image">
			<media:title type="html">adaptiveTesselation</media:title>
		</media:content>
	</item>
		<item>
		<title>Trajectory plotting</title>
		<link>http://anthonybarbier.wordpress.com/2009/11/05/trajectory-plotting-2/</link>
		<comments>http://anthonybarbier.wordpress.com/2009/11/05/trajectory-plotting-2/#comments</comments>
		<pubDate>Thu, 05 Nov 2009 03:44:32 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=30</guid>
		<description><![CDATA[Now I can load 2 types of csv files : - list of 3D positions ==&#62; I used a cosine interpolation for this one. - list of coordinates as (distance from origin,inclination,azimuth) ==&#62; I used a minimum curvature equation (that Maurice provided me) to interpolate this one. When I draw the two curves and the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=30&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Now I can load 2 types of csv files :</p>
<p>- list of 3D positions ==&gt; I used a cosine interpolation for this one.</p>
<p>- list of coordinates as (distance from origin,inclination,azimuth) ==&gt; I used a minimum curvature equation (that Maurice provided me) to interpolate this one.</p>
<p>When I draw the two curves and the list of points in 3D, they almost entirely overlap which means both of the interpolations are working fine.</p>
<p>I also implemented a very basic first person camera in order to navigate in the 3D world.</p>
<p>&nbsp;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/30/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=30&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2009/11/05/trajectory-plotting-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>
	</item>
		<item>
		<title>Trajectory plotting</title>
		<link>http://anthonybarbier.wordpress.com/2009/11/04/trajectory-plotting/</link>
		<comments>http://anthonybarbier.wordpress.com/2009/11/04/trajectory-plotting/#comments</comments>
		<pubDate>Wed, 04 Nov 2009 17:27:24 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/2009/11/04/trajectory-plotting/</guid>
		<description><![CDATA[For the moment I&#8217;ve done a small parser to load the csv files and plot the points only in 2D for the moment. I am now going to test different method to interpolate in between the points. Once it will be done I&#8217;ll generate the curve in 3D this time<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=29&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>For the moment I&#8217;ve done a small parser to load the csv files and plot the points only in 2D for the moment.</p>
<p>I am now going to test different method to interpolate in between the points.</p>
<p>Once it will be done I&#8217;ll generate the curve in 3D this time</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/29/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=29&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2009/11/04/trajectory-plotting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>
	</item>
		<item>
		<title>Specifications Draft 2</title>
		<link>http://anthonybarbier.wordpress.com/2009/11/03/specifications-draft-2/</link>
		<comments>http://anthonybarbier.wordpress.com/2009/11/03/specifications-draft-2/#comments</comments>
		<pubDate>Mon, 02 Nov 2009 23:45:30 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=20</guid>
		<description><![CDATA[I have just finished to write the second draft of my specifications. I have added the methodology I&#8217;m going to use and the milestones. I am now going to start working on loading the trajectory files and plotting the points in openGL<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=20&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I have just finished to write the <a href="http://anthonybarbier.files.wordpress.com/2009/11/final-year-project-specificationsdraft_21.docx">second draft of my specifications</a>.</p>
<p>I have added the methodology I&#8217;m going to use and the milestones.</p>
<p>I am now going to start working on loading the trajectory files and plotting the points in openGL</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/20/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=20&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2009/11/03/specifications-draft-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>
	</item>
		<item>
		<title>Trajectory files</title>
		<link>http://anthonybarbier.wordpress.com/2009/11/02/trajectory-files/</link>
		<comments>http://anthonybarbier.wordpress.com/2009/11/02/trajectory-files/#comments</comments>
		<pubDate>Mon, 02 Nov 2009 12:43:48 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/2009/11/02/trajectory-files/</guid>
		<description><![CDATA[Today, Maurice (my main contact at Schlumberger for this project ) sent me some trajectory files in csv format. They are using two ways to represent a trajectory : - a list of 3D points. - a starting point and then a combination of inclination(angle to the vertical), azimuth and distance from the previous point. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=18&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Today, Maurice (my main contact at Schlumberger for this project ) sent me some trajectory files in csv format.</p>
<p>They are using two ways to represent a trajectory :<br />
- a list of 3D points.<br />
- a starting point and then a combination of inclination(angle to the vertical), azimuth and distance from the previous point. (They usually use a minimum curvature to then interpolate)</p>
<p>Maurice told me to only work on the 3D points version for the moment.</p>
<p>One of the file also provides for each point the length along the borehole.</p>
<p>TODO: plot the 3D points and interpolate in between (I&#8217;m thinking about using a Bezier curve for that).</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/18/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=18&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2009/11/02/trajectory-files/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>
	</item>
		<item>
		<title>Methodology</title>
		<link>http://anthonybarbier.wordpress.com/2009/11/02/methodology/</link>
		<comments>http://anthonybarbier.wordpress.com/2009/11/02/methodology/#comments</comments>
		<pubDate>Mon, 02 Nov 2009 12:29:44 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/2009/11/02/methodology/</guid>
		<description><![CDATA[A normal developing cycle would require to do all the analysis and the design first, and start the implementation only after that. I see 2 main problems to this system - I am not experienced enough to create a good design from the first try. - I will need some feedbacks from Schlumberger people during [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=17&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A normal developing cycle would require to do all the analysis and the design first, and start the implementation only after that. I see 2 main problems to this system </p>
<p>- I am not experienced enough to create a good design from the first try.<br />
- I will need some feedbacks from Schlumberger people during the implementation. And I can&#8217;t expect them to be always available for me and give immediate feedbacks all the time.</p>
<p>So, my idea was to work in parallel on the design of the application (reading books, and structuring the main application), and at the same time implementing several small standalone applications. The two main benefits of this method are:<br />
- I don&#8217;t need to wait for a Schlumberger feedback to work on something else.<br />
- For each standalone application I will see what is needed to make it work (data, functions,etc) and then correct/improve my design accordingly.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/17/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=17&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2009/11/02/methodology/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>
	</item>
		<item>
		<title>Research Subject</title>
		<link>http://anthonybarbier.wordpress.com/2009/11/02/research-subject/</link>
		<comments>http://anthonybarbier.wordpress.com/2009/11/02/research-subject/#comments</comments>
		<pubDate>Mon, 02 Nov 2009 12:20:47 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/2009/11/02/research-subject/</guid>
		<description><![CDATA[For the moment I still didn&#8217;t decide what my research subject would be in this project. I had 3 ideas : - To include some Virtual Reality features in my application (wand, head tracking, stereo). But for that I need to check if the University has the equipment required. (Tyrone told me to contact Fred [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=16&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>For the moment I still didn&#8217;t decide what my research subject would be in this project. I had 3 ideas :<br />
- To include some Virtual Reality features in my application (wand, head tracking, stereo). But for that I need to check if the University has the equipment required. (Tyrone told me to contact Fred Charles about this)</p>
<p>- To represent cuttings inside the borehole using a 3D DLA (diffusion-limited aggregation) algorithm.  The problem is it is going to overlap with my Procedural Visual Effects module. So I decided to not include it in my final year project and to  implement a 2D one for the PVE module.</p>
<p>- To do a volume renderer to visualise the seismic data of the drilling area. It would be interesting from a visualisation point of view, but wouldn&#8217;t be really useful for Schlumberger. (They would be able to provide me some seismic data though).</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/16/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=16&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2009/11/02/research-subject/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>
	</item>
		<item>
		<title>Meeting with my supervisor #2</title>
		<link>http://anthonybarbier.wordpress.com/2009/10/29/meeting-with-my-supervisor-2/</link>
		<comments>http://anthonybarbier.wordpress.com/2009/10/29/meeting-with-my-supervisor-2/#comments</comments>
		<pubDate>Thu, 29 Oct 2009 11:59:05 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=12</guid>
		<description><![CDATA[Today we talked about the project specifications. My supervisor told me to correct different things in my first draft (I&#8217;ll post an updated version soon). I also need to write some more categories : &#8220;Personal objective&#8221;, &#8220;Methodology&#8221; and &#8220;Evaluation method&#8221;.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=12&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Today we talked about the project specifications.</p>
<p>My supervisor told me to correct different things in my first draft (I&#8217;ll post an updated version soon).</p>
<p>I also need to write some more categories : &#8220;Personal objective&#8221;, &#8220;Methodology&#8221; and &#8220;Evaluation method&#8221;.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/12/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=12&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2009/10/29/meeting-with-my-supervisor-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>
	</item>
		<item>
		<title>Specifications : First Draft</title>
		<link>http://anthonybarbier.wordpress.com/2009/10/24/specifications-first-draft/</link>
		<comments>http://anthonybarbier.wordpress.com/2009/10/24/specifications-first-draft/#comments</comments>
		<pubDate>Sat, 24 Oct 2009 11:22:27 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=7</guid>
		<description><![CDATA[Last week I wrote the first draft of my project specifications - I tried to keep the same presentation/structure as for a module ICA brief. - I also tried to merge together the Schlumberger specifications and my suggestions.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=7&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Last week I wrote the <a href="http://anthonybarbier.files.wordpress.com/2009/10/final-year-project-specificationsdraft_1.docx">first draft of my project specifications</a></p>
<p>- I tried to keep the same presentation/structure as for a module ICA brief.<br />
- I also tried to merge together the <a href="http://anthonybarbier.files.wordpress.com/2009/10/projectspecification1.docx">Schlumberger specifications</a> and <a href="http://anthonybarbier.files.wordpress.com/2009/10/drillingproject.pptx">my suggestions</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/7/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=7&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2009/10/24/specifications-first-draft/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>
	</item>
		<item>
		<title>Welcome to my blog</title>
		<link>http://anthonybarbier.wordpress.com/2009/10/22/welcome-to-my-blog/</link>
		<comments>http://anthonybarbier.wordpress.com/2009/10/22/welcome-to-my-blog/#comments</comments>
		<pubDate>Thu, 22 Oct 2009 12:23:35 +0000</pubDate>
		<dc:creator>Anthony Barbier</dc:creator>
				<category><![CDATA[Final Year Project]]></category>

		<guid isPermaLink="false">http://anthonybarbier.wordpress.com/?p=3</guid>
		<description><![CDATA[This blog will be used as my Final Year Project diary to : - describe every step of the development - publish the links to the papers I have found interesting - sum up the meetings I have with my supervisor<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=3&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This blog will be used as my Final Year Project diary to :</p>
<p>- describe every step of the development</p>
<p>- publish the links to the papers I have found interesting</p>
<p>- sum up the meetings I have with my supervisor</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/anthonybarbier.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/anthonybarbier.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/anthonybarbier.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/anthonybarbier.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/anthonybarbier.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/anthonybarbier.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/anthonybarbier.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/anthonybarbier.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/anthonybarbier.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/anthonybarbier.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/anthonybarbier.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/anthonybarbier.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/anthonybarbier.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/anthonybarbier.wordpress.com/3/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=anthonybarbier.wordpress.com&amp;blog=10062400&amp;post=3&amp;subd=anthonybarbier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://anthonybarbier.wordpress.com/2009/10/22/welcome-to-my-blog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a99a3024d0536c51417dca69394c6df6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Anthony Barbier</media:title>
		</media:content>
	</item>
	</channel>
</rss>
