LDraw.org Discussion Forums

Full Version: [LDPartEditor] First Alpha Version News (until 2014-09-19)
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3
I wish to announce that I am targeting to release the version 0.8.0 Beta on Monday, 24 December 2014.
Now that's a teaser Wink
I can merge it for you. But I think starting a new thread to announce a working copy is a good idea so would prefer not to.

Oh yeah, I'm really looking forward to your new editor. Maybe we could get a sneak peek for Nicholas (6th December)? ;-) Perhaps a first screenshot?

I wish you a Merry Christmas! - Frohe Weihnachten! Smile
I do not manage to release the alpha version during the holidays..
You have to wait a little longer Wink

Ohhh... one less Christmas gift this year... Wink
Uh ho... I can see a teapotahedron Wink
A first impression of the grid "feature":
[Image: lpe_grid.png]
Looks like the grid is scalable and ajustable for every single pane. Excellent! May I also change the color and the color of the background?

Willy Tschager Wrote:May I also change the color and the color of the background?
Sure, I am going to add this feature, too. As in LDPatternCreator, it will be possible to customise editor colours and shortkeys.
Stay tuned.. Wink
[Image: lpe_syntax_ok_1.png]
Does it come with something SyncEdit did for LDDP?


Last week, I implemented a little startup dialog which will be shown on the first start of the application. I am going to consider a option to use relative paths when the folder of LDPartEditor, the LDraw lib and your part authoring share the same base path. As a result, the application becomes portable.

"base-path"<path-separator>Foo<path-separator>Parts Authoring
"base-path"<path-separator>Bar<path-separator>Baz<path-separator>LDPartEditor_(win32, linux, mac)

[Image: lpe_first_start.png]
I can adapt, but presently my working folder is in a different partition from my LDraw library...
First time I came across the Utah Teapot was back in 1990 when I wondered if I ever could do animations like this:

on my Amiga 3000 (I still have stored away somewhere).

You would have waited for years for the pictures to be rendered those days. Wink
The text editor will highlight errors and warnings when you key-in something wrong (e.g. a collinear triangle, a quad with bad vertex sequence, ...). It will also highlight keywords.

The file will be parsed on save. In this process, all errors, warnings and hints will be written to a list on the bottom of the window. You have the option to quick fix the issues if possible.

Finally, the updated 3D model will be rendered on the 3D editor screen.

edit: It might be is possible to implement a real-time parser (I already did it!!)

[Image: lpe_syntax_ok_1.png]
[Image: lpe_syntax_error.png]
I uploaded a simple 1min video to demonstrate this feature.
It's sometimes a bit hard to follow without comments, but I think I get the picture... The on the fly error spotting looks great!
I am still working on LDPartEditor. Here is a screenshot from Ubuntu 14.04 LTS running the LPE alpha without any proprietary graphics driver installed.

Sweet. Looking good.

Looking forward to the Windows version ;-)

I managed to setup a test environment for LDPartEditor.
By now, I am able to test it on:
  • Linux (32 and 64bit JVM [the "Java Virtual Machine"])
  • Windows XP (32bit JVM)
  • Windows Vista (32bit JVM)
  • Windows 7 64bit (32bit JVM + 64bit JVM)
  • Windows 8 64bit (32bit JVM)
  • {OS X for Mac 64bit (32bit JVM): This machine belogs to my dad. I can use it at rare intervals.}
What I've achieved so far:
  • Undo / Redo feature
  • The tabs are movable and you can drag & drop it into another text editor window from LDrawPartEditor.
  • Efficient realtime syntax highlighting
  • Efficient realtime parsing
  • "Quick Fix" feature for syntax-, logic- and header-errors, warnings and hints
  • Cut, copy, paste & delete

[Image: new_teaser.png]
Yes, it does.
Instead of drawing still teapots and spheres...
[Image: firstrender.png]
I don't quite understand what's the point of this since ldforge already is a thing...
What's the sense of having: MLCad, LDCad, SR3D-Builder, Bricksmith, etc. pp. ?!

