Gtkmm and Opencascade

Ok… I think maybe the OCC is a bit too big of a piece to try to take on at the moment.
I just want to play with Occ and Makebottle with Gtk+ using Gtkmm.
I did some searching at lunch at game up with some interesting links:

http://www.opencascade.org/org/forum/thread_3518/

http://www.opencascade.org/org/forum/thread_8796/

http://www.opencascade.org/org/forum/thread_7427/

This looks promising

http://freebsd.ntu.edu.tw/FreeBSD/ports/local-distfiles/thierry/

This is really interesting…..

http://www.google.com/codesearch?hl=en&q=show:bAKdNAsFpkg:fAjszQnpqJk:S78yfL1Ucyo&sa=N&ct=rd&cs_p=http://edwin.iband.net/opencascade/gtkmmocascade.tar.bz2&cs_f=gtkmmocascade/MakeBottle.cpp

This google codesearch is something that I knew nothing about.  Learn something new every day. This is very very cool.
I found some code that looks simple enough to try to see if I could get it to work.
I wget’d the gtkmmocascade to see if I could get that to work…
So… never ran across a bz2 file before…  I ran across this site which explains what to do in various formats. http://www.ncsu.edu/it/essentials/managing_files/compress.html

Yehhh… go wolfpack…. Ahem anyway… According to the them this is what you do…..

Decompressing files with .bz or .bz2 endings

For a file with the extension .bz or .bz2, you must first gain access to the bzip and/or bzip2 commands by typing:

add zutils

Then, if the file ends in .bz, you uncompress it by using the command:

bzip -d filename.bz

or, if the file ends in .bz2, you uncompress it by using the command:

bzip2 -d filename.bz2

The decompressed file will appear in your directory listing, and the .bz or .bz2 will be removed.

Why did I know that wasn’t going to work of the get go..
I don’t have bzip but for some reason bzip2 is on my machine.

jonas@Ubuntu4:~/gtkmmocascade$ ls
gtkmmocascade.tar.bz2
jonas@Ubuntu4:~/gtkmmocascade$ bzip2 -d  gtkmmocascade.tar.bz2
bzip2: Can’t open input file gtkmmocascade.tar.bz2: No such file or directory.
jonas@Ubuntu4:~/gtkmmocascade$ bzip2 -d *
bzip2:  gtkmmocascade.tar.bz2 is not a bzip2 file.
jonas@Ubuntu4:~/gtkmmocascade$

Ok… This is not good…
Quick google…
http://ubuntuforums.org/archive/index.php/t-407556.html

Something looks hosed….
Time for brute force.  I can see the code from google. I guess I can try to copy and save to indivdual files.
brute for succeeds.  Now lets see if I can go anything with this code.
I took a look at make file… My Occ was set up via the deb.  So…. the make file should fail…
I guess I should confirm…

