POV-Ray : Newsgroups : povray.tools.general : building povmodeler? Server Time
24 Nov 2024 18:30:04 EST (-0500)
  building povmodeler? (Message 13 to 22 of 32)  
<<< Previous 10 Messages Goto Latest 10 Messages Next 10 Messages >>>
From: Dick Balaska
Subject: Re: building povmodeler?
Date: 28 Nov 2019 15:50:02
Message: <5de032fa@news.povray.org>
On 11/28/19 10:26 AM, Bald Eagle wrote:
> Dick Balaska <dic### [at] buckosoftcom> wrote:
> 
>> It built first shot in qtcreator!  And it runs fine, go figure.
> 
> Can you provide instructions so I can replicate?

0) make build directory
mkdir ~/povmodelerton
cd ~/povmodelerton

1) Clone his repo
git clone https://github.com/eticre/povmodeler.git

2) Make sure you have cmake
sudo apt install cmake

3) In Qtcreator, enable cmake
Menu -> Tools -> Options
Left Menu - Kits

3a)
Top Tab - CMake
Add
I called mine cmake-3.10.3
Path: /usr/bin/cmake
I have "Autorun cmake" checked.

3b)
Top Tab - Kits
Add
Name: cmake
It should auto-fill in everything else. Important fields:
   Device Type: Desktop
   CMake Tool: (The one you just created in the cmake tab)

OK to put this mess away

4)
Menu -> Open File
~/povmodelerton/povmodeler/CMakeLists.txt

This takes you to the "Projects" screen.
All of the "Build and Run" options are dimmed out.
Click on "cmake" to enable it.

This will create a slew of text boxes for options, and it should 
auto-fill the bulk of them.

This is done.  There is no "OK" to put it away.

5)
Now, in the grey strip on the far left of the window, click the Edit 
button (Above Design).  Note the project "qt5-pov".

On the bottom of the grey strip, the monitor icon is surrounded with 
"qt5-pov" "Debug"

6)
Build it.  Type ^B to build or if you're really brave ^R to build and run :)

The bottom strip buttons "4 Compile Output"  will let you follow along.

7)
Go get a beer.  Or two.  This takes a while.





> 
>> It's um, very mouse-main-menu oriented.  It seems like a lot of work to
>> do a little.
> 
> I figured - but that's why we code.  Though some things are very hard to do
> _without_ a modeler....

Agreed.  But, I'm not seeing any particular benefit to this modeler.
It's a great start, but for me it needs

1. Tree Editor to easily rearrange the nodes in the tree.

2. Better context menus in the tree.
   I want to right click in the tree, "Insert -> Simple shapes -> Box"

3. Filtered menus.
   Right now every option is always present.  So there are a 1000 menu 
entries with "Pigment" buried in the 23rd menu of the 23rd menu.  If I'm 
on a "texture" node in the tree, I don't need "Global Settings", I need 
"Pigment".

4. Resize object by click-drag in the modeler windows.
   (Grabbing in the Camera view would be hard, but Top/Left/Front views 
should be easy)

5. Highlight the current object when selected in the tree.

6. A bug.  "Render" launches /usr/bin/povray and it and its window just 
stay when it's done.  One must go to the shell and kill it to terminate it.

7. Hotkeys.  I want ^R to render, etc.


> 
> 
> ALSO:
> I just did an apt-get upgrade, and while I was helping out jr, I noticed that
> qtpovray editor now loses my cursor for a while until I arrow-key up and down.
> If I just click on a line, I get a yellow highlight but I have no idea where in
> the line the cursor is.   :(

This is driving me crazy.  I was gonna ask if you started seeing it too.
I am to the point where I need to ask on Qt forums "wtf?".


> 
> 


-- 
dik
Rendered 29,795,558,400 of 49,882,521,600 pixels (59%)


Post a reply to this message

From: Bald Eagle
Subject: Re: building povmodeler?
Date: 28 Nov 2019 17:10:00
Message: <web.5de044dfcdd38c94eec112d0@news.povray.org>
Dick Balaska <dic### [at] buckosoftcom> wrote:

> 3) In Qtcreator, enable cmake
> Menu -> Tools -> Options
> Left Menu - Kits

Hmmm.   I have 3.5.1   I don't see this and that following stuff.

> This is driving me crazy.  I was gonna ask if you started seeing it too.
> I am to the point where I need to ask on Qt forums "wtf?".

I was wondering if you were seeing it or had somehow glossed over it.
No breaky the Qt.

If you're gonna ask, I'd love to see the render button moved to somewhere over
the text-editing region (I let the rest of the stuff hang off-screen), and maybe
have the render window gain focus on starting a new render.

