26.08 Space Height Module
#todo
vertical boundary
interface FormProperties {
spaceHeight: number | null // OPTIONAL
spaceBottom: number | null // OPTIONAL
// ...
}
whenever one of the memebr are specified, then the space height module are in used.
not specified: null, infinity height/bottom, i.e., no bound. Impmentation is recommended to use Infinity and cast to null when export Form data. Notice null is different then not specified, for which null means infinity and not specified means use default. Implementation can set their own default.
vertical boundary: from spaceBottom to spaceHeight is considered within the boundary. this include spaceBottom and spaceHeight.
Artifact's position SHOULD NOT be outside of the vertical boundary, i.e., above spaceHeight or below spaceBottom. Artifact that does not satisfy it SHOULD be discarded. Unless other module overwrite this behavior.
When use with layout mode module: When Artifact using volume box for its placement reconstruction, any part of its volume box or rounded volume box SHOULD NOT be outside of the vertical boundary. Particularly
- For stacking logic: artifact participant volume box should not be above
spaceHeightor belowspaceBottom. TODO: The stacking logic usespaceBottomas the ground plane to reconstruction ifspaceBottomis a number. - For block placement: artifact participant volume box should not be above
spaceHeightor belowspaceBottom. Others artifact that does not use volume box to determinal its placement should have its position not be outside of the vertical boundary, such as artifact not particepent stacking logic and block placement.
TODO: need to remove the space height definition and default from stacking logic and move it to here. and add it overwrite the spaceBottom.
When Use with the layout mode module, the flat layout mode MUST reconstructed to the space height plane or 0 for null. The artifacts' rotated volume in the direction for MUST be considered to be zero when impose vertical boundary.