Compile Time Changes

AbsMezzLevelRectInsertAnimation changes

Removed field str volumeId and replaced with a private field private symbol volumeId. Replaced methods str volId=(str id) with symbol volId=(symbol id) and str volId() with symbol volId(). Also renamed method AbsMezzDecking holeCandidate(AnimationMouseInfo mi) to `AbsMezzDecking getHoleCandidate(AnimationMouseInfo mi).

public class AbsMezzLevelRectInsertAnimation extends DrawShapeRectAnimation {

    Old: public str volumeId;
    New: private symbol volumeId;

    Old: extend public str volId=(str id) {
    New: extend public symbol volId=(symbol id) {

    Old: extend public str volId() {
    New: extend public symbol volId() {

    Old: extend public AbsMezzDecking holeCandidate(AnimationMouseInfo mi) {
    New: extend public AbsMezzDecking getHoleCandidate(AnimationMouseInfo mi) {
}

Mezzanine function changes

Removed function void mezzInsertRails(APolyline2D poly, AbsMezzDecking{} deckings, Space space). Call function void mezzInsertRailGroup(APolyline2D poly, APolyline2D[] holes, AbsMezzDecking{} deckings, Space space) instead.

Updated function signature:

Old:
public (AShape2D->AbsMezzDecking{}) mezzCombinedShapes(AbsMezzDecking{} deckings, bool ignoreTh=false) {

New:
public (AShape2D->AbsMezzDecking{}) mezzCombinedShapes(AbsMezzDecking{} deckings, bool ignoreTh=false, bool forStructure=false) {

AbsMezzRail changes

The method Graph get2D() has been removed and replaced with post2D(AbsMezzGraphNode node). It was previously used to create a circle graph to represent a post, but we no longer draw the posts in abstract by default.

public class AbsMezzRail extends Model3DSnapper {
    Old: extend public Graph get2D() {
    New: extend public Graph post2D(AbsMezzGraphNode node) {
}

The method Primitive3D rail3D(point2D from, point2D to) has been removed and replaced with Primitive3D rail3D(AbsMezzGraphNode n0, AbsMezzGraphNode n1). The method Primitive3D post3D() has been removed and replaced with post3D(AbsMezzGraphNode node)`.

public class AbsMezzRail extends Model3DSnapper {
    Old: extend public Primitive3D rail3D(point2D from, point2D to) {
    New: extend public Primitive3D rail3D(AbsMezzGraphNode n0, AbsMezzGraphNode n1) {

    Old: extend public Primitive3D post3D() {
    New: extend public Primitive3D post3D(AbsMezzGraphNode node) {
}

Graphics visitors changes

The following has been removed:

Removed: public const bool dbg_absMezzRailGfx;

public class AbsMezzGraphNodeRail3DVisitor extends AbsMezzGraphNodeVisitor {
    Removed: public AbsMezzGraphNode->(AbsMezzGraphNode-><double, point2D, point2D>[]) processed();
}


public class AbsMezzGraphNodeRail2DVisitor extends AbsMezzGraphNodeVisitor {
    Removed: public AbsMezzGraphNode->(AbsMezzGraphNode-><double, point2D, point2D>[]) processed();
}


public class AbsMezzGraphNodeVisitor extends Visitor {
    Removed: extend public Primitive3D dbgArrow3D(AbsMezzGraphNode from, AbsMezzGraphNode to, double height) {
    Removed: extend public Graph dbgArrow2D(AbsMezzGraphNode from, AbsMezzGraphNode to) {
}

AbsMezzEdge changes

AbsMezzEdge has been made unstreamable as these are meant to be temporary objects representing two AbsMezzGraphNode objects.

AbsMezzDecking changes

Removed field SnapperRef{} rackingRefs in AbsMezzDecking. Use methods SnapperRef{} refs() and SnapperRef{} refs=(SnapperRef{} r) instead.

public class AbsMezzDecking extends DrawShapeSnapper {
    Removed: public SnapperRef{} rackingRefs;
}

Structures reworked

The structures snapper has been reworked. Instead of each structures snapper representing a group of lines, we now have a structure snapper for every line.

Removed the following classes:

Removed: public class AbsMezzPurlins extends AbsMezzStructures {
Removed: public class AbsMezzColumns extends AbsMezzStructures {
Removed: public class AbsMezzBeams extends AbsMezzStructures {

Renamed class AbsMezzStructures to AbsMezzStructure. Field line[] lines is now line ln.

Old:
public class AbsMezzStructures extends ModelSnapper {
    public line[] lines;
    public constructor(line[] lines) { }
}


New:
public class AbsMezzStructure extends ModelSnapper {
    public line ln;
    public constructor(line ln) { }
}

Removed and replaced the below methods in AbsMezzDecking.

public class AbsMezzDecking extends DrawShapeSnapper {

    Old: extend public AbsMezzBeams createBeams() {
    New: extend public AbsMezzStructure createBeam() {

    Old: extend public AbsMezzPurlins createPurlins() {
    New: extend public AbsMezzStructure createSecondary() {

    Old: extend public AbsMezzColumns createColumns() {
    New: extend public AbsMezzStructure createColumn() {
}

AbsMezzStructureLinesEnv changes

Renamed the following fields:

public class AbsMezzStructureLinesEnv extends PropObj {
    Old: public line[] purlinLines;
    New: public line[] secondaryLines;

    Old: public double purlinMaxDist = 200mm;
    New: public double secondaryMaxDist = 200mm;

    Old: public size2D purlinSize = (64mm, 120mm);
    New: public size2D secondarySize = (64mm, 120mm);
}

AbsMezzStructureLinesGenerator changes

Updated method signature

public class AbsMezzStructureLinesGenerator {

    Old:
    extend public void processGeneratedLinesToBeam(line[] beamLines, line[] purlinLines, line[] columnLines, size2D beamSize, double deckingThickness=0) {

    New:
    extend public void processGeneratedLinesToBeam(line[] beamLines, line[] secondaryLines, line[] columnLines, size2D beamSize, double deckingThickness=0) {

}