Go eat.
Happy Thanksgiving   :)


Post a reply to this message

From: Dick Balaska
Subject: Re: building povmodeler?
Date: 2 Dec 2019 19:06:42
Message: <5de5a712$1@news.povray.org>
On 11/28/19 5:06 PM, Bald Eagle wrote:
> Dick Balaska <dic### [at] buckosoftcom> wrote:

> 
> If you're gonna ask, I'd love to see the render button moved to somewhere over
> the text-editing region (I let the rest of the stuff hang off-screen),

Press ^R to start a render?

> and maybe
> have the render window gain focus on starting a new render.

So, you have the Render window set to not-always-on-top and you want it 
to pop on top when you start a render?


Hey Jr, are you still using qtpovray?  Do you see this missing text 
I-beam nonsense with slakware?  (BE and I are both Mint; a sample size 
of 1.)

-- 
dik
Rendered 39,329,971,200 of 49,882,521,600 pixels (78%)


Post a reply to this message

From: jr
Subject: Re: building povmodeler?
Date: 3 Dec 2019 04:55:01
Message: <web.5de630bbcdd38c9feeb22ff0@news.povray.org>
hi,

Dick Balaska <dic### [at] buckosoftcom> wrote:
> On 11/28/19 5:06 PM, Bald Eagle wrote:
> > ...
> Hey Jr, are you still using qtpovray?  Do you see this missing text
> I-beam nonsense with slakware?  (BE and I are both Mint; a sample size
> of 1.)

v quick try (haven't really gotten into using it yet[*]).  no, I do not see the
"I-beam nonsense" :-)  (Slackware.  reliable.  ;-))  switching focus between
panes, always get the insertion thing; line highlighting too works as it should.
 v 3.80.0, built mid July last year.

[*] if you could integrate eticre's code base with qtpovray, _that_ would change
everything.  :-)

regards, jr.


Post a reply to this message

From: Dick Balaska
Subject: Re: building povmodeler?
Date: 3 Dec 2019 19:04:06
Message: <5de6f7f6$1@news.povray.org>
On 12/3/19 4:54 AM, jr wrote:
> hi,
> 
> Dick Balaska <dic### [at] buckosoftcom> wrote:
>> On 11/28/19 5:06 PM, Bald Eagle wrote:
>>> ...
>> Hey Jr, are you still using qtpovray?  Do you see this missing text
>> I-beam nonsense with slakware?  (BE and I are both Mint; a sample size
>> of 1.)
> 
> v quick try (haven't really gotten into using it yet[*]).  no, I do not see the
> "I-beam nonsense" :-)  (Slackware.  reliable.  ;-))  switching focus between
> panes, always get the insertion thing; line highlighting too works as it should.
>   v 3.80.0, built mid July last year.

Yeah, I expect that one to work.  It's something recent that made it go 
kablooey.  It's hard because I switched from Ubuntu to Mint at about the 
same time I noticed it.

> 
> [*] if you could integrate eticre's code base with qtpovray, _that_ would change
> everything.  :-)

I played with this a bit more.  It's not as bad as I originally thought. 
  I built a bathtub in it.

I'm thinking of two changes to it.
1) Integrate povrayws, my websocket povray.  Right now, he calls 
/usr/bin/povray lots, waits for user to terminate it, and reads the 
results.  povmodeler *could* just display the texture preview, rather 
than go through those hoops to get it.

Or, I have libpovray.a built.  Maybe I should use that. (That would be 
trickier because I'd need to make a public API out of the VFE in the pov 
source tree.)

2) Exporting SDL is primitive.  Right now, after exporting a scene, one 
must cut/paste the useful object into their own code.  I want
#declare Bathtub=union {...}
and then be able to use that file directly.

My files are organized so that I can either render them directly, or 
include them in another file:

bathtub.inc

#version 3.7;
#ifndef (True)
   #declare True=1;
   #declare BATHTUBINC_TEST=1;
   camera { blah blah }
   light_source { test lights }
#end

#declare Bathtub = union {}

#ifdef (BATHTUBINC_TEST)
   object {Bathtub}
#end

> 
> regards, jr.
> 
> 


-- 
dik
Rendered 40,182,220,800 of 49,882,521,600 pixels (80%)


Post a reply to this message

