Giter Club home page Giter Club logo

tcobbs / ldview Goto Github PK

View Code? Open in Web Editor NEW
86.0 86.0 17.0 40.19 MB

Real-time 3D viewer for displaying LDraw models

Home Page: https://tcobbs.github.io/ldview/

License: GNU General Public License v2.0

Batchfile 0.03% CMake 0.13% Makefile 0.36% C 11.00% HTML 15.34% C++ 52.55% Objective-C 1.15% Inno Setup 0.63% Objective-C++ 5.63% Shell 0.69% Redcode 0.17% QMake 0.32% Perl 0.09% C# 0.47% Roff 0.01% Rich Text Format 11.43%
cocoa ldraw ldraw-viewer lego linux mac-os model qt rendering win32 windows

ldview's People

Contributors

hfiguiere avatar pbartfai avatar tcobbs avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ldview's Issues

Feature request: override minimum camera zoom

Currently, there is a point where you can no longer zoom in the camera in Examine mode. Could you add an option somewhere to disable this so I can zoom all the way to the center? I have a very wide but short model which does not work well with the default behavior. Thanks.

Compilation failure on Ubuntu Gnome 16.10 64Bit

Currently trying to build from Git source and get these errors:

ldview (osmesa)


                                  ^

cd .obj-osmesa; g++ -o ../Headerize Headerize.o -L../../TCFoundation -L../../TRE -L../../LDLoader -L../../LDLib -L../../LDExporter -L/usr/X11R6/lib -L../TCFoundation -lTCFoundation-osmesa -ljpeg -lpng -lz
./Headerize ../Textures/StudLogo.png
./Headerize ../LDViewMessages.ini
g++ -o .obj-osmesa/ldview.o -Wall -D_GNU_SOURCE -O3 -D_OSMESA -D_NO_BOOST -I.. -I../include -c ldview.cpp
ldview.cpp:16:23: fatal error: GL/osmesa.h: No such file or directory
#include <GL/osmesa.h>
^
compilation terminated.


ldview (qt)

g++ -m64 -Wl,-O1 -o LDView .obj/QTMain.o .obj/ModelViewerWidget.o .obj/Preferences.o .obj/LDViewErrors.o .obj/LDViewExtraDir.o .obj/AlertHandler.o .obj/LDViewSnapshotSettings.o .obj/LDViewPartList.o .obj/misc.o .obj/LDViewJpegOptions.o .obj/LDViewModelTree.o .obj/LDViewBoundingBox.o .obj/LDViewMainWindow.o .obj/LDViewLatitudeLongitude.o .obj/LDViewMpdModel.o .obj/LDViewExportOption.o .obj/LDViewCustomizeToolbar.o .obj/moc_ModelViewerWidget.o .obj/moc_Preferences.o .obj/moc_LDViewErrors.o .obj/moc_LDViewExtraDir.o .obj/moc_LDViewPartList.o .obj/moc_LDViewJpegOptions.o .obj/moc_LDViewSnapshotSettings.o .obj/moc_LDViewModelTree.o .obj/moc_LDViewLatitudeLongitude.o .obj/moc_LDViewMpdModel.o .obj/moc_LDViewExportOption.o .obj/moc_LDViewMainWindow.o .obj/moc_About.o .obj/moc_LDViewCustomizeToolbar.o .obj/qrc_resources.o -L/usr/X11R6/lib64 -L/usr/lib/x86_64-linux-gnu -L../TCFoundation -L../LDLib -L../LDLoader -L../TRE -L../boost/lib -lLDraw -L../LDExporter -lLDLoader -lTRE -lTCFoundation -lz -ljpeg -lpng -lGLU -lgl2ps -lLDExporter -ltinyxml -L../lib -l3ds-64 -lboost_thread -lboost_system -lpthread -lGL -lQtOpenGL -lQtGui -lQtCore
/usr/bin/ld: cannot find -lboost_thread
/usr/bin/ld: cannot find -lboost_system
collect2: error: ld returned 1 exit status
Makefile:163: recipe for target 'LDView' failed
make: *** [LDView] Error 1

Libraries are seemingly installed and present on the system before build.

Camera jiggle in walk mode

There is a slight jiggle after rotating the camera in walk mode. It is kind of annoying. I think it would be better if camera rotation used azimuth and altitude in walk mode like in a first-person shooter video game, thereby eliminating the jiggle. Thanks!

Windows UI looks 'older' in 4.3 compared to 4.2

I just updated LDView 4.2 to LDView 4.3 and I noticed that the Windows UI has changed.

For example take a look at this image in LDView 4.2 I took yesterday for an (unrelated) LPub3D issue:
45512385-e2f21880-b79f-11e8-93ea-34806df4cf2e

This is how it now looks in LDView 4.3:
image

It looks more Windows XP'ish instead of Windows 7/10 ish. And it's not just there, the whole UI has gone backwards. Dialogs, toolbars, etc.

I'm using Windows 10 Pro 64 bit with LDView 4.3 64 bit.

ldraw-thumbnailer not functioning

manually executing ldraw-thumbnailer as specified within the ldview.thumbnailer file for linux based systems fails.

Shouldn't the thumbnailer use the osmesa version instead?

Thanks for looking into it.

Current output:

_ $ ldraw-thumbnailer %u %o %s
X Error: GLXBadContext 169
Extension: 155 (Uknown extension)
Minor opcode: 6 (Unknown request)
Resource id: 0x340001a
X Error: BadValue (integer parameter out of range for operation) 2
Extension: 155 (Uknown extension)
Minor opcode: 3 (Unknown request)
Resource id: 0x0
X Error: GLXBadContext 169
Extension: 155 (Uknown extension)
Minor opcode: 5 (Unknown request)
Resource id: 0x340001a
X Error: 0 0
Extension: 155 (Uknown extension)
Minor opcode: 26 (Unknown request)
Resource id: 0x0
QGLContext::makeCurrent(): Failed.
X Error: GLXBadContext 169
Extension: 155 (Uknown extension)
Minor opcode: 5 (Unknown request)
Resource id: 0x340001a
X Error: 0 0
Extension: 155 (Uknown extension)
Minor opcode: 26 (Unknown request)
Resource id: 0x0
QGLContext::makeCurrent(): Failed.
/usr/bin/ldraw-thumbnailer: line 20: 12673 Segmentation fault /usr/bin/LDView "$input" -SaveSnapshot=$output.png -CheckPartTracker=0 -SaveWidth=$size -SaveHeight=$size -ShowErrors=0 -SaveActualSize=0

Minimum clip distance

When I zoom really close to an object, the object and everything near it gets clipped by the clipping plane. Is there a way to set the distance of this plane to some smaller amount (or disable it)? Thanks.

Converting dat file hangs after 40 minutes

Hi there.

Thanks for making this repo available!

I am trying to run LDView on Ubuntu 16.04 (below in Docker to show that it is a clean install of Ubuntu):

docker run -it --rm ubuntu:16.04 /bin/bash
apt update -yqq && apt install -yqq curl unzip apt-utils desktop-file-utils xvfb locales
locale-gen en_US.UTF-8
curl http://downloads.sourceforge.net/ldview/ldview-4.2-ubuntu-16.04.amd64.deb?download -L -o ldview-4.2-ubuntu-16.04.amd64.deb
dpkg -i ldview-4.2-ubuntu-16.04.amd64.deb
apt-get install -f
xvfb-run -e error.log -a LDView ldraw/parts/73436.dat -ExportFile=MyModel.pov

The last command prints and hangs with this message: Failed to load translation en

Any ideas on how to mitigate this? How long should converting a part simple part from Ldraw take? I'm running with 61 GB RAM and 1 Nvidia K80 GPU.

Thanks!

Use standard gtk dialog for open/save

The current LDView release does not use standard gtk open/save dialog. Being able to access shortcuts and recently used files/folders would greatly improve the overall user experience if implemented.

Other Qt-based applications, such as LeoCAD have implemented the use of that dialog.

Could it possibly be done?

Current Dialog:

screenshot from 2017-10-24 14-46-41

What it should be:
screenshot from 2017-10-24 14-47-45

Thank you

AA not functioning

ldview_gl_info.txt
AA settings have no effect when toggled.

I've attached a comparison shot in between leocad (with functioning AA) and LDView (with AA setting enabled but not functioning).

