You love the super-long news titles, right? 🙂 Again I have a backlog of announcements to do, to communicate everything happening around the engine development. There will be more news in 2024 (stay tuned for traditional “summary of this year, plans for next”), for today a bag of improvements to announce:
- We have a new unit
CastleTransformManipulate
with 2 new components:TCastleTransformHover
(visualize theTCastleTransform
we hover over) andTCastleTransformManipulate
(visualize selection and move / rotate / scaleTCastleTransform
).Together, they allow you to implement selection / manipulation of 3D objects in your own applications just like the Castle Game Engine editor does.
Their usage is rather simple:
- just create
TCastleTransformManipulate
, callTCastleTransformManipulate.SetSelected
, setTCastleTransformManipulate.Mode
. -
just create
TCastleTransformHover
, setTCastleTransformHover.Current
.
Practical examples of using them are in:
- examples/ifc, example of using IFC in our engine.
Note: We still work on 2 examples above (we want to improve some things in IFC support, and we want to make mORMot example really support collaborative editing). But their usage of
CastleTransformManipulate
is now completely stable 🙂 - just create
-
We support toggling any
TIndexedFaceSetNode
to display as wireframe.To do this, set
TAbstractShapeNode.Shading
toshWireframe
using Pascal. If you’re unsure how to manipulate X3D nodes from Pascal, read Writing code to modify scenes and transformations manual, section 11. Building a mesh using code and X3D docs.Or, in X3D file, set
shading="WIREFRAME"
following our X3D Shape.shading docs. Test X3D file is shading_wireframe.x3dv.Wireframe display done this way is often useful for model debugging, inspection etc. While you can also construct lines explicitly (using
TLineSetNode
,TIndexedLineSetNode
), it is sometimes more convenient to just define a regular mesh usingTIndexedFaceSetNode
and then toggle it (based on any condition) to wireframe.For some design decisions (e.g. why this is called “shading”) see Shape.shading docs.
-
We have fixed Steam achievements usage (getting, setting) with Delphi.
-
I made a presentation about our engine at the beginning of December at Meetup Delphi in Bielsko-Biała (Poland). This was a bigger presentation about engine features, physics, Blender, Sketchfab, Steam integration.
( If you don’t speak Polish, but you’re interested in the topics — slides from my previous presentation in Cologne are the closest equivalent in English. )