Friday, October 17, 2008

Boolean Operations

Today's note is going to be quick.  Just two things...

First, on Wednesday Dan pushed out a Windows binary.  This is something that a large number of people have been asking for.  Well, he posted the binary and announced it and we haven't heard a thing since.  Has anyone tried it?  Please give us some feedback and let us know if it is working for you.

Second, I am staring in earnest on the Boolean operations code.  It is very interesting, but don't let anyone ever tell you that boundary classification and boolean operations are trivial.  Wow!  I am diving deep into the literature, but wow!  This is going to be a fun adventure.

Here are a couple of the key references I am working through:
  • "Set Membership Classification: A Unified Approach to Geometric Intersection Problems" by R.B. Tilove
  • "Boolean Operations in Solid Modeling: Boundary Evaluation and Merging Algorithms" by A. Requicha and H. Voelcker
  • "An Introduction to Solid Modeling" by M. Mantyla
There are a bunch more, but this is where I am starting.  You might start to see some code appear in the topology_* files, but I am focusing on Slice and Union for now.

Again, please let us know how the Windows version is working for you.
Cheers,
   Graham

9 comments:

khiraly said...

Hi!

Although my home computer is linux, at work I need to run windows, so I tried it.

It started without problem. I didnt installed on this machine visual studio 2008, and it runned without it. So I assume it is not needed to run it. I post the .log file at the end of this comment.

0. First and foremost: Im very impressed! Finally some progress.;)
Congratulation.

1. The wildcat icon is just beautiful. I like it.

2. The toolbar's open/save button does not work. From the file->open however it works.

3. At first it opens a minuscule windows with a tree like thing.
It required some moment to figure out that actually this is my entire drawing and not just a toolbox window.
Screenshot:
http://img264.imageshack.us/my.php?image=wildcatnewdocumentzr7.png

Solution: make it maximized by default.

4. The isometric view, front view, etc works awesome. I like it. Animation, it makes clear.

5. The negative: I was not able to create anything. Not even a cube. Or do some 2d work. Is it working?
These icons in the toolbar are working?
So cant comment anything about modelling or drawing (in 2D).

6. I saved my project (although I wasnt able to create anything). It saved, but the result .txt file was 0kB.

Definietly there are progress.
Cant wait to actually modell anything. Some hints/tutorials maybe? Or patient from my part?

khiraly said...