From: Ton
Subject: Re: building povmodeler?
Date: 4 Dec 2019 06:15:01
Message: <web.5de794a4cdd38c9f3a913d00@news.povray.org>
Hi Dick, if you edit pmpovrayrenderwidget.cpp, and change the +D and +P into -D
and -P (line 122), povray doesn't show the render window, and it doesn't pause.
That whole messagebox for changing the arguments could be removed as well, not
very useful.
I assume you know that you have to recompile povmodeler. Changing the text file
by itself is not enough.....
To copy one object into a text file, you can just select that particular object,
press Ctrl-C, and then in the text file Ctrl-V, and that object appears,
magically, in your text.

Cheers
Ton.


Post a reply to this message

From: jr
Subject: Re: building povmodeler?
Date: 4 Dec 2019 12:15:02
Message: <web.5de7e885cdd38c9feeb22ff0@news.povray.org>
hi,

Dick Balaska <dic### [at] buckosoftcom> wrote:
> On 12/3/19 4:54 AM, jr wrote:
> > Dick Balaska <dic### [at] buckosoftcom> wrote:
> >> On 11/28/19 5:06 PM, Bald Eagle wrote:
> >>> ...
> >> Hey Jr, are you still using qtpovray?  Do you see this missing text
> >> I-beam nonsense with slakware?  (BE and I are both Mint; a sample size
> >> of 1.)
> >
> > v quick try (haven't really gotten into using it yet[*]).  no, I do not see the
> > "I-beam nonsense" :-)  (Slackware.  reliable.  ;-))  switching focus between
> > panes, always get the insertion thing; line highlighting too works as it should.
> >   v 3.80.0, built mid July last year.
>
> Yeah, I expect that one to work.  It's something recent that made it go
> kablooey.  It's hard because I switched from Ubuntu to Mint at about the
> same time I noticed it.
>
> > [*] if you could integrate eticre's code base with qtpovray, _that_ would change
> > everything.  :-)
>
> I played with this a bit more.  It's not as bad as I originally thought.
>   I built a bathtub in it.
>
> I'm thinking of two changes to it.
> 1) Integrate povrayws, my websocket povray.  Right now, he calls
> /usr/bin/povray lots, waits for user to terminate it, and reads the
> results.  povmodeler *could* just display the texture preview, rather
> than go through those hoops to get it.
>
> Or, I have libpovray.a built.  Maybe I should use that. (That would be
> trickier because I'd need to make a public API out of the VFE in the pov
> source tree.)
>
> 2) Exporting SDL is primitive.  Right now, after exporting a scene, one
> must cut/paste the useful object into their own code.  I want
> #declare Bathtub=union {...}
> and then be able to use that file directly.

looks to me like Ton's copy+paste info indicates that integration (sorry to bang
on about it) with you own editor should be straightforward.  I really think that
a single UI/frontend would work.

> My files are organized so that I can either render them directly, or
> include them in another file:

I've started having '#if (0) ... #end' guards around each scene element, and
switch most things off while tuning some bit.  crazy.  :-)


regards, jr.


Post a reply to this message

From: Dick Balaska
Subject: Re: building povmodeler?
Date: 7 Dec 2019 01:28:49
Message: <5deb46a1@news.povray.org>
Am 11/28/19 10:26 AM, also sprach Bald Eagle:
> Dick Balaska <dic### [at] buckosoftcom> wrote:
> 
>> It built first shot in qtcreator!  And it runs fine, go figure.
> 
> Can you provide instructions so I can replicate?

Hey Baldy, try this:

sudo apt install libfreetype6 libfreetype6-dev
sudo apt install libqt5x11extras5
sudo apt install libqt5x11extras5-dev
sudo apt install libqt5opengl5
sudo apt install libqt5opengl5-dev

cd goodplace
mkdir qtpovmodeler
cd qtpovmodeler
git clone https://github.com/dickbalaska/qtpovmodeler.git
cd qtpovmodeler
qmake
make -j4
(get a beer)
./qtpovmodeler


That's what I had to install extra to get it to build.  (And I made a 
qmake file).  I don't know if I had other things installed already that 
you don't.  Let me know.

I renamed my clone of the project because I want to make a .deb and 
there is already a povmodeler.deb .

-- 
dik
Rendered 42,162,508,800 of 49,882,521,600 pixels (84%)


Post a reply to this message

From: Dick Balaska
Subject: Re: building povmodeler?
Date: 7 Dec 2019 01:32:27
Message: <5deb477b$1@news.povray.org>
Am 12/4/19 6:12 AM, also sprach Ton:
> Hi Dick, if you edit pmpovrayrenderwidget.cpp, and change the +D and +P into -D
> and -P (line 122), povray doesn't show the render window, and it doesn't pause.
> That whole messagebox for changing the arguments could be removed as well, not
> very useful.
> I assume you know that you have to recompile povmodeler. Changing the text file
> by itself is not enough.....
> To copy one object into a text file, you can just select that particular object,
> press Ctrl-C, and then in the text file Ctrl-V, and that object appears,
> magically, in your text.
> 
> Cheers
> Ton.

