Skip to content

Add opt-in contentless tileset root - #101

Merged
HeDo88TH merged 1 commit into
OpenDroneMap:masterfrom
Xananthium:feat/no-root-content
Jul 30, 2026
Merged

Add opt-in contentless tileset root#101
HeDo88TH merged 1 commit into
OpenDroneMap:masterfrom
Xananthium:feat/no-root-content

Conversation

@Xananthium

Copy link
Copy Markdown
Contributor

Summary

  • add an opt-in --no-root-content CLI switch (default remains false)
  • pass no rootSourceObj to the existing tiling path when requested, producing its legal contentless ADD root and no root.b3dm
  • document the renderer compatibility tradeoff

Motivation

Privacy-audited and geometry-decimation workflows may intentionally publish only separately accepted child tiles. The automatically generated whole-model root is then a redundant artifact with a distinct release/audit surface. This switch lets those workflows omit it without post-processing tileset.json or deleting output after generation.

The option does not crop or validate geometry. It only selects Obj2Tiles' already-supported contentless-root behavior. It is deliberately off by default because some renderers do not descend into children of a contentless root.

Tests

  • dotnet test Obj2Tiles.Test/Obj2Tiles.Test.csproj -c Release: 82 passed
  • dotnet test Obj2Tiles.Library.Test/Obj2Tiles.Library.Test.csproj -c Release: 135 passed, 1 explicit test skipped
  • CLI smoke test with --lods 1 --divisions 0 --local --no-root-content: exit 0, no root.b3dm, root content: null, root refine: ADD, child B3DM present

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds an opt-in --no-root-content CLI switch to omit generating root.b3dm, relying on the existing tiling behavior that produces a legal contentless tileset root (with refine: "ADD" and content: null). This supports workflows that only publish separately reviewed/audited child tiles and want to avoid emitting a redundant whole-model root artifact.

Changes:

  • Document --no-root-content in the README options table.
  • Gate rootSourceObj selection/compression in Program.cs so the tiling stage receives null when --no-root-content is set.
  • Add CLI option parsing tests for NoRootContent.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated no comments.

File Description
README.md Documents the new --no-root-content switch and its renderer compatibility tradeoff.
Obj2Tiles/Program.cs Skips root content generation path when NoRootContent is enabled, passing rootSourceObj: null to tiling.
Obj2Tiles/Options.cs Introduces the --no-root-content option on Options.
Obj2Tiles.Test/OptionsTests.cs Adds tests ensuring the new flag defaults to false and parses correctly.

@HeDo88TH
HeDo88TH merged commit e690967 into OpenDroneMap:master Jul 30, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants