********************************
* Changelog - Rhino Beam Tools *
********************************
-TODO / Improvements / KNOWN bugs-
Won't Fix: When a node is duplicated with rhino's copy command, the new node will have the same label as the original.
Won't Fix: Annotations' font height is ignored in RH5
Idea: Compatibility with Freelem (free beam calculation software)  http://www.freelem.com/guide/flm.htm
Fix: Sometimes the sub-layers are not created properly under "Beam Calculation" layer which causes bugs
Fix: Undo a beam creation deletes its attached nodes
Fix: [RBT_Export] Sometimes axis are messed up when exporting to steel 3
Fix: Hard coded tolerance values are causing issues when the document is not in mm

>-------
v1.4.4 (14 oct 2021)
Fixed: [TomKod] Former license system fallback broken - OnLoadBeforeLicenseValidation()
Fixed: [Installer] Rhino was raising an exception because the toolbar was installed in a readonly folder
Fixed: [TomKod] Bug where several computer may have the same machine ID (Rhinocommons updated to v1.0.7)
-------<

v1.4.3 (09 sept 2021)
Fixed: Installer bug for Rhino6 package installation
Improved: Compilation system batch
Changed: [TomKodCommons] Code restructured to use TomKodCommons API (v1.0.5) instead of files shared between projects

v1.4.2 (11 june 2021)
Improved: Native compilation for Rhino 7 (Target: Rhinocommon 7.5 + .net framework 4.8)
Fixed: Random crashs "StackOverflowException" with GetRBTBeamData(), GetBeamLayer()
Fixed: CheckIntersectBeams() was calling UpdateEveryBeamPositions() repeatedly
Fixed: [RBT_IntersectBeams] command crashed in some particular cases (code has been rewritten)
Fixed: [RBT_ImportLines] command created sometimes duplicates because of a bug in [RBT_IntersectBeams]
Added: New windows installer with update/uninstall features
Fixed: [TomKod] Installer should check Rhino's availablility at start and disable options if needed

v1.4.1 (03 May 2021)
Fixed:	 Yak package will be built with a "win" argument
Fixed:	 'PlugInDescription' tags in AssemblyInfo
Changed: [TomKodCommons] Code restructured to use TomKodCommons API (v1.0.1) instead of files shared between projects
Fixed:	 Crash due to thread access with delay timer
Fixed:	 Yak package's plugin description 

v1.4.0 (22 Apr 2021)
Fixed:	"RBT_Common" and "Common" modules reorganized (Internal)
Added:	[RBT Panel] Possibility to add a negative angle to a beam (The positive equivalent angle will be stored)
Fixed:	[RBT Panel] A scrollbar should be added when the panel size is too small
Fixed:	[RBT Panel] Text Height and Offset values did not validate until another field was selected (Changed to real-time update)
Fixed:	[RBT Panel] TextHeight field should range from 2.6 to 30
Fixed:	[RBT Panel] Color pickers texts
Fixed:	[RBT Panel] [RH7] Colors buttons didn't work properly on the settings' tab because of RH7's handling of the color's alpha channel
Fixed:	[RBT_ImportLines] Straight portions of polylines were split while they remained properly unsplit for polycurves
Fixed:	[RBT Panel] The "Reverse Beams" button only reversed one beam in case of multiple selections, contrarily to the command
Changed:[RBT Panel] "LabelAngle" control removed (not needed anymore) - Custom NumericUpDown will be used instead.
Added:	Rhino Undo feature for ReverseBeams() & CreateRBTLayers() functions
Fixed:	[RBT Panel] When selecting a beam with an angle set, then two others: the first selected did get the last selected angle value
Fixed:	[RBT Panel] When selecting a beam with no angle, then another one, then one with an angle, then another without: 
				all of them did get the third's angle value.
Fixed:	[RBT Panel] When a beam was deselected, the "Various" value was not refreshed
Fixed:	RBT's beam orientation rules did not always match Steel's, because GetLocalOrientedPlan() was 
			based on Rhino's default normal plane for lines.
			The new internal functions GetLocalVectorX(), GetLocalVectorY() & GetLocalVectorZ() will follow exactly Steel's spec