Hoy! Mr Ton.

Those are both very useful tips.  Thank you!

Agreed about getting rid of the useless MessageBox.


-- 
dik
Rendered 42,220,569,600 of 49,882,521,600 pixels (84%)


Post a reply to this message

From: Bald Eagle
Subject: Re: building povmodeler?
Date: 7 Dec 2019 08:50:01
Message: <web.5debacdbcdd38c94eec112d0@news.povray.org>
Thanks - I only needed 2 of the -dev packages, but probably need one or two more
things to get this to work smoothly.
Here's what happened.

I'm thinking it's just an edit in the make file to append '-std=c++11' to the
compiler command?

qtpovmodeler $ make -j4

g++ -c -m64 -pipe -O2 -Wall -W -D_REENTRANT -fPIC -DQT_DEPRECATED_WARNINGS
-DQT_NO_DEBUG -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_X11EXTRAS_LIB -DQT_GUI_LIB
-DQT_XML_LIB -DQT_DBUS_LIB -DQT_CORE_LIB -I. -I. -isystem /usr/include/freetype2
-isystem /usr/include/x86_64-linux-gnu/qt5 -isystem
/usr/include/x86_64-linux-gnu/qt5/QtOpenGL -isystem
/usr/include/x86_64-linux-gnu/qt5/QtWidgets -isystem
/usr/include/x86_64-linux-gnu/qt5/QtX11Extras -isystem
/usr/include/x86_64-linux-gnu/qt5/QtGui -isystem
/usr/include/x86_64-linux-gnu/qt5/QtXml -isystem
/usr/include/x86_64-linux-gnu/qt5/QtDBus -isystem
/usr/include/x86_64-linux-gnu/qt5/QtCore -I.
-I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++-64 -o main.o src/main.cpp
g++ -c -m64 -pipe -O2 -Wall -W -D_REENTRANT -fPIC -DQT_DEPRECATED_WARNINGS
-DQT_NO_DEBUG -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_X11EXTRAS_LIB -DQT_GUI_LIB
-DQT_XML_LIB -DQT_DBUS_LIB -DQT_CORE_LIB -I. -I. -isystem /usr/include/freetype2
-isystem /usr/include/x86_64-linux-gnu/qt5 -isystem
/usr/include/x86_64-linux-gnu/qt5/QtOpenGL -isystem
/usr/include/x86_64-linux-gnu/qt5/QtWidgets -isystem
/usr/include/x86_64-linux-gnu/qt5/QtX11Extras -isystem
/usr/include/x86_64-linux-gnu/qt5/QtGui -isystem
/usr/include/x86_64-linux-gnu/qt5/QtXml -isystem
/usr/include/x86_64-linux-gnu/qt5/QtDBus -isystem
/usr/include/x86_64-linux-gnu/qt5/QtCore -I.
-I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++-64 -o pm2dcontrolpoint.o
src/pm2dcontrolpoint.cpp
g++ -c -m64 -pipe -O2 -Wall -W -D_REENTRANT -fPIC -DQT_DEPRECATED_WARNINGS
-DQT_NO_DEBUG -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_X11EXTRAS_LIB -DQT_GUI_LIB
-DQT_XML_LIB -DQT_DBUS_LIB -DQT_CORE_LIB -I. -I. -isystem /usr/include/freetype2
-isystem /usr/include/x86_64-linux-gnu/qt5 -isystem
/usr/include/x86_64-linux-gnu/qt5/QtOpenGL -isystem
/usr/include/x86_64-linux-gnu/qt5/QtWidgets -isystem
/usr/include/x86_64-linux-gnu/qt5/QtX11Extras -isystem
/usr/include/x86_64-linux-gnu/qt5/QtGui -isystem
/usr/include/x86_64-linux-gnu/qt5/QtXml -isystem
/usr/include/x86_64-linux-gnu/qt5/QtDBus -isystem
/usr/include/x86_64-linux-gnu/qt5/QtCore -I.
-I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++-64 -o pm3dcontrolpoint.o
src/pm3dcontrolpoint.cpp
g++ -c -m64 -pipe -O2 -Wall -W -D_REENTRANT -fPIC -DQT_DEPRECATED_WARNINGS
-DQT_NO_DEBUG -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_X11EXTRAS_LIB -DQT_GUI_LIB
-DQT_XML_LIB -DQT_DBUS_LIB -DQT_CORE_LIB -I. -I. -isystem /usr/include/freetype2
-isystem /usr/include/x86_64-linux-gnu/qt5 -isystem
/usr/include/x86_64-linux-gnu/qt5/QtOpenGL -isystem
/usr/include/x86_64-linux-gnu/qt5/QtWidgets -isystem
/usr/include/x86_64-linux-gnu/qt5/QtX11Extras -isystem
/usr/include/x86_64-linux-gnu/qt5/QtGui -isystem
/usr/include/x86_64-linux-gnu/qt5/QtXml -isystem
/usr/include/x86_64-linux-gnu/qt5/QtDBus -isystem
/usr/include/x86_64-linux-gnu/qt5/QtCore -I.
-I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++-64 -o pmactions.o
src/pmactions.cpp

