Can be simplified using PropertyMap:
val style = Stylesheet ().add {
This line is not specific to model instance, should be moved up:
Default should be true:
useModelOffset : Boolean = false,
Log error when dom factory can't be found when reading a blueprint:
val factory = domBuilderFactoryByName[n.name] ? : continue
Should not use instances here:
style(selectChildOf(north).instances(north.children)) {
Obsolete comment "this root seed value":
* from this root seed value by a deterministic arithmetic.
Ensure diameter is symmetric across XZ when using %:
fun Rule.diameter (block : StyleSize .() -> Dimension ) {
val value = StyleSize ().apply { initial = block() }
add(PropWidth , value.get())
add(PropDepth , value.get())
String interning:
" Blueprint: ${it.name} ###blueprint_window"
Re-use IDs lowest that were skipped, starting from 0:
while (lastID < 0 || lastID in map.keys) lastID++
If I mean to decouple show/hide actions from history, then these actions should not depend on the state of the scene graph. E.g. I can show/hide nodes and undo/redo actions in history independently. Perhaps use node ids to store show/hide status?
fun EditorApp.showObject (obj : SceneObject ) = action {
Consider using the Type Object pattern for DOM nodes and scene graph nodes.
LINES: when drawing circle path, don't use segment length, instead minimize the number of points it takes to approximate the circle 'close enough'.
Move Controllers to namespace tools
does this need to be called at every point?
explain difference between plan and dom.
use GitHub for file hosting in wiki.
Convert stale historical branches to tags (e.g. gdmc-2021).
clarify comment
// e.g. by adding child Nodes to a Room. To help identify this initial parent
missed renaming "length -> depth" here:
* @param minLength min passage length along the Z axis
val length = nodeAABB.maxZ - nodeAABB.minZ
* @param sizeXZ X=width, Y=length (Z)
fun Path.rectangle (width : Double , length : Double ) {
depth { dimension { _, _ -> calls.add(" length" ); 2.0 } }
Revisit SceneObject:
is there a point in having addChild and also attach?
should we make Box be aggregated instead of inherited from?
should we make the SceneTree a generic container decoupled from Nodes and rendering?
This line drawing method is not "sampled". I should fix the git commit message saying that it is. And also maybe keep the old method just in case: https://github.com/Hunternif/VoxelArchitecture/blob/master/core/src/main/kotlin/hunternif/voxarch/builder/BuilderExtensions.kt#L93
Potential crash when selected && transparent:
if (selected) ImGui .popStyleColor(3 )
if (transparent) ImGui .popStyleColor()
dockspace layout should be created only once:
public property children should have an immutable collection type: cef5dd7 #diff-806d3495517478d076b911bd8722d6e1c37a807a14bc4a0ba6b232ac6ab805d1L44
This flag can be used for all tree nodes:
ImGuiTreeNodeFlags .NoTreePushOnOpen
This comment should be moved down:
// round() so that it snaps to grid
Model should be updated later:
Add a comment that we are selecting a single node:
val hitNode = hitTestNode()
Typo: 'contained':
/* * Returns true if the screen AABB is entirely contain inside the marquee. */
Add a comment to hiddenNodes:
val hiddenNodes = mutableSetOf<Node >()
Shut down the app properly:
Move this logic inside GuiNodeProperties:
should be frame:
private val selection : NewNodeFrame
bug: should clone coords before putting it in map:
add comment here:
Can be simplified using PropertyMap:
VoxelArchitecture/editor/src/test/kotlin/hunternif/voxarch/editor/file/style/StyleParserTest.kt
Line 300 in 976295c
This line is not specific to model instance, should be moved up:
VoxelArchitecture/core/src/main/kotlin/hunternif/voxarch/magicavoxel/VoxFileStorage.kt
Line 148 in bc4b9fc
Default should be true:
VoxelArchitecture/core/src/main/kotlin/hunternif/voxarch/magicavoxel/VoxToArray3DReader.kt
Line 10 in aaeccec
Log error when dom factory can't be found when reading a blueprint:
VoxelArchitecture/editor/src/main/kotlin/hunternif/voxarch/editor/file/JsonBlueprint.kt
Line 89 in b696c10
Should not use
instanceshere:VoxelArchitecture/core/src/main/kotlin/hunternif/voxarch/dom/builder/DomExtend.kt
Line 37 in 23e06de
Obsolete comment "this root seed value":
VoxelArchitecture/core/src/main/kotlin/hunternif/voxarch/dom/builder/DomBuildContext.kt
Line 18 in d05b176
Ensure diameter is symmetric across XZ when using %:
VoxelArchitecture/core/src/main/kotlin/hunternif/voxarch/dom/style/property/StyleSize.kt
Lines 58 to 61 in cc3a7dd
String interning:
VoxelArchitecture/editor/src/main/kotlin/hunternif/voxarch/editor/gui/MainGui.kt
Line 209 in 855c36c
Re-use IDs lowest that were skipped, starting from 0:
VoxelArchitecture/editor/src/main/kotlin/hunternif/voxarch/editor/util/IDRegistry.kt
Line 18 in e43df52
If I mean to decouple show/hide actions from history, then these actions should not depend on the state of the scene graph. E.g. I can show/hide nodes and undo/redo actions in history independently. Perhaps use node ids to store show/hide status?
VoxelArchitecture/editor/src/main/kotlin/hunternif/voxarch/editor/actions/UIActions.kt
Line 58 in c15cd21
Consider using the Type Object pattern for DOM nodes and scene graph nodes.
LINES: when drawing circle path, don't use segment length, instead minimize the number of points it takes to approximate the circle 'close enough'.
Move Controllers to namespace
toolsdoes this need to be called at every point?
VoxelArchitecture/editor/src/main/kotlin/hunternif/voxarch/editor/scene/SelectController.kt
Line 139 in 7fb554d
explain difference between
plananddom.use GitHub for file hosting in wiki.
Convert stale historical branches to tags (e.g. gdmc-2021).
clarify comment
VoxelArchitecture/core/src/main/kotlin/hunternif/voxarch/dom/DomDsl.kt
Line 10 in 127d9e1
missed renaming "length -> depth" here:
VoxelArchitecture/core/src/main/kotlin/hunternif/voxarch/builder/SimpleHatchBuilder.kt
Line 12 in 06f9f58
VoxelArchitecture/core/src/main/kotlin/hunternif/voxarch/dom/style/property/StyleAlignment.kt
Line 121 in 06f9f58
VoxelArchitecture/core/src/main/kotlin/hunternif/voxarch/plan/Hatch.kt
Line 21 in a90f5d5
VoxelArchitecture/core/src/main/kotlin/hunternif/voxarch/util/PathExtensions.kt
Line 7 in 06f9f58
VoxelArchitecture/core/src/test/kotlin/hunternif/voxarch/dom/style/StyleOrderTest.kt
Line 21 in 06f9f58
VoxelArchitecture/editor/src/main/kotlin/hunternif/voxarch/editor/scene/models/FloorGridModel.kt
Line 41 in a90f5d5
Revisit SceneObject:
addChildand alsoattach?Boxbe aggregated instead of inherited from?This line drawing method is not "sampled". I should fix the git commit message saying that it is. And also maybe keep the old method just in case: https://github.com/Hunternif/VoxelArchitecture/blob/master/core/src/main/kotlin/hunternif/voxarch/builder/BuilderExtensions.kt#L93
Potential crash when selected && transparent:
VoxelArchitecture/editor/src/main/kotlin/hunternif/voxarch/editor/gui/Buttons.kt
Lines 60 to 61 in 80a8b81
dockspace layout should be created only once:
VoxelArchitecture/editor/src/main/kotlin/hunternif/voxarch/editor/gui/MainGui.kt
Line 36 in 40b4a73
public property
childrenshould have an immutable collection type: cef5dd7#diff-806d3495517478d076b911bd8722d6e1c37a807a14bc4a0ba6b232ac6ab805d1L44This flag can be used for all tree nodes:
VoxelArchitecture/editor/src/main/kotlin/hunternif/voxarch/editor/gui/GuiNodeTree.kt
Line 62 in 94381e8
This comment should be moved down:
VoxelArchitecture/editor/src/main/kotlin/hunternif/voxarch/editor/scene/ResizeController.kt
Line 105 in 94381e8
Model should be updated later:
VoxelArchitecture/editor/src/main/kotlin/hunternif/voxarch/editor/scene/ResizeController.kt
Line 98 in 94381e8
Add a comment that we are selecting a single node:
VoxelArchitecture/editor/src/main/kotlin/hunternif/voxarch/editor/scene/SelectionController.kt
Line 69 in 94381e8
Typo: 'contained':
VoxelArchitecture/editor/src/main/kotlin/hunternif/voxarch/editor/scene/SelectionController.kt
Line 150 in 94381e8
Add a comment to
hiddenNodes:VoxelArchitecture/editor/src/main/kotlin/hunternif/voxarch/editor/EditorApp.kt
Line 33 in 94381e8
Shut down the app properly:
VoxelArchitecture/editor/src/main/kotlin/hunternif/voxarch/editor/EditorApp.kt
Line 42 in 94381e8
Move this logic inside
GuiNodeProperties:VoxelArchitecture/editor/src/main/kotlin/hunternif/voxarch/editor/gui/MainGui.kt
Line 68 in 94381e8
should be
frame:VoxelArchitecture/editor/src/main/kotlin/hunternif/voxarch/editor/scene/models/NewNodeFrameModel.kt
Line 10 in da3872d
bug: should clone coords before putting it in map:
VoxelArchitecture/core/src/main/kotlin/hunternif/voxarch/storage/ChunkedStorage3D.kt
Line 61 in da3872d
add comment here:
VoxelArchitecture/core/src/main/kotlin/hunternif/voxarch/dom/builder/DomTurretBuilder.kt
Line 13 in da3872d