I really like to have more than only one programme for the same purpose. Maybe there are some futures that are missing in an other application...

@Nils: I'm looking forward to a public beta.

The implementation of the BFC specification (what is Backface Culling?) into LDPartEditor is done.

All BFC changes will be applied instantly.
[Image: bfc.png]

A "BFC NOCERTIFY" among others:
[Image: uncertified.png]

[Image: clipnnoclip.png]

Here is another example of multiple views. The screenshot was taken before I finished the BFC feature.
Closer and closer to release...??? Wink
Even a pre-alpha would do it. Better soon than perfect.

I fully agree with Willy Smile
The next implementation step were optional lines.

There are different ways to display these lines, e.g.:

1. Show all
2. Show all + control points
3. Draw them as described in the official specification
4. " + control points

However.. I will improve the rendering of (optional) lines in the future.

[Image: condlines1.png]
[Image: condlines2.png]
[Image: condlines3done.png]
How do you go about rendering conditional lines like that..? It apparently is a big hassle when you do it with OpenGL. What's the stunt here?
Imagine an optional line with the four points A2, B2, C2 and D2.

1. Take these points and multiply them by their perspective and modelview matrix M.
As a result you'll get A, B, C and D in screen coordinates.

Matrix4f.transform(M, A2, A);
Matrix4f.transform(M, B2, B);
Matrix4f.transform(M, C2, C);
Matrix4f.transform(M, D2, D);

2. Calculate the line normal

N.x = A.y - B.y;
N.y = B.x - A.x;

3. Calculate the discriminant r by

[b]r[/b] = Vector4f.dot(N, Vector4f.sub(C, A)) * Vector4f.dot(N, Vector4f.sub(D, A));

where Vector4f.dot() calculates the dot product of these two vectors and Vector4f.sub() the difference vector.

4. draw the line between A2 and B2 only if r > 0
[Image: view_demo.png]
Big question is: Will I be able to select a vertex, move it with the mouse in 3D and all lines, cond. lines, triangles, quads connected will be affected by the move?

Short answer: Yes.

Long answer:

There are different usecases for this scenario.

1.) As a user I want to select one / or more vertices move it with the mouse in 3D and all lines, cond. lines, triangles, quads (no vertices from type 1) connected will be affected by the move. An isolated vertex should be defined by a "0 !LD_PART_EDITOR VERTEX x y z" meta command within the file source code. The occurence of these meta commands will produce a discreet warning message. (this is already feasible with the current data model)

2.) As a user I want to select one / or more vertices which are linked to one / or more subfiles move it with the mouse in 3D and all lines, cond. lines, triangles, quads and subfile vertices connected will be affected by the move. (edit: this is now feasible with the current data model)

3.) As a user I want to select all vertices which are linked to one / or more subfiles move it with the mouse in 3D and all lines, cond. lines, triangles, quads connected will be affected by the move. (this is already feasible with the current data model)

The second use case is not trivial to implement, but it is possible.
[Image: different_files_3d.png]
Demo video on Youtube

1. Select all vertices, which are inside the selection rectangle.
[Image: vertex_selection_hidden.png]

2. Select all visible vertices, which are inside the selection rectangle.
[Image: vertex_selection_standard.png]
Sample screenshot for anachrome red (left eye) and cyan (right eye) filters
Dunno if this will proove useful, but it's fun for sure. Next step: Occulus Rift? ;D
LDPartEditor can convert text with a given font and size to a 3D mesh.
[Image: text_2_dat.png]
[Image: vertex_metacommand.png]
0 !LPE VERTEX x y z

As you can see, the vertex definitions from the subfile are also parsed.
Just check this with correct glasses. This looks great Smile

Can you maybe share a model like car.dat in 3D?
ALT+SHIFT+R activates the simultaneously manipulation of the same vertex within the text editor.
[Image: sync_edit.png]
[Image: anaglyph_car.png]
Pages: 1 2 3