I've also attached the gl_info for my current setup.

Thanks

screenshot from 2017-12-10 13-44-06

Unable to build LDView on xUbuntu 20.04

Hi,

I am using xUbuntu 20.04 and have some problems building LDview.

$ qmake --version
QMake version 3.1
Using Qt version 5.12.8 in /usr/lib/x86_64-linux-gnu

When doing make:

$ make
...
g++  -o LDView .obj-qt5/QTMain.o .obj-qt5/ModelViewerWidget.o .obj-qt5/Preferences.o .obj-qt5/LDViewErrors.o .obj-qt5/LDViewExtraDir.o .obj-qt5/AlertHandler.o .obj-qt5/LDViewSnapshotSettings.o .obj-qt5/LDViewPartList.o .obj-qt5/misc.o .obj-qt5/LDViewJpegOptions.o .obj-qt5/LDViewModelTree.o .obj-qt5/LDViewBoundingBox.o .obj-qt5/LDViewMainWindow.o .obj-qt5/LDViewLatitudeLongitude.o .obj-qt5/LDViewMpdModel.o .obj-qt5/LDViewExportOption.o .obj-qt5/LDViewCustomizeToolbar.o .obj-qt5/SnapshotTaker.o .obj-qt5/SnapshotAlertHandler.o .obj-qt5/qrc_resources.o .obj-qt5/moc_ModelViewerWidget.o .obj-qt5/moc_Preferences.o .obj-qt5/moc_LDViewErrors.o .obj-qt5/moc_LDViewExtraDir.o .obj-qt5/moc_LDViewPartList.o .obj-qt5/moc_LDViewJpegOptions.o .obj-qt5/moc_LDViewSnapshotSettings.o .obj-qt5/moc_LDViewModelTree.o .obj-qt5/moc_LDViewLatitudeLongitude.o .obj-qt5/moc_LDViewMpdModel.o .obj-qt5/moc_LDViewExportOption.o .obj-qt5/moc_LDViewMainWindow.o .obj-qt5/moc_About.o .obj-qt5/moc_LDViewCustomizeToolbar.o   -L../TCFoundation -L../LDLib -L../LDLoader -L../TRE -L../boost/lib -lLDraw-qt5 -L../LDExporter -lX11 -lLDLoader-qt5 -lTRE-qt5 -lTCFoundation-qt5 -lz -ljpeg -lpng -lGLU -lgl2ps -lLDExporter-qt5 -ltinyxml -L../lib -l3ds -lpthread /usr/lib/x86_64-linux-gnu/libGL.so /usr/lib/x86_64-linux-gnu/libQt5OpenGL.so /usr/lib/x86_64-linux-gnu/libQt5PrintSupport.so /usr/lib/x86_64-linux-gnu/libQt5Widgets.so /usr/lib/x86_64-linux-gnu/libQt5Gui.so /usr/lib/x86_64-linux-gnu/libQt5Core.so   
/usr/bin/ld: skipping incompatible ../lib/lib3ds.a when searching for -l3ds
/usr/bin/ld: ../LDExporter/libLDExporter-qt5.a(LD3dsExporter.o): in function `LD3dsExporter::doExport2(LDLModel*, Lib3dsNode*, float const*, int, bool, bool, bool)':
/home/nine/ldview/LDExporter/LD3dsExporter.cpp:325: undefined reference to `lib3ds_mesh_resize_vertices'
/usr/bin/ld: /home/nine/ldview/LDExporter/LD3dsExporter.cpp:328: undefined reference to `lib3ds_mesh_resize_faces'

I poked around and found the issue is linker trying to link with lib3ds.a instead of lib3ds-64.a

Using some message on Ldview.pro I printed the values of QT_ARCH and QMAKE_PLATFORM on identifier unix :

QT_ARCH: x86_64
QMAKE_PLATFORM: linux unix posix

So I did a change on LDView.pro :

diff --git a/QT/LDView.pro b/QT/LDView.pro
index 6a7d00c8..8026b560 100644
--- a/QT/LDView.pro
+++ b/QT/LDView.pro
@@ -329,7 +329,7 @@ unix {
 	exists(../boost/lib/libboost_thread.a){
 		BOOSTLIB = ../boost/lib/libboost_thread.a
 	}
-   linux-g++-64{
+   contains(QT_ARCH, "x86_64") {
 		contains(DEFINES,EXPORT_3DS) {
 			LIBS += -l3ds-64
 		}

I don't have a 32 bit machine to validate if this has impact or not and I find strange only happen to me.

I am using only command lines to build qmake LDView.pro && make.

LDView crashed on start

Version: ldview-0-Build987.1.glibc2.14-x86_64.AppImage

$ ./ldview-0-Build987.1.glibc2.14-x86_64.AppImage
LDView: LDView: no version information available (required by LDView)
LDView: LDView: no version information available (required by LDView)
LDView: LDView: no version information available (required by LDView)
LDView: LDView: no version information available (required by LDView)
LDView: LDView: no version information available (required by LDView)
LDView: LDView: no version information available (required by LDView)
LDView: LDView: no version information available (required by LDView)
LDView: LDView: no version information available (required by LDView)
LDView: LDView: no version information available (required by LDView)
LDView: LDView: no version information available (required by LDView)
LDView: LDView: no version information available (required by LDView)
LDView: LDView: no version information available (required by LDView)
LDView: LDView: no version information available (required by LDView)
LDView: LDView: no version information available (required by LDView)
LDView: LDView: no version information available (required by LDView)
LDView: LDView: no version information available (required by LDView)
LDView: LDView: no version information available (required by LDView)
LDView: LDView: no version information available (required by LDView)
LDView: LDView: no version information available (required by LDView)
LDView: LDView: no version information available (required by LDView)
LDView: LDView: no version information available (required by LDView)
LDView: LDView: no version information available (required by LDView)
LDView: LDView: no version information available (required by LDView)
LDView: LDView: no version information available (required by LDView)
LDView: relocation error: LDView: symbol , version  not defined in file  with link time reference

Save dialogs don't work properly on GNOME

The dialogs that are summoned when exporting or saving don't allow you to enter a filename; you can only select existing files in the folder and overwrite them. If there are no files of the required filetype, the Save/Export button remains greyed out.

screenshot from 2018-07-07 14-04-39

Operating system is Arch Linux x86-64, desktop is GNOME 3.28.2, LDView is 4.3.

Chaining SaveSnapshot with other preferences like DefaultLatitude

I'm trying to take a series of snapshots of a model with different angles from the command line and tried to use the following command:
./LDView 3002.dat -DefaultLatitude=10 -DefaultLongitude=10 -SaveSnapshot=test.png

./LDView 3002.dat -DefaultLatitude=10 -DefaultLongitude=10 works fine but not with -SaveSnapshot..

Is this the preferred way of usage or is there a different way to achieve a series of snapshots from different angles using the command line?

OS: MacOS

Sourceforge site give no indication that more recent releases are available here

This is more of a "meta" project issue.

It's not well advertised that LDView development and releases have moved here from SourceForge. I almost didn't know that more recent versions exists, except by a bit of random searching I did mostly after the fact.

The ldraw.org website also points at the older SourceForge site: https://wiki.ldraw.org/wiki/LDView (I tried to update it myself, but the change was rejected). I sent a follow up email to the webmaster of ldraw.org, but I can't do anything about SourceForge.

Love the project! Amazing work. Wouldn't want others to miss out.

Do not hardcode absolute paths

Thanks for trying out the new OBS AppImage capabilities.

Currently the AppImage does not work on a system which does not already have ldview installed in the system:

me@host:~$ /home/me/Downloads/ldview-0.glibc2.14-x86_64.AppImage 
Could not find LDViewMessages.ini file.
Please copy this file to /usr/share/ldview directory.

This is because the AppImage is mounted to a temporary location and not to /usr.

Somewhat dirty workaround

On a local machine (this is not what you should do on OBS as it is just a proof-of-concept):

/home/me/Downloads/ldview-0.glibc2.14-x86_64.AppImage --appimage-extract
cd squashfs-root/
rm AppRun 
wget https://github.com/probonopd/AppImageKit/releases/download/continuous/AppRun-x86_64 -O AppRun
chmod a+x AppRun 
find usr/ -type f -exec sed -i -e 's|/usr|././|g' {} \;
cd ..
wget https://github.com/probonopd/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage
chmod a+x appimagetool-x86_64.AppImage 
./appimagetool-x86_64.AppImage squashfs-root/
./LDView-x86_64.AppImage # Works

Proper fix

Change the source code so that the path to the share/ldview directory is determined relative to bin/ldview rather than as an absolute path, in order to allow for binary relocateability.

Does not load files alongside model

Report on ldraw.org from Philo:

As far as I can tell, there is a file path problem: 4.4 doesn't seem to find referred parts or subparts lying in the same folder or path relative folder.

Feature Request: Add commandline parameter for "Transparent" setting in "General/Colors" section

Hi there, i misunderstood the setting -SaveAlpha (alpha channel of a png file), sorry for that. I thought it had s.th. to do with the "General/Colors" Section checkbox "Transparent".

So my feature request would be to have a command line parameter implemented for the "Transparent" checkbox under "General/Colors", similar to "DefaultColor3" and "BackgroundColor3".

What do you think?

Thanks for your great work and sorry again for my confusion.

Crash when using SaveSnapshot from Commandline

When I try to use SaveSnapshot option the command crashes (Segmentation Fault). Interestingly problem appears only when using command line (I can export from GUI just fine).

Example command:

./LDView -v desin.ldr  -SaveSnapshot="design.png"

I tried running it under gdb and it seems that it crashes on this line: https://github.com/tcobbs/ldview/blob/master/LDLib/LDSnapshotTaker.cpp#L1521

Is it a known issue? Could it have something to do with this stuff 4f6209d ?

Version: current master (42bb3c5)
OS: Arch Linux

LDView on Ubuntu 16.04

Hi there.

Thanks for making this repo available!

I am trying to run LDView on Ubuntu 16.04 (below in Docker to show that it is a clean install of Ubuntu):

docker run -it --rm ubuntu:16.04 /bin/bash
apt update -yqq && apt install -yqq curl unzip apt-utils
curl http://downloads.sourceforge.net/ldview/ldview-4.2-ubuntu-16.04.amd64.deb?download -L -o ldview-4.2-ubuntu-16.04.amd64.deb
dpkg -i ldview-4.2-ubuntu-16.04.amd64.deb
apt-get install -f

The last command terminates with this error: Errors were encountered while processing: ldview E: Sub-process /usr/bin/dpkg returned an error code (1)

Any ideas on how to mitigate this? Here is more of the trace:

Setting up libmysqlclient20:amd64 (5.7.32-0ubuntu0.16.04.1) ...
Setting up qtchooser (52-gae5eeef-2build1~gcc5.2) ...
Setting up qdbus (4:4.8.7+dfsg-5ubuntu2) ...
Setting up libqt4-dbus:amd64 (4:4.8.7+dfsg-5ubuntu2) ...
Setting up libqt4-sql-mysql:amd64 (4:4.8.7+dfsg-5ubuntu2) ...
Setting up libqtgui4:amd64 (4:4.8.7+dfsg-5ubuntu2) ...
Setting up libqt4-opengl:amd64 (4:4.8.7+dfsg-5ubuntu2) ...
Setting up gconf-service (3.2.6-3ubuntu6) ...
Setting up dh-python (2.20151103ubuntu1.2) ...
Setting up python3 (3.5.1-3) ...
running python rtupdate hooks for python3.5...
running python post-rtupdate hooks for python3.5...
Setting up qt-at-spi:amd64 (0.4.0-3) ...
Setting up libqt4-declarative:amd64 (4:4.8.7+dfsg-5ubuntu2) ...
Setting up gconf-service-backend (3.2.6-3ubuntu6) ...
Setting up gconf2 (3.2.6-3ubuntu6) ...
Setting up ldview (4.2) ...
/var/lib/dpkg/info/ldview.postinst: 4: /var/lib/dpkg/info/ldview.postinst: update-desktop-database: not found
dpkg: error processing package ldview (--configure):
 subprocess installed post-installation script returned error exit status 127
Processing triggers for libc-bin (2.23-0ubuntu11.2) ...
Processing triggers for systemd (229-4ubuntu21.29) ...
Processing triggers for sgml-base (1.26+nmu4ubuntu1) ...
Errors were encountered while processing:
 ldview
E: Sub-process /usr/bin/dpkg returned an error code (1)

TEXMAP and BFC INVERTNEXT do not work together

0 BFC CERTIFY CCW

0 !TEXMAP START PLANAR -100 200 0  100 200 0  -100 0 0 sample.png
0 BFC INVERTNEXT
1 16 00 0 0 -100 0 0 0 200 0 0 0 -100 2-4cyli.dat
0 !TEXMAP END

The BFC INVERTNEXT statement in the above code isn't processed correctly:

  • with BFC disabled in LDView, the cylinder and texture render normally

Image4

  • with BFC enabled and face highlighting disabled, the cylinder's front (inner) face renders in colour-16, but its back face is also rendered - with the texture applied to it

Image5

  • with red back faces enabled, the front face of the cylinder is highlighted in red and the texture is applied to both faces

Image6

  • with green front faces enabled, the back face of the cylinder is highlighted in green and the texture is applied to both faces

Image7

Seg fault when using the command line to export files on Ubuntu 18.04

Greetings
Tried to use the command line to export some pov files and i am getting a seg fault on ubuntu 18.04
LDVIew is build from source without any errors and works fine when i enter the GUI to export the files

I run GDB and here is what i get

gdb --args /usr/bin/LDView 3010.ldr -ExportFile=3010.pov
GNU gdb (Ubuntu 8.1-0ubuntu3.2) 8.1.0.20180409-git
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
http://www.gnu.org/software/gdb/bugs/.
Find the GDB manual and other documentation resources online at:
http://www.gnu.org/software/gdb/documentation/.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /usr/bin/LDView...(no debugging symbols found)...done.
(gdb) run
Starting program: /usr/bin/LDView 3010.ldr -ExportFile=3010.pov
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7fffe92d4700 (LWP 4555)]
[New Thread 0x7fffe8ad3700 (LWP 4556)]
[New Thread 0x7fffe3fff700 (LWP 4557)]
[New Thread 0x7fffe37fe700 (LWP 4558)]

Thread 1 "LDView" received signal SIGSEGV, Segmentation fault.
tcache_get (tc_idx=3) at malloc.c:2943
2943 malloc.c: No such file or directory.
(gdb)

could it be similar to #14 ?

Camera movement speed

Could you make the movement speed in "Walk" mode adjustable? Sometimes it is too slow, other times it is too fast. It is especially frustrating when I am not getting a good FPS and am trying to navigate tight hallways.

Do you have leftover keyboard bindings to increase/decrease the speed? Maybe PageUp and PageDown? Thanks.

IniFile load error message

Hi Travis - I compiled an OSMesa-CUI for MacOSX. All seems well except I get this error message (but successful result) because if (!TCUserDefaults::isIniFileSet()) link returns false when, in fact, it should return true because my IniFile is specified on the command line.

After some debugging, I tracked down the fault to virtual void addItem(Type newItem) link. This function is called by int TCStringArray::addString(const char* newString) link and I can verify the argv IniFile string is received by addString(const char* newString) and passed to addItem(Type newItem); however, the string is never received by and, as a consequence, is not passed to virtual void insertItem(Type newItem, unsigned int index = 0) link. While the IniFile string (or any strings in argv for that matter) is not received by insertItem(Type newItem, unsigned int index = 0), The TCArray<void*>::argArray object's 'allocated' and 'count' attributes are properly updated. The 'items' attribute remains null however because there is not 'newItem' to insert.

As there is no string in items, const char *iniFile = defCommandLineStringForKey("IniFile") link returns NULL so setIniFile(iniFile) link is never executed.

As addItem(Type newItem) is of type virtual void, perhaps this behaviour may be related to the changes from back in 2008 in Change TCArray to be templated, to allow TCTypedValueArray to be ported to 64 bit (which wasn't possible with the void*-based TCArray).

What do you think?

Cheers,

Invalid null pointer when snapshot suffix not specified

In the latest codebase, when a snapshot suffix is not specified, e.g. when exporting a part list, an invalid null pointer exception is thrown.

Screenshot - 08_10_2019 , 12_49_56

Invalid null pointer
Screenshot - 08_10_2019 , 12_50_37

It seems like the UCSTR snapshotSuffixTemp pointer is not checked for null before assignment to snapshotSuffix.
Screenshot - 08_10_2019 , 12_51_11

This update seems to correct the unexpected behaviour.
Screenshot - 08_10_2019 , 13_47_04

Cheers,

Feature request: set camera XYZ using user input

The program already allows users to set the camera lat/long/radius positions. I think it would also be nice to be able to set the XYZ coordinates of the camera, as well as viewing angles and FOV. Thanks!!

Model stats

Could you maybe add a popup dialog listing the number of quads, tris, vertices, parts, sub-models, lines of different types, etc. etc.? Thanks!

Edges don't properly highlight in the model tree

If you select a whole part in the model, the part's edges don't get highlighted. If you select box5.dat, sometimes they highlight, and sometimes they don't. If you select 4-4edge.dat, they don't highlight. I'm pretty sure edges should ALWAYS highlight.

Mouse wheel tilt

My mouse wheel can be tilted to either side. Can I map this mouse function to a camera control? Maybe it could already come mapped by default? Thanks.

Record camera movement

It would be nice if we could start and stop recording of the camera movement path and either play it back or export it to a POV-Ray script. Thanks!

[ed]

This is a low priority feature request.

BFC with face highlighting is very slow

This didn't used to be the case, although I'm not sure which was the last release that didn't have the issue.

If any form of face highlighting is enabled, rendering speed drops dramatically for all but the simplest models/parts. It also drops off as you zoom into the model.

Interestingly, disabling BFC entirely runs much much faster.

Anaglyph stereo view

You have two stereo modes already. Could you add an anaglyph mode? I have red/blue 3D glasses and would like to make use of them.

OSMesa version not working on Debian Buster

Hi,

I'm trying to run OSMesa version on Debian Buster (both self compiled and installed form deb package, 4.3 and 4.4) and I keep getting following error message.

OSMesa not working!
viewport: 0, 0, 0, 0

Everything works as espected when I try to run ldview on Debian Stretch, Ubuntu 21.04 or Alpine.

Any ideas where the problem might be? Corrupted libosmesa on Debian Buster? (I am trying with debian:buster-slim)

Texmap z-fighting issue at high magnification

Image1

Only happens when the part is used in a model - viewing the part itself is fine.

The issue is not present in the 4.3 release, just in the build I've done from current github code.

Panning (Ctrl+Mouse Drag) not in exported cameras

From Steffen on forums.ldraw.org:

I was double-checking some problem I had with camera location and lookat export to POVRay.
The problem I am suspecting is that the camera location shifting which can be done by CTRL+Mousedrag
does not make it into the POVRay export. During that I wanted to confirm that the camera location export
to clipboard (menu: "Tools" / "Show View Info...") works correctly. And voila:
there the same problem occurs: if you shift the camera by CTRL-Mousedrag, this change is not reflected in the camera data which is copied to
the clipboard. I was able to reproduce this bug also in the currently official release 4.3.

Unicode character ö not supported in latest codebase

The latest LDView codebase fails to translate unicode character ö. This behaviour has been present for quite some time. This thread on the LDraw forum illustrates the behaviour: LPub3D - Submodel not shown in main model.

When attempting to render an image at the following path: "C:\Users\Trevor\Desktop\LPub\JörgSchwarzländer\LPub3D\tmp\001_gearbox_00.ldr" ...

The latest release build works as expected:
Screenshot - 06_10_2019 , 23_54_15

However, a build from the latest source fails with the following messages:

Screenshot - 06_10_2019 , 23_56_22

The following shots show the root of the problem. The ConvertUTF16toUTF8 function fails to convert the unicode character in the switch statement beginning at line 269 in ConvertUTF.c.

Here the conversion starts with a valid 'src' path
Screenshot - 06_10_2019 , 23_58_52

Here we see the path conversion is ok up to J...
Screenshot - 07_10_2019 , 00_11_55

At the ö character, garbage is returned.
Screenshot - 07_10_2019 , 00_12_32

The conversion completes with the following return:
Screenshot - 06_10_2019 , 23_59_25

Cheers,

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.