jonas@Ubuntu4:~/gtkmmocascade$ make
g++ -Wno-deprecated -I./ pkg-config gtkmm-2.4  gtkglextmm-1.2 --cflags -DCSFDB -DHAVE_CONFIG_H -DHAVE_WOK_CONFIG_H -DLIN -DLININTEL -I/opt/OpenCASCADE5.2/ros/inc -I/opt/OpenCASCADE5.2/ros/src/WOKTclLib -c main.cpp -o main.o
In file included from main.cpp:2:
./gtkmmocascade.h:12:38: error: AIS_InteractiveContext.hxx: No such file or directory
./gtkmmocascade.h:14:24: error: V3d_View.hxx: No such file or directory
./gtkmmocascade.h:15:26: error: V3d_Viewer.hxx: No such file or directory
./gtkmmocascade.h:17:35: error: Geom_BSplineSurface.hxx: No such file or directory
./gtkmmocascade.h:19:37: error: AIS_InteractiveObject.hxx: No such file or directory
./gtkmmocascade.h:20:40: error: Graphic3d_NameOfMaterial.hxx: No such file or directory
./gtkmmocascade.h:22:28: error: TopoDS_Shape.hxx: No such file or directory
./gtkmmocascade.h:23:25: error: AIS_Shape.hxx: No such file or directory
./gtkmmocascade.h:25:43: error: Handle_V3d_OrthographicView.hxx: No such file or directory
./gtkmmocascade.h:26:42: error: Handle_V3d_PerspectiveView.hxx: No such file or directory
./gtkmmocascade.h:27:36: error: V3d_OrthographicView.hxx: No such file or directory
./gtkmmocascade.h:28:35: error: V3d_PerspectiveView.hxx: No such file or directory
./gtkmmocascade.h:29:29: error: Aspect_Handle.hxx: No such file or directory
./gtkmmocascade.h:30:36: error: Handle_AIS_Trihedron.hxx: No such file or directory
./gtkmmocascade.h:31:29: error: AIS_Trihedron.hxx: No such file or directory
./gtkmmocascade.h:32:35: error: Geom_Axis2Placement.hxx: No such file or directory
In file included from main.cpp:2:
./gtkmmocascade.h:63: error: ‘V3d_View’ has not been declared
./gtkmmocascade.h:63: error: ISO C++ forbids declaration of ‘Handle’ with no type
./gtkmmocascade.h:63: error: expected ‘;’ before ‘&’ token
./gtkmmocascade.h:68: error: expected ;' before ‘Handle’
./gtkmmocascade.h:68: error: ‘V3d_Viewer’ has not been declared
./gtkmmocascade.h:68: error: ISO C++ forbids declaration of ‘Handle’ with no type
./gtkmmocascade.h:68: error: expected ‘;’ before ‘&’ token
./gtkmmocascade.h:73: error: expected
;’ before ‘Handle’
./gtkmmocascade.h:73: error: ‘AIS_InteractiveContext’ has not been declared
./gtkmmocascade.h:73: error: ISO C++ forbids declaration of ‘Handle’ with no type
./gtkmmocascade.h:73: error: expected ‘;’ before ‘&’ token
./gtkmmocascade.h:78: error: expected ;' before ‘protected’
./gtkmmocascade.h:89: error: ‘V3d_View’ has not been declared
./gtkmmocascade.h:89: error: ISO C++ forbids declaration of ‘Handle’ with no type
./gtkmmocascade.h:89: error: expected ‘;’ before ‘myView’
./gtkmmocascade.h:90: error: ‘V3d_Viewer’ has not been declared
./gtkmmocascade.h:90: error: ISO C++ forbids declaration of ‘Handle’ with no type
./gtkmmocascade.h:90: error: expected ‘;’ before ‘myViewer’
./gtkmmocascade.h:91: error: ‘AIS_InteractiveContext’ has not been declared
./gtkmmocascade.h:91: error: ISO C++ forbids declaration of ‘Handle’ with no type
./gtkmmocascade.h:91: error: expected ‘;’ before ‘myContext’
main.cpp:4: error: ‘TopoDS_Shape’ does not name a type
main.cpp: In member function ‘void Simple::on_button_make_bottle_clicked()’:
main.cpp:96: error: ‘TopoDS_Shape’ was not declared in this scope
main.cpp:96: error: expected
;’ before ‘aBottle’
main.cpp:97: error: ‘AIS_Shape’ was not declared in this scope
main.cpp:97: error: ‘Handle’ was not declared in this scope
main.cpp:97: error: expected ;' before ‘AISBottle’
main.cpp:98: error: ‘class GtkOpenCascade3d’ has no member named ‘getContext’
main.cpp:98: error: ‘AISBottle’ was not declared in this scope
main.cpp:98: error: ‘Graphic3d_NOM_GOLD’ was not declared in this scope
main.cpp:99: error: ‘class GtkOpenCascade3d’ has no member named ‘getContext’
main.cpp:99: error: ‘Standard_False’ was not declared in this scope
main.cpp:100: error: ‘class GtkOpenCascade3d’ has no member named ‘getContext’
main.cpp:106: error: ‘class GtkOpenCascade3d’ has no member named ‘getView’
main.cpp:107: error: ‘class GtkOpenCascade3d’ has no member named ‘getView’
main.cpp: In member function ‘void Simple::on_ocascade_init(GtkOpenCascade3d&)’:
main.cpp:116: error: ‘TopoDS_Shape’ was not declared in this scope
main.cpp:116: error: expected
;’ before ‘aBottle’
main.cpp:117: error: ‘AIS_Shape’ was not declared in this scope
main.cpp:117: error: ‘Handle’ was not declared in this scope
main.cpp:117: error: expected ;' before ‘AISBottle’
main.cpp:118: error: ‘class GtkOpenCascade3d’ has no member named ‘getContext’
main.cpp:118: error: ‘AISBottle’ was not declared in this scope
main.cpp:118: error: ‘Graphic3d_NOM_GOLD’ was not declared in this scope
main.cpp:119: error: ‘class GtkOpenCascade3d’ has no member named ‘getContext’
main.cpp:119: error: ‘Standard_False’ was not declared in this scope
main.cpp:120: error: ‘class GtkOpenCascade3d’ has no member named ‘getContext’
main.cpp:126: error: ‘class GtkOpenCascade3d’ has no member named ‘getView’
main.cpp:127: error: ‘class GtkOpenCascade3d’ has no member named ‘getView’
make: *** [main.o] Error 1
jonas@Ubuntu4:~/gtkmmocascade$