Fixed:	Add a 300ms delay to UpdatePanelFrom() to avoid repetitive loops on multi-selection (A lot faster)
Fixed:  [RBT Panel] Selected Nodes/Beams labels replaced by read-only textboxes for a better display when many items are selected
Added:	[RBT Panel] Tooltips
Fixed:	[RBT Panel] Rhino's undo feature enabled when editing the beams' and nodes' properties
Updated:[User doc] Beam's local axes definitions detailed in userdoc
Fixed: [RBT_Export] Beam orientation angles were lost when exporting to steel 4 (Vector was unitized then rounded to 1)
Fixed: [RBT_Export] RDM7 don't use the same local axes: the beam's axe Z should be Steel's local axe Y
Added: [RBT_Export] Nodes constraints for RDM7 export (Limited to RDM6-7 capabilities / See UserDoc)
Changed:[TomKod] Internal module "RhinoFunctions" reorganized
Fixed:	[TomKod] Help button text updated on activation form to target TomKod Server URL dynamically
Added:	[TomKod] Tooltips in license activation form

v1.3.2 (19 feb. 2021)
Removed: [RBT_Export] scripted mode
Fixed: Userdoc paths changed to match the renamed & new commands
Fixed: [RBT_Panel] Node tab buttons location
Fixed: [RBT_Export] Culture issue in ".ToSteelString" conversion function - set to current culture (Steel4 export)
Fixed: [RBT_Export] Bug with the preset export path
Fixed: [TomKod] Toolbar with new command names

v1.3.1 (08 feb. 2021) - Fully tested on Rhino6-7 only!
Fixed: Beam preview should be scaled depending on doc.modelunit

v1.3.0 (05 feb. 2021) - Fully tested on Rhino6-7 only!
Fixed: Plugin crash on multiple selection (string to integer directcast error)
Added: [RBT_Panel] Beam's local coordinate system display vectors
Added: Beam's orientation preview using its angle option and an 'I' beam form factor
Added: [RBT_Panel] new "Display" tab with all display settings
Added: [RBT_Export] IPN as default Steel4 BeamProperties (projectBeamPropertiesH)
Fixed: [RBT_Export] Steel4 values should be saved in meters instead of doc.modelunit
Added: [RBT_Export] Beam Orientation values interpreted for Steel V4 export
Added: [RBT_Panel] Beam Z vector values display on rhino Beams tab
Changed: [RBT_Panel] Only one field kept for Node contraint values, instead of one for "Spring" and one for "Forced""
Changed: [RBT_Panel] Node constraint value field should use a NumericIpDown instead of a textbox
Added: [RBT_Panel] Options to customize the nodes annotations
Added: [ImportSteel4File] command (BETA)
Changed: Rhino 6-7 set as main compilation target instead of Rhino5
Changed: [RBT_SteelExport] command renamed [RBT_Export] (Alias added for toolbar retro-compatibility)
Changed: [RBT_AnnotationsSettings] command renamed [RBT_DisplaySettings] (Alias added for toolbar retro-compatibility)
Changed: Yak keywords updated
Added: Possibility to export to RDM7 files (*.por)
Changed: [RBT_DisplaySettings] command should just open the settings tab in RBT_Panel
Fixed: [TomKod] logo updated
Fixed: [TomKod] Display error in commandline feedback "Online activation required before 00:00:00" (Date should be shown instead of Time)

v1.2.0 (19 jan. 2021) - Fully tested on Rhino6-7 only!
Added:[RBT_SteelExport] Support for Steel v4 file format
Removed: Old usertext system (not used anymore)
Fixed: GetRBTNodeData() and GetRBTBeamData() re-written with cleaner code and strongly-typed variables
Fixed: "Try-Catch" method replaced by .containskey() to read dictionnaries safely
Improved: Overall stability and speed

v1.1.2 (21 dec. 2020)
Added: Keywords for yak package

v1.1.1 (10 dec. 2020)
Fixed: [TomKod] Crash when there is no internet connexion and no TomKod license certificate (*.TkLic)
Fixed: [TomKod] Display refresh bug when a TomKod license certificate is picked
Fixed: [TomKod] License validation form should not accept spaces (" ") in email textbox
Fixed: [TomKod] The waiting form should be closable, in case in fails to close itself
Improved: [TomKod] Activation form UI revisited with tabs
Fixed: [TomKod] Offline license certificate was not always read
Fixed: [TomKod] TomKod about template should give the actual license status and not every messages from the license system.
Fixed: [TomKod] CommercialLicenseStatus.data.expire_date is a string, CommercialLicenseStatus.ExpirationDate should be used instead
Fixed: [TomKod] Offline period should be based on "EncryptedOfflineLicense" class
Fixed: [TomKod] Bug with Unset plugin status, which was considered as a Beta instead of a commercial release
Improved: [TomKod] Use a common abstract class for TomKod plugins
Fixed: [TomKod] Implement a plugin license status, and use it in _About abstract command
Fixed: [TomKod] Several license activation failure scenarii
Fixed: [TomKod] Waiting form (Floating progress bar) display should be refreshed on value update
Changed: [TomKod] New version of the activation form, with more feedback and options.
Added: [TomKod] Possibility to desactivate a license from the license activation windows (License not tied anymore to the computer)
Added: [TomKod] Support for offline activation files (*.TkLic)
Added: [TomKod] Possibility to make the licenses floating - Enabled by default (License are disabled when Rhino is closed)
Added: [TomKod] Common template for every TomKod command (Abstract class)
Added: [RBT_License] command
Tested: Plugin compatibility with Rhino7

