Skip to content

Commit cb22717

Browse files
committed
feature(app): Add more fields to output
* Scenes * Rotation * Scale * Translation
1 parent 3ac7d55 commit cb22717

File tree

1 file changed

+29
-1
lines changed

1 file changed

+29
-1
lines changed

app/Command/GLTF/Loader/Run.hs

+29-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import Text.GLTF.Loader
55

66
import Lens.Micro
77
import Lens.Micro.Platform ()
8-
import Linear (V3 (..), V4 (..))
8+
import Linear (Quaternion (..), V3 (..), V4 (..))
99
import Numeric
1010
import RIO
1111
import qualified RIO.Text as Text
@@ -41,20 +41,26 @@ reportError err =
4141
reportVerbose :: Gltf -> RIO App ()
4242
reportVerbose gltf = do
4343
reportAsset $ gltf ^. _asset
44+
logInfo "" -- Blank line
45+
reportScenes $ gltf ^. _scenes
4446

4547
logInfo "" -- Blank line
4648
reportNodes gltf $ reportMeshVerbose gltf
4749

4850
reportSummary :: Gltf -> RIO App ()
4951
reportSummary gltf = do
5052
reportAsset $ gltf ^. _asset
53+
logInfo "" -- Blank line
54+
reportScenes $ gltf ^. _scenes
5155

5256
logInfo "" -- Blank line
5357
reportNodes gltf reportMeshSummary
5458

5559
reportGltf :: Gltf -> RIO App ()
5660
reportGltf gltf = do
5761
reportAsset $ gltf ^. _asset
62+
logInfo "" -- Blank line
63+
reportScenes $ gltf ^. _scenes
5864

5965
logInfo "" -- Blank line
6066
reportNodes gltf $ reportMesh gltf
@@ -65,6 +71,14 @@ reportAsset asset = do
6571
^. _assetGenerator . to (fromMaybe "Unknown") . to display
6672
logInfo $ "Version: " <> asset ^. _assetVersion . to display
6773

74+
reportScenes :: Vector Scene -> RIO App ()
75+
reportScenes scenes = do
76+
logInfo $ "Scenes: " <> display (RIO.length scenes)
77+
forM_ scenes $ \scene -> do
78+
logInfo $ " Name: " <> maybe "Unknown scene" display (view _sceneName scene)
79+
let nodes = Text.intercalate ", " $ map textDisplay $ toList (view _sceneNodes scene)
80+
logInfo $ " Nodes: " <> display nodes
81+
6882
reportNodes :: Gltf -> (Mesh -> RIO App ()) -> RIO App ()
6983
reportNodes gltf meshReporter = do
7084
let nodes = gltf ^. _nodes
@@ -73,6 +87,16 @@ reportNodes gltf meshReporter = do
7387
forM_ nodes $ \node -> do
7488
logInfo $ " Name: " <> maybe "Unknown node" display (view _nodeName node)
7589

90+
logInfo
91+
$ " Rotation: "
92+
<> maybe "(1, 0, 0, 0)" displayQuaternion (view _nodeRotation node)
93+
logInfo
94+
$ " Scale: "
95+
<> maybe "(0, 0, 0)" displayV3 (view _nodeScale node)
96+
logInfo
97+
$ " Translation: "
98+
<> maybe "(0, 0, 0)" displayV3 (view _nodeTranslation node)
99+
76100
forM_ (node ^. _nodeMeshId) $ \meshId -> do
77101
logInfo " Mesh: "
78102
forM_ (gltf ^. _meshes ^? ix meshId) meshReporter
@@ -172,6 +196,10 @@ displayV4 (V4 w x y z) =
172196
<> display z
173197
<> ")"
174198

199+
displayQuaternion :: Display a => Quaternion a -> Utf8Builder
200+
displayQuaternion (Quaternion e (V3 i j k)) =
201+
displayV4 (V4 e i j k)
202+
175203
newtype RoundedFloat = RoundedFloat {unFloat :: Float}
176204
deriving (Eq, Show)
177205

0 commit comments

Comments
 (0)