In the first two weeks of December, I've been in Genova (Italy) to attend the AIM@SHAPE final workshop and the 2nd International Conference on Semantics and digital Media Technologies (SAMT 2007). Besides I visited the Shape Modelling Group at CNR IMATI-Ge, were I'm planning to work for three months in the beginning of next year. The picture below was taken before the social event, in front of the hotel were the conference was held.
"AFj's PhD" blog was created in 2004 to report on-line the PhD work of Alfredo Ferreira (Jr). After finishing his PhD in July 2009, the posting was suspended.
However, after several requests, the blog was reactivated in October 2010."AFj's PhD and after" blog will provide information on Alfredo Ferreira's work as a researcher in INESC-ID and his activities as a Assistant Professor at IST/TULisbon.
Wednesday, December 19, 2007
Monday, December 17, 2007
Coloring according to distance to barycenter
In the OFF to VRML converter, it is now possible to colorize the
mesh surface according to distances from the corresponding vertices to the object barycenter.
mesh surface according to distances from the corresponding vertices to the object barycenter.
Wednesday, December 12, 2007
Computing the 3D convex hull
As a new optional functionality of the OFF to VRML converter, I coded the extraction of the convex hull of a 3D shape based on the implementation of the incremental algorithm proposed by O'Rourke in "Computational Geometry in C". Despite the clear explanation of the algorithm and included code, it took me some time to adapt it to the data structure I am using. However, the expected result were achieved.
3D model and corresponding convex hull.
Labels:
3D Model,
conversion,
convex hull,
mesh,
OFF,
VRML
Tuesday, December 11, 2007
Identification of face normals in the VRML file
I just added one more feature to my OFF to VRML converter: the optional representation of mesh normal vectors in the resulting model. The length of these normals is directly proportional to the perimeter of corresponding polygon.
Monday, December 10, 2007
Showing mesh edges on VRML file
Following my work on the OFF to VRML converter, I added another functionality. Now is possible to construct a model whit explicit edges, as shown in picture below. In the meantime I also computed a bounding sphere for the shape.
Thursday, November 29, 2007
Creating VRML with point cloud
The new functionality was added to the OFF to VRML file converter I developed. Now it has an option to create, in the VRML file, a point cloud of the model instead of the traditional mesh. Below is an example of such output.
Wednesday, November 28, 2007
Converting OFF to VRML (and more)
I developed in C++ a small tool that converts 3D models stored in OFF files to VRML files. Besides this simple task, I add a couple of functionalities, such as computing the bounding box of the shape and coloring the vertices according to it's order in the vertex list (just for fun).
Labels:
3D Model,
bounding box,
conversion,
OFF,
tool,
VRML
Tuesday, November 27, 2007
It was just a 'void' !!!
When I compiled a small application I wrote in C++ in Release Mode, the resulting 'exe' file crashed unexpectedly. Indeed the same code compiled in Debug Mode works fine. Initially I thought that it must be due to some failures in variables initialization, but no. When coding, I am usually very careful with that details.
I spent the whole afternoon trying to solve the problem. After a while I had already located the problem. The error occurs when accessing a list. Then I just had to figure out what I did wrong and solve it. But this apparently simple task was indeed a hard challenge. Finally, when I discovered the problem I was astonished by how strange it was.
I am using a list of pointers to instances of a class I defined. However, when I created the class, it was like this:
class MyClass : public {
(...)
MyClass();
(...)
}
Here, the class constructor does not have any parameters. It works perfectly fine in Debug Mode but it generates an error in Release Mode when using a list of pointers to this class. The solution was simple. I just have to change the constructor as depicted below.
class MyClass : public {
(...)
MyClass(void);
(...)
}
Damn! So much time lost because of a simple 'void'. Damn!
I spent the whole afternoon trying to solve the problem. After a while I had already located the problem. The error occurs when accessing a list. Then I just had to figure out what I did wrong and solve it. But this apparently simple task was indeed a hard challenge. Finally, when I discovered the problem I was astonished by how strange it was.
I am using a list of pointers to instances of a class I defined. However, when I created the class, it was like this:
class MyClass : public {
(...)
MyClass();
(...)
}
Here, the class constructor does not have any parameters. It works perfectly fine in Debug Mode but it generates an error in Release Mode when using a list of pointers to this class. The solution was simple. I just have to change the constructor as depicted below.
class MyClass : public {
(...)
MyClass(void);
(...)
}
Damn! So much time lost because of a simple 'void'. Damn!
Tuesday, November 13, 2007
QiQA Demonstration Video
Last week we created a short video to be shown in the "3as Jornadas de Inovação", an exposition organized by ADI. In this video we illustrate the main features of Quick Quotation Assistant (QiQA), a prototype developed within workpackage WP 5.1: Part and Tool Design of the Eurotooling 21 project.
Monday, November 05, 2007
Compiling C++ on MS VS without IDE
Although many people ignore this functionality, it is possible to use the Microsoft Visual Studio .NET without opening the IDE. Indeed, many tasks can be made from the command line, thus providing a way to improve the scripting capabilities of this tool. For instance, to compile a project from the command line, only two steps are necessary:
- Set the environment variables (eventually they can be already set)
Run "VCvars32.bat" (in .NET2003) - Compile the project
Call $ DevEnv project_name /Build configuration_name
Tuesday, October 30, 2007
Changing, in MS Excel, cell colors based on its value
In order to produce an easy-to-read table in MS Excel, I wanted to assign a color to each cell according to its contents. To that end I just need to apply conditional formatting to that cells. In MS Excel this can be done through menu Format>Conditional Format and by providing the conditions and corresponding formats.
Friday, October 26, 2007
New QiQA
The new user interface (UI) of the Quick Quotation Assistant (QiQA) prototype is finished. This should allow queries using multiple views of the mould. Now, we must focus on implementing the techniques that will support the combined queries (several views plus textual). Indeed, actually only one of these is used at each time.
Thursday, October 25, 2007
QiQA File Normalizer
Our partners from the mould industry provided a new collection for our database with eighty parts. However, the files they sent do not comply with the agreed filename formats, namely the files containing the JPEG 3D previews, VRML 3D models and mould quotations.
To solve this problem I created a simple application that renames the files according to a pre-defined set of rules. This operation is semi-automatic way, since the new name for the file is computed automatically from its context but the user must confirm the renaming for every file.
To solve this problem I created a simple application that renames the files according to a pre-defined set of rules. This operation is semi-automatic way, since the new name for the file is computed automatically from its context but the user must confirm the renaming for every file.
Tuesday, October 23, 2007
New UI for QiQA
According to feedback we had from final users at CENTIMFE, we must redesign the user interface of our Quick Quotation Assistant (QiQA) prototype. Based on this we sketched the new user interface for QiQA, pictured bellow, and will now change our prototype accordingly.
Sketch of the new user interface for QiQA.
Monday, October 22, 2007
Panel about the history of Portuguese CG
As part of the 15th Portuguese computer graphics meeting (15EPCG) I co-organized a session about the history of computer graphics in Portugal. For this panel were invited some senior researchers that started up this area twenty years ago, most of them in the beginning of their careers. A few images were digitized to be presented in this session and are now available at the address http://immi.inesc-id.pt/~afj/15epcg/.
Tuesday, September 25, 2007
Supressing page breaks in LaTeX
I wanted to keep together a paragraph and following quote on a document written in LaTeX. However, the \nopagebreak command does not work properly in this case. Indeed, \nopagebreak does not suppress the page breaks that are deliberately inserted around environments like {quote}. The solution was enclosing the text I want to keep in the same page within {samepage} environment. Something like this:
\begin{samepage}
Lorem ipsum dolor sit amet, consectetuer adipiscing elit:
\begin{quote}
Quisque leo.
\end{quote}
\end{samepage}
\begin{samepage}
Lorem ipsum dolor sit amet, consectetuer adipiscing elit:
\begin{quote}
Quisque leo.
\end{quote}
\end{samepage}
Monday, September 17, 2007
Running programs does not appear in XP taskbar
I have no idea why, but the XP taskbar of my TabletPC stop showing the list of running programs. Surprisingly, this is a quite annoying failure, making it hard for me to continue working without solving this problem.
After a few searches on the internet, I found out that this is not supposed to happen. Thus, since there are no way to turn off the running programs listing, there are no obvious way to turn this feature on.
Fortunately, I found a solution at Kelly's Korner, where Kelly Theriot, a Microsoft MVP has a set of tweaks. A VBScript that will change the registry to reset the properties of the XP taskbar is available on the tweaks page, item #240, referred as "Programs Aren't Minimized in the Taskbar". It worked fine for me. The "running programs" area returned to my taskbar and I just needed to restore the personalized settings.
After a few searches on the internet, I found out that this is not supposed to happen. Thus, since there are no way to turn off the running programs listing, there are no obvious way to turn this feature on.
Fortunately, I found a solution at Kelly's Korner, where Kelly Theriot, a Microsoft MVP has a set of tweaks. A VBScript that will change the registry to reset the properties of the XP taskbar is available on the tweaks page, item #240, referred as "Programs Aren't Minimized in the Taskbar". It worked fine for me. The "running programs" area returned to my taskbar and I just needed to restore the personalized settings.
Monday, September 03, 2007
Insert a static date or time on a Excel worksheet
When I was creating a table on MS-Excel I needed to insert in several places the current date. Instead of writing the whole date numerous times, I thought that Excel should have a way to do it automatically. Indeed it does and it is very simple. Thus, if one wants to insert a static current date or time on a Excel worksheet just have to use the keyboard shortcuts described below:
Note: These shortcuts are for the international Excel version on a Portuguese keyboard. I cannot guarantee these will work on other versions. Try it for yourself and if you think your experience will help others, leave a comment here.
Current date
Select a cell and press CTRL+;
Current time
Select a cell and press CTRL+:
Current date and time
Select a cell and press CTRL+; then SPACE then CTRL+:
Note: These shortcuts are for the international Excel version on a Portuguese keyboard. I cannot guarantee these will work on other versions. Try it for yourself and if you think your experience will help others, leave a comment here.
Tuesday, August 28, 2007
My street...
Tuesday, August 07, 2007
3DISE project proposal rejected
Almost one year after submission to FCT (Portuguese Foundation for Science and Technology), we got the feedback on 3DISE project proposal. Unfortunately, it was not accepted for funding.
Monday, August 06, 2007
Copying multiple files with SCP
I needed to copy several files from one remote host to another. To that end I decided to use scp, but if I simply write one "scp" command for each file I must provide the password each time I enter a command, besides having to repeat the command several times. Fortunately this can be done in a more efficient way. Indeed it is possible to use normal shell expansion, just make sure you use quotes to ensure that it isn’t parsed and expanded by the local shell instead of the remote one. Thus, the command should look like:
% scp me@host:"teste1.zip,teste2.zip,teste" .
% scp me@host:"teste1.zip,teste2.zip,teste" .
Wednesday, July 11, 2007
Surveying 3D shape descriptors
In last couple of weeks I've been reviewing existing techniques for 3D shape description. This research have proven fruitful and I'm planning to produce an exhaustive survey within the end of this week.
Wednesday, June 20, 2007
VRML reader for CALI/3D
In the context of our work on 3D shape recognition (CALI3D), Lisha Zhang developed a simple VRML file reader that converts the original shape into a triangular mesh and computes its axis aligned bounding box. An executable version of this prototype is available for download [ZIP 48KB] , together with a sample shape extracted from the National Design Repository at Drexel University.
Original Shape |
Resulting Shape and corresponding Bounding Box |
Tuesday, May 29, 2007
LaTeX template for MSc thesis
For master students of Instituto Superior Técnico who are writing their master theses, I made available a LaTeX template for IST MSc Thesis [ZIP 253KB]. This is based on the version I used to write my master thesis, back in 2004. I hope this could be useful for someone.
Tuesday, May 22, 2007
Converting FAT32 to NTFS
My new Acer Travelmate C200 came with Windows XP Tablet Edition pre-installed. No problem with that. Until now everything seems fine, except for two small problems. The 100GB hard disk is formatted in FAT32 and it has the Portuguese version of XP installed.
Change the operating system langauge is trivial. I just needed to change the user interface language on the "Languages" tab of the "Regional and Languages Options".
To convert the drive file system from FAT32 to NTFS, I had two options: recreate the partitions and reinstall everything again or convert the file system format. I chose the second. Although I had never tried it before, it seems quite simple. It can be done by an Windows XP built in utility. I only needed to type two simple commands:
% vol c: (to find out the drive's volume name - it will be necessary later)
% convert c: /fat32:ntfs (the system will restart a couple of times)
It worked well with me. After a few minutes I have a NTFS file system in my new Acer.
Change the operating system langauge is trivial. I just needed to change the user interface language on the "Languages" tab of the "Regional and Languages Options".
To convert the drive file system from FAT32 to NTFS, I had two options: recreate the partitions and reinstall everything again or convert the file system format. I chose the second. Although I had never tried it before, it seems quite simple. It can be done by an Windows XP built in utility. I only needed to type two simple commands:
% vol c: (to find out the drive's volume name - it will be necessary later)
% convert c: /fat32:ntfs (the system will restart a couple of times)
It worked well with me. After a few minutes I have a NTFS file system in my new Acer.
Tuesday, March 06, 2007
No help text in wxWidgets Status Bar
I am writing an application in C++ and I'm using wxWidgets. The application user interface includes a toolbar and a status bar. Automatically wxWidgets assumes that I want to see the help text for toolbar buttons (or for menu items) in the first field of status bar. Even if I have no hint text specified it clears the respective field of the status bar.
After a few hours trying to overcome this "problem" (or "feature", if you prefer), I found the solution after carefully reading the manual. It is not necessary to override the wxEVT_TOOL_ENTER, as I was trying to do, although it can be done this way.
The solution is incredibly simple. I just need to call SetStatusBarPane(-1) for the corresponding frame. This disables help display in the status bar.
After a few hours trying to overcome this "problem" (or "feature", if you prefer), I found the solution after carefully reading the manual. It is not necessary to override the wxEVT_TOOL_ENTER, as I was trying to do, although it can be done this way.
The solution is incredibly simple. I just need to call SetStatusBarPane(-1) for the corresponding frame. This disables help display in the status bar.
Subscribe to:
Posts (Atom)