v1.1.0 (22-10-2020)
Commercial release

v1.0.8 (22-10-2020)
Fixed: [RBT_SteelExport] command crashed on unsaved rhino document.

v1.0.7 (20-10-2020)
Fixed: [RBT_ShowAnnotations] command did not work
Fixed: [RBT_DuplicateNodeData] button broken in TomKod's toolbar

v1.0.6 (14-10-2020)
Fixed: When a model contains Rhino Beams or nodes, any item selected would bring to front the RBT_Panel

v1.0.5 (13-10-2020)
Added: Possibility to import curves even from the nodes and beams layers

v1.0.4 (09-11-2020)
Added: user guide in Tomkod Wiki-> https://wiki.tomkod.com/doku.php?id=start:plugins:rhinobeamtools:rbt-usermanual
Improved: Plugin logo added to yak repository.
Improved: [TomKod] Use a common abstract class for TomKod plugins
Changed: "RBT_About" command rebuilt with Tomkod's _About template
Added: Contextual help (Rhino's help panel) linked to Tomkod's wiki

v1.0.3.0 (08-18-2020)
Changed: [RBT_SteelExport] Test String.IsNullOrEmpty(doc.Name) in StartTextFilling()
Added: Support for Yak repository

v1.0.2.2
Added: Additional error management codes for command "RBT_SteelExport"
Changed: "EmptyProjectStart.stwbk" file removed from project. Hard-coded instead for command "RBT_SteelExport"

v1.0.2.1 (06-30-2020)
Added: Additional command line feedback for command "RBT_SteelExport"
Fixed: SaveFileDialog instead OpenFileDialog for command "RBT_SteelExport"
Fixed: Unsafe use of doc.name for command "RBT_SteelExport"
Fixed: Unsafe hardcoded steel directory path for command "RBT_SteelExport"

v1.0.2.0 (06-30-2020)
Fixed: RBT_ImportLines fails on curves not splitted by other curves from the selection

v1.0.1.7 (05-06-2020)
Fixed: [license system] Waiting form icon
Fixed: [license system] Waiting form not updating and not closing

v1.0.1.6 (02-06-2020)
Fixed: [license system] In case of sql connexion failure, don't show repeated messages
Fixed: [license system] In case of sql connexion failure, display the domain that should be whitelisted through the firewall

v1.0.1.5 (04-27-2020)
Changed: Minimum Rhino version requirement set to v6.15 or v5.12
Fixed: Bug where some required forms were sometimes in background

v1.0.1.2 (03-19-2020)
Added: [license system] A "Status" attribute to make the plugin free during Beta and Release-Candidate versions
Removed: [license system] Deprecated licenses table system
Changed: [license system] Security fix for special offline licenses
Changed: [license system] Improved error messages in case of activation failure

v1.0.1.1 (03-13-2020)
Added: Automatic check for updates every week
Fixed: Various layer bugs related to v1.0.1.0
Changed: Commercial license check will only be needed once every 24 hours
Changed: Commercial license can be used offline 7 days after each valid online activation

V1.0.1.0
Fixed: Bug where the plugin created RBT layers on every rhino models
Fixed: "RBT_About" command
Improved: RhinoBeam panel will stretch according to its display size

v1.0.0.5
Fixed: [license system] Remove the old license limitation for steel export
Changed: Solution compiled for Rhino6-R14

v1.0.0.4
Added: [license system] TimeOut for network communication (1s/3s)
Added: [license system] FallBack values for GetProductStoreID()
Fixed: [license system] Error message should be displayed in foreground
Added: [license system] Display a license validation progress form
Added: [license system] Help button on license activation form

V1.0.0.3
Added: [license system] Support for TomKod floating licenses (Command "TK_SetLicenseMode" to set the license mode from rhino)

V1.0.0.1
Changed: [license system] License form

V1.0.0.0
FIRST PRE-REALEASE UNDER TOMKOD LICENSE