C++11 [-Wc++0x-compat]
    m_pBasePoint = nullptr;
    ^
src/pm2dcontrolpoint.cpp: In constructor



    m_pBasePoint = nullptr;
                   ^
In file included from src/pmshell.h:23:0,
                 from src/main.cpp:23:

[-Wc++0x-compat]
     PMDockTabGroup( QWidget *parent = nullptr )
     ^
src/pmactions.cpp:33:4: warning: defaulted and deleted functions only available
with -std=c++11 or -std=gnu++11
  = default;
    ^
make: *** [Makefile:4912: pm2dcontrolpoint.o] Error 1
make: *** Waiting for unfinished jobs....

     PMDockTabGroup( QWidget *parent = nullptr )
                                       ^
In file included from src/pmshell.h:23:0,
                 from src/main.cpp:23:

                       const QPixmap &pixmap, QWidget* parent = nullptr, const Q
                                                                ^

     PMDockMainWindow( QWidget* parent = nullptr, Qt::WindowFlags f = nullptr/*
                                         ^

    PMDockMainWindow( QWidget* parent = nullptr, Qt::WindowFlags f = nullptr/* |
                                                                     ^

 DockWidget* createDockWidget( const QPixmap &pixmap, QWidget* parent = nullptr,
                                                                        ^
In file included from src/pmglview.h:39:0,
                 from src/pmshell.h:26,
                 from src/main.cpp:23:

     PMViewBase( QWidget* parent, Qt::WindowFlags f = nullptr )
                                                      ^
In file included from src/pmobjectaction.h:27:0,
                 from src/pmglview.h:44,
                 from src/pmshell.h:26,
                 from src/main.cpp:23:

    PMMetaObject( const QString& className, PMMetaObject* superClass = nullptr,
                                                                       ^

                  PMObjectFactoryMethod factoryMethod = nullptr );
                                                        ^


    bool isAbstract() const { return m_factory == nullptr; }
                                                  ^



         if( it == m_propertiesDict.end() ) return nullptr;
                                                   ^
In file included from src/pmshell.h:26:0,
                 from src/main.cpp:23:
src/pmglview.h: At global scope:

              QWidget* parent = nullptr, Qt::WindowFlags f = nullptr );
                                ^

              QWidget* parent = nullptr, Qt::WindowFlags f = nullptr );
                                                             ^




parameter 4, which is not yet defined
       return new PMGLView( part, PMGLView::PMViewPosX, parent );
                                                               ^
In file included from src/main.cpp:23:0:
src/pmshell.h: At global scope:

    PMDockWidget* createView( const QString& t, PMViewOptions* c = nullptr,
                                                                   ^
In file included from src/pmrendermanager.h:26:0,
                 from src/main.cpp:24:

                    const PMObjectList* objectsBetween = nullptr ) const;
                                                         ^

                    const PMObjectList* objectsBetween = nullptr ) const;
                                                         ^


 wItem* getTreeItem() {  if ( pmt_item ) return pmt_item; else return nullptr; }
                                                                      ^



    virtual PMObject* firstChild() const { return nullptr; }
                                                  ^



    virtual PMObject* lastChild() const { return nullptr; }
                                                 ^



    virtual PMObject* childAt( uint ) const { return nullptr; }
                                                     ^



    virtual PMViewStructure* viewStructure() { return nullptr; }
                                                      ^



    virtual PMDeclare* linkedObject() const { return nullptr; }
                                                     ^


    bool mementoCreated() const { return m_pMemento != nullptr; }
                                                       ^
In file included from src/main.cpp:24:0:
src/pmrendermanager.h: At global scope:

     PMRenderManager( QWidget *parent = nullptr );
                                        ^


    PMShell* shell = nullptr;


Post a reply to this message

<<< Previous 10 Messages Goto Latest 10 Messages Next 10 Messages >>>

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.