Ok... This was not unexcepted.
Try #2.  I'm going to rename the make file to old and try automake to see what happens

jonas@Ubuntu4:~/gtkmmocascade$ automake
The program 'automake' can be found in the following packages:
* automake
* automake1.4
* automake1.7
* automake1.9
* automake1.8
Try: sudo apt-get install <selected package>
bash: automake: command not found
jonas@Ubuntu4:~/gtkmmocascade$ sudo apt-get install automake1.9
[sudo] password for jonas:
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
automake1.9-doc
The following NEW packages will be installed:
automake1.9
0 upgraded, 1 newly installed, 0 to remove and 24 not upgraded.
Need to get 388kB of archives.
After this operation, 1470kB of additional disk space will be used.
Get:1 http://us.archive.ubuntu.com hardy/main automake1.9 1.9.6+nogfdl-3ubuntu1 [388kB]
Fetched 388kB in 6s (62.6kB/s)
Selecting previously deselected package automake1.9.
(Reading database ... 222950 files and directories currently installed.)
Unpacking automake1.9 (from .../automake1.9_1.9.6+nogfdl-3ubuntu1_all.deb) ...
Processing triggers for man-db ...
Setting up automake1.9 (1.9.6+nogfdl-3ubuntu1) ...

jonas@Ubuntu4:~/gtkmmocascade$ automake
automake: configure.ac’ or `configure.in’ is required
jonas@Ubuntu4:~/gtkmmocascade$

@#%^@  Ok… Should I try to manual fix the make or should I investigate the configure.in or configure.ac.
To the man pages Robin… EECH… Circular logic…. Must be the riddler.
Yet another interesting site.
http://www.lrde.epita.fr/~adl/autotools.html
Hm…. Page 95 of the tutorial gets interesting with a hello world example…
If you download the PDF resize it to a single page…. and then go page to page versus scrolling.
The documentation was designed that way for presentations..
I really need to understand this gnu file structures so I can use these tools….

This entry was posted in Uncategorized. Bookmark the permalink.

2 Responses to Gtkmm and Opencascade

  1. RObin says:

    Hey I was looking to do some work in gtk+ and opencascade.

    It seems like ur post is really interesting hehe.

    So did u get occviewer and gtkmm codes working on ur machine??

    im struggling on that too .

    Can you answer me asap??

    thanks mate!

  2. admin says:

    Well basically no. If memory serves me correctly, I started looking at QT afterwards which looked more interesting to me. The more I got into QT at the time, I didn’t like their terms of use(but that has changed since they when LGPL)
    Then I discovered wxWidgets which was LGPL, and used gtkmm in Linux.
    I was pursuing that activily when Trolltech announced the change to lgpl.
    That really took the winds out of wx sails, life got in the way and I sort of dropped this stuff for a while.
    I just downed the source to HeeksCAD yesterday and it compiled and ran well.
    It uses wxWidgets and my first impression is that its a really nice program.
    If you heart is not set on pursuing gtkmm directly, I suggest studying the code on this project.
    Regards,
    JT

Leave a Reply

Your email address will not be published. Required fields are marked *