My wildcat.log file:
(INFO) - WCWildcatApp::WCWildcatApp - Starting up...
(INFO) - WCShaderManager::ParseShader - nc_default_plH requires geometry shader, which is not supported.
(INFO) - WCShaderManager::ParseShader - nc23_bezier_plH requires geometry shader, which is not supported.
(INFO) - WCShaderManager::ParseShader - ns_default_plH requires geometry shader, which is not supported.
(INFO) - WCShaderManager::ParseShader - ns23_bezier_plH requires geometry shader, which is not supported.
(INFO) - WCShaderManager::ParseProgram - nc_default_plH requires excluding this program.
(INFO) - WCShaderManager::ParseProgram - nc23_bezier_plH requires excluding this program.
(INFO) - WCShaderManager::ParseProgram - ns_default_plH requires excluding this program.
(INFO) - WCShaderManager::ParseProgram - ns23_bezier_plH requires excluding this program.
(DEBUG) - WCGeometryContext::StartCurve Debug - Actually Running as Low.
(DEBUG) - WCDocument::ExecuteAction - Executing: Create Part Plane.
(DEBUG) - WCDocument::ExecuteAction - Executing: Create Part Plane.
(DEBUG) - WCDocument::ExecuteAction - Executing: Create Part Plane.
(DEBUG) - WCDocument::ExecuteAction - Executing: Create PartBody.
(INFO) - WCShaderManager::ParseShader - nc_default_plH requires geometry shader, which is not supported.
(INFO) - WCShaderManager::ParseShader - nc23_bezier_plH requires geometry shader, which is not supported.
(INFO) - WCShaderManager::ParseShader - ns_default_plH requires geometry shader, which is not supported.
(INFO) - WCShaderManager::ParseShader - ns23_bezier_plH requires geometry shader, which is not supported.
(INFO) - WCShaderManager::ParseProgram - nc_default_plH requires excluding this program.
(INFO) - WCShaderManager::ParseProgram - nc23_bezier_plH requires excluding this program.
(INFO) - WCShaderManager::ParseProgram - ns_default_plH requires excluding this program.
(INFO) - WCShaderManager::ParseProgram - ns23_bezier_plH requires excluding this program.
(DEBUG) - WCGeometryContext::StartCurve Debug - Actually Running as Low.
(DEBUG) - WCDocument::ExecuteAction - Executing: Create Part Plane.
(DEBUG) - WCDocument::ExecuteAction - Executing: Create Part Plane.
(DEBUG) - WCDocument::ExecuteAction - Executing: Create Part Plane.
(DEBUG) - WCDocument::ExecuteAction - Executing: Create PartBody.
(INFO) - WCShaderManager::ParseShader - nc_default_plH requires geometry shader, which is not supported.
(INFO) - WCShaderManager::ParseShader - nc23_bezier_plH requires geometry shader, which is not supported.
(INFO) - WCShaderManager::ParseShader - ns_default_plH requires geometry shader, which is not supported.
(INFO) - WCShaderManager::ParseShader - ns23_bezier_plH requires geometry shader, which is not supported.
(INFO) - WCShaderManager::ParseProgram - nc_default_plH requires excluding this program.
(INFO) - WCShaderManager::ParseProgram - nc23_bezier_plH requires excluding this program.
(INFO) - WCShaderManager::ParseProgram - ns_default_plH requires excluding this program.
(INFO) - WCShaderManager::ParseProgram - ns23_bezier_plH requires excluding this program.
(DEBUG) - WCGeometryContext::StartCurve Debug - Actually Running as Low.
(DEBUG) - WCDocument::ExecuteAction - Executing: Create Part Plane.
(DEBUG) - WCDocument::ExecuteAction - Executing: Create Part Plane.
(DEBUG) - WCDocument::ExecuteAction - Executing: Create Part Plane.
(DEBUG) - WCDocument::ExecuteAction - Executing: Create PartBody.
(DEBUG) - WCPartWorkbench::OnUserMessage - Unknown user message received: centerCircle
(DEBUG) - WCPartWorkbench::OnUserMessage - Unknown user message received: centerCircle
(DEBUG) - WCPartWorkbench::OnUserMessage - Unknown user message received: rectangle
(DEBUG) - WCPartWorkbench::OnUserMessage - Unknown user message received: twoPointArc
(DEBUG) - WCPartWorkbench::OnUserMessage - Unknown user message received: axisLine
(DEBUG) - WCPartWorkbench::OnUserMessage - Unknown user message received: oblongHole
(DEBUG) - WCPartWorkbench::OnUserMessage - Unknown user message received: rectangle
(DEBUG) - WCPartWorkbench::OnUserMessage - Unknown user message received: line
(DEBUG) - WCPartWorkbench::OnUserMessage - Unknown user message received: point
(DEBUG) - WCPartWorkbench::OnUserMessage - Unknown user message received: keyhole
(DEBUG) - WCPartWorkbench::OnUserMessage - Unknown user message received: line
(DEBUG) - WCPartWorkbench::OnUserMessage - Unknown user message received: line
(DEBUG) - WCPartWorkbench::OnUserMessage - Unknown user message received: centerCircle
(DEBUG) - WCPartWorkbench::OnUserMessage - Unknown user message received: rectangle
(DEBUG) - WCPartWorkbench::OnUserMessage - Unknown user message received: twoPointArc
(DEBUG) - WCPartWorkbench::OnUserMessage - Unknown user message received: axisLine
(DEBUG) - WCPartWorkbench::OnUserMessage - Unknown user message received: trim
(DEBUG) - WCPartWorkbench::OnUserMessage - Unknown user message received: threePointArc
(DEBUG) - WCPartWorkbench::OnUserMessage - Unknown user message received: rectangle
(DEBUG) - WCPartWorkbench::OnUserMessage - Unknown user message received: showGrid
(DEBUG) - WCPartWorkbench::OnUserMessage - Unknown user message received: exitWorkbench
(DEBUG) - WCPartWorkbench::OnUserMessage - Unknown user message received: hexagon

Πετσαγγουράκης Γιώργος said...

My experience is the same as Khiraly's

Maxence said...

I've tried it on my computer without VS 2008. The software start, but when I try to open a new window, it shutdown.

Here is the log :

(ERROR) - WCGeometryContext::WCGeometryContext - NULL Shader Manager passed.

May be a problem with my graphic card (ATI RADEON XPRESS 200 Series) ?

Dan Heeks said...

maxence, I Wildcat is using some OpenGL commands that your graphics card can't support.

Deelip Menezes said...

Crashed on my XP machine when I created a new document. Worked on my Vista notebook. Usually it is the other way around with other software. ;-)

Rocketmagnet said...

Hi,

Having build Wildcat, I can now tell you where it is crashing.

shader_manager.cpp, line 254

The problem is that glTransformFeedbackVaryingsEXT == 0x00000000.

Changing it to

if (glTransformFeedbackVaryingsEXT)
glTransformFeedbackVaryingsEXT(program->_id, varyingCount,
varyings, type);

seems to let it run OK. I don't know what this line is supposed to
do.

Hugo

Anonymous said...

I was finally able to create something!

Im constantly checking this site for updates and also the code repositories.

Today I was only clicking in the software without any goal. And discovered the following goal:

1. If you click on xy, xz, yz plane and after

2. you click on the "pen" icon (order of the toolbars icon: pen, paraleogram, gear)
You will be able to create some basic shapes in 2D!

I try to play a bit more. Maybe I can even create some basic 3D object!

However Im not able to run wildcat on my sisters laptop (windows xp), the error message is only this:

This application has failed to start because the application configuration is incorrect.
Reinstalling the application may fix this problem.

Graham: Have you any news? Its more than a month you have written the last news.
Cant wait for the boolean ops.

Khiraly

Anonymous said...

Holy shit!

I was finally able to create a box!!!

Here is a screenshot:

http://img371.imageshack.us/img371/3135/wildcatboxsa5.png

It is amazing!