~mrp/freecad.log_cabin

add fields to task panel for creating log walls
add task panel for setting properties when creating a log wall
make LogWall properties more ergonomic

- AvgLogSize property is recalculated if NumLogs > 0. Now you can set NumLogs
to get the AvgLogSize, change NumLogs to 0, and the logs stay the same size.
- Radius cuts on the ends of a wall are enabled by setting the RadiusCut*
property > 0. Now a gable wall can just be radiused on lower part.
- use the same box to cut both bottom and top of wall instead of making two boxes.
add tests to test the api
implement radius cutting the ends of walls
use JoinedWalls property to calculate notch positions

Implements: https://todo.sr.ht/~mrp/freecad.log_cabin/1
add way to join walls

Joining is done by keeping a list of links to the bases of other walls
Linking directly to the wall instead of the base would make the graph cyclic

References: https://todo.sr.ht/~mrp/freecad.log_cabin/1
make Log object inherit from Arch Component
make LogWall inherit from ArchComponent

Probably more things to change and add, but this is a start in making
LogWall a proper Arch Component
base the LogWall object on a line object

References: https://todo.sr.ht/~mrp/freecad.log_cabin/1
start work on building log walls from a sketch

References: https://todo.sr.ht/~mrp/freecad.log_cabin/1
add way to specify average log size instead of number of logs

add AvgLogSize property which is only used if NumLogs <= 0
this is useful for gable walls where we don't care how many logs it takes
to get to the height, but we want to specify the log size
cut top log at wall height

also:
fix log thickness calculation
add log to walls that start with a half log, since they need to also end with a half log
add StartWithHalfLog property to LogWall; cut bottom of logs off flat at 0 height
make wall shape from scratch rather than from child logs
separate code for making a log wall into its own function
separate the log shape creation code from the FeaturePython object

Move the code for creating a log shape from the FeaturePython execute
method to a standalone function so it can be used elsewhere to create log
shapes without creating a DocumentObject.
add LogWall FeaturePython object
add tree view icons; code cleanup
add API; restructure imports
Next