This archive has been exported from a Fossil repository 
at local date Wed 01/15/2020 
 
 
Repository information 
====================== 
project-name: Runtime Tools Kit
repository:   C:/Code/rttk/..\fossil\rttk.fossil
local-root:   C:/Code/rttk/
config-db:    C:/Users/badsector/AppData/Local/_fossil
project-code: 1e3bb2a6812aa586b94525b2a18c2d5992451402
checkout:     93b74f38af6745d4412545bb2ff8314c6738e0df 2020-01-15 21:49:12 UTC
parent:       d45d67121692f05fc88885d3ae1fcfcdd7a31b49 2019-05-12 12:54:24 UTC
tags:         trunk
comment:      1. Added TFirstTimeInit component that provides a single-time delayed initialization event 2. Added TPaintBufferMaintainer component that manages a TBitmap for offscreen painting that can be resized on-demand 3. Added TDynArray.RawData property that can be used to access the dynamic array's raw data as a pointer 4. Made TDynArray.SetCapacity to disallow setting the capacity below the current count 5. Fixed a couple of bugs in TDynArray 6. Added DrawPlane in GLUtilities 7. Made DrawSprite in GLUtilities to explicitly setup the blending function 8. Added TPlane.Flip and .Flipped 9. Added TConvexHullEdge for use in TConvexHull to store edges 10. Added TConvexHull.FromMesh and intersection functions, CalcCenter and closest point on face queries 11. Added TPlane equality operator 12. Added TMeshBase in Maths and made TMesh in Meshes to extend from it 13. Added TMesh.Scale by scalar and XYZ, also added TMesh.Translate by XYZ 14. Added TStreamIO in MiscUtils for reading/writing buffers, bytes, words, integers, cardinals, booleans, strings, etc from/to streams 15. Added GetNumberOfHardwareThreads in MiscUtils that returns ... guess what 16. Added GetRectPartAt that returns the part of a 2D rectangle given a point (outside, topleft, top, topright, left, inside, right, bottomleft, bottom, bottomright), mainly for use with implementing moveable handles 17. Added GetResizeCursorForRectPart which returns an appropriate TCursor value for a given rectangle part 18. Added OffsetRectPart that applies an offset to a rectangle for the given part 19. Added NormalizeRectOrientation that flips a rectangle's left/right and top/bottom so that left is less or equal to right and top is less or equal to bottom 20. Added IndexOfWord and IndexOfCaseInsensitiveWord that searches for a word in a word array and returns its index or a specified (default to -1) value if the word wasn't found 21. Added TNode.IsAncestorOf and TNode.IsDescendantOf 22. Reworked TNode.Add/Remove to work via assigning the Parent property and moved all logic to SetParent. Also made trying to add a node to another with CanAddNode returning false to now raise an exception instead of using Assert 23. Fixed a memory leak in TUndoManager 24. Added TViewport.OnPreMouseDown, TViewport.OnPreMouseMove and TViewport.OnPreMouseUp that can be used to veto further event processing (useful mainly for implementing multiple behaviors for mouse buttons, like allowing both right click for the first person camera and showing a popup menu if the camera didn't move) 25. Added Flags property to TWEMeshVertex, TWEMeshEdge, TWEMeshFace and TWEMesh that can be used by editors to mark flags. 26. Added UncheckedSetup to TWEMeshVertex, TWEMeshEdge, TWEMeshFace and TWEMesh that can be used for setting up the data for these classes without further checking (mainly meant for implementing loading) 27. Added TWEMeshFace.AsFace that converts the TWEMeshFace to a regular polygon (user: badsector)
check-ins:    29
 
 
Full timeline 
============= 
=== 2020-01-15 ===
21:49:12 [93b74f38af] *CURRENT* 1. Added TFirstTimeInit component that provides a single-time delayed initialization event 2. Added TPaintBufferMaintainer component that manages a TBitmap for offscreen painting that can be resized on-demand 3. Added TDynArray.RawData property that can be used to access the dynamic array's raw data as a pointer 4. Made TDynArray.SetCapacity to disallow setting the capacity below the current count 5. Fixed a couple of bugs in TDynArray 6. Added DrawPlane in GLUtilities 7. Made DrawSprite in GLUtilities to explicitly setup the blending function 8. Added TPlane.Flip and .Flipped 9. Added TConvexHullEdge for use in TConvexHull to store edges 10. Added TConvexHull.FromMesh and intersection functions, CalcCenter and closest point on face queries 11. Added TPlane equality operator 12. Added TMeshBase in Maths and made TMesh in Meshes to extend from it 13. Added TMesh.Scale by scalar and XYZ, also added TMesh.Translate by XYZ 14. Added TStreamIO in MiscUtils for reading/writing buffers, bytes, words, integers, cardinals, booleans, strings, etc from/to streams 15. Added GetNumberOfHardwareThreads in MiscUtils that returns ... guess what 16. Added GetRectPartAt that returns the part of a 2D rectangle given a point (outside, topleft, top, topright, left, inside, right, bottomleft, bottom, bottomright), mainly for use with implementing moveable handles 17. Added GetResizeCursorForRectPart which returns an appropriate TCursor value for a given rectangle part 18. Added OffsetRectPart that applies an offset to a rectangle for the given part 19. Added NormalizeRectOrientation that flips a rectangle's left/right and top/bottom so that left is less or equal to right and top is less or equal to bottom 20. Added IndexOfWord and IndexOfCaseInsensitiveWord that searches for a word in a word array and returns its index or a specified (default to -1) value if the word wasn't found 21. Added TNode.IsAncestorOf and TNode.IsDescendantOf 22. Reworked TNode.Add/Remove to work via assigning the Parent property and moved all logic to SetParent. Also made trying to add a node to another with CanAddNode returning false to now raise an exception instead of using Assert 23. Fixed a memory leak in TUndoManager 24. Added TViewport.OnPreMouseDown, TViewport.OnPreMouseMove and TViewport.OnPreMouseUp that can be used to veto further event processing (useful mainly for implementing multiple behaviors for mouse buttons, like allowing both right click for the first person camera and showing a popup menu if the camera didn't move) 25. Added Flags property to TWEMeshVertex, TWEMeshEdge, TWEMeshFace and TWEMesh that can be used by editors to mark flags. 26. Added UncheckedSetup to TWEMeshVertex, TWEMeshEdge, TWEMeshFace and TWEMesh that can be used for setting up the data for these classes without further checking (mainly meant for implementing loading) 27. Added TWEMeshFace.AsFace that converts the TWEMeshFace to a regular polygon (user: badsector tags: trunk)
=== 2019-05-12 ===
12:54:24 [d45d671216] 1. Added glutilities unit that provides a few utility procedures to draw shapes (DrawWireframeBox, DrawSolidBox, DrawSprite) 2. Fixed classregistries method TClassRegistry.Find to be case insensitive 3. Made TVector2D a packed object, like TVector. Also added a Scale, Scaled and Multiplied methods that behave similar to TVector. 4. Made T2DShape.Remove non-inline (it wasn't useful and messed with debugging) 5. Added ReplaceTranslation, ReplaceRotation and ReplaceScale method functions in TTransform that return a copy of the transform object with the translation/rotation/scale replaced with a given value 6. Added a Transform function in maths that return a TTransform object 7. Added VectorToColor and ColorToVector in maths to convert between TVector and TColor 8. Added two MidpointBetween functions in maths to calculate the midpoint between two vectors (TVector and TVector2D variants) 9. Added an operator= for TVector2D 10. Fixed an out-of-bounds bug in T2DShape.Remove 11. Added two MatchingVertex function methods in TMesh to return a vertex index that matches the given parameters 12. Made TTreeText escaping to avoid unnecessary escaping for period and equal characters 13. Added AllowNullPickables property in TViewportPicker that, if True, will call OnMouseMove, OnMouseEnter and OnMouseExit even when pickables are not found. AllowNullPickables is True bby default as this behavior makes more sense. 14. Added OnBeginTransform/OnEndTransform events in T3DTransformationWidget to be notified when a transformation begins/ends and optionally veto it 15. Added IndexOf and Has method functions in T3DWidgetManager that can be used to obtain the index of a widget and check if a widget is managed by the manager, respectively (user: badsector tags: trunk)
=== 2019-02-27 ===
19:41:36 [e0f9554d31] Added class registries (user: badsector tags: trunk)
=== 2018-12-23 ===
16:49:56 [046c463134] * Added Sort method in TDynArray that accepts a custom sorting function. It currently uses a simple quicksort implementation, might want to improve later * Added AddNew method in TDynArray that adds a new item at the end of the array and returns a pointer to it * Added comments for the TDynArray methods (user: badsector tags: trunk)
=== 2018-12-22 ===
10:16:41 [52f0b43cba] Minor code cleanup and made MemZero inline. (user: badsector tags: trunk)
=== 2018-08-29 ===
16:35:52 [e5ebcbe7b3] Add Containers unit with a generic TDynArray and the skeleton (unused) for a map Fix TLILHandles hashmap exception Add a TRay.TriangleHit version that accepts precomputed values (user: badsector tags: trunk)
=== 2018-05-31 ===
08:22:21 [f78522d1ef] Improve escaping in TreeText unit so that it properly handles backslashes and add support for \xHH escape codes so that it is compatible with bcbcmn's KeyValueTree.cpp/h (user: badsector tags: trunk)
=== 2018-05-30 ===
12:12:52 [d2c8e0eb3a] Added a custom value display in TGradientSlider, added RemoveEmpty property in TKeyValueStore that can be used to remove a key if an empty value is assigned to it (by default is set to true), added TakeScreenshot in MiscUtils unit that takes a screenshot and returns a TBitmap of it, added Alpha parameter in TExtColor.FromColor and also added FromVector, ToHSB, FromHSB and Hue, Saturation and Brightness properties. (user: badsector tags: trunk)
=== 2018-01-05 ===
06:07:34 [7ce0afe2e1] Fixed SplitString in MiscUtils to properly handle space separator (user: badsector tags: trunk)
=== 2017-12-31 ===
07:38:36 [6908ced9a7] Added a new method TFace.ClosestEdgePoint which, given a point in the face (or near it), will return the closest point that is on an face edge. (user: badsector tags: trunk)
=== 2017-12-28 ===
20:30:45 [b9fd7e448a] Changes to wiki page [Runtime Tools Kit] (user: badsector)
20:30:29 [693344855b] Changes to wiki page [Runtime Tools Kit] (user: badsector)
20:30:16 [3a5d91c1b8] Changes to wiki page [Runtime Tools Kit] (user: badsector)
=== 2017-10-31 ===
18:23:38 [d44d347af2] Made TLILHandles.Add to return the id of the handle and reserve id 0 for "nil", added LoadImageFile and CanLoadImageFile in MiscUtils that use TPicture to load images (so that it can load any image format supported by LCL and also any custom image format registered with TPicture) and made TViewport to honor the DrawCaption property. Also removed the debugger setting for the package file. (user: badsector tags: trunk)
=== 2017-07-08 ===
19:38:52 [20a8939d73] 1. Added TAABox methods: Includes for entire box inclusion check and GetCorners which returns the corner points for the box 2. Added Maths function AABoxOfTransformedAABox which returns the axis aligned bounding box for the given axis aligned bounding box after it has been transformed by a matrix 3. Added TMesh methods RayHitAnyFace and RayHit which check for ray intersections. The former may return any face, the latter will return the face closest to the ray's origin (user: badsector tags: trunk)
=== 2017-06-01 ===
01:40:52 [04dd5fb425] Tons of changes between VCS switches, tons of stuff, tons of things, it works trust me. (user: badsector tags: trunk)
=== 2016-01-02 ===
11:16:20 [0aeb2034e7] KeyValue store notifications, node child change events, new math functions, etc (user: badsector tags: trunk)
=== 2015-08-20 ===
18:46:38 [14f47afa0e] Added AABox functions that returm TAABox in Maths and MemZero method that uses an "out" parameter (which avoids the Fill<stuff> warning about uninitialized argument) and FillQWord followed by FillWord in MiscUtils. (user: badsector tags: trunk)
14:54:58 [72a05b44a5] Added GradientSliders unit that provide a gradient slider control, Nodes unit which provide a node tree that keep a modified state, Transformables unit which subclasses Nodes to provide transformable nodes and KeyValueStore unit which provides the TKeyValueStore class which implements a simple string based key:value in memory storage. **Maths:** added TVectorArray, more methods in TIntVector for transformations, changed Width/Height/Length in TAABox to be properties instead of functions (now they can also be set), added T2DVector and T2DShape with helper functions for them, added operator= for TVector and an IdentityMatrix function. **Meshes** made TMesh.Create be a virtual constructor. **OBJMeshLoader** added failure logging and an AutoLoadTexture property to disable automatic loading of textures. **TreeText** added methods in TTNode to add, remove and search for children. (user: badsector tags: trunk)
=== 2014-09-14 ===
21:15:37 [65dea14686] Added TreeText unit which parses text-based tree files with the form like foo { bar=baz { maybe=32 test="hello world" } }, etc (user: Kostas tags: trunk)
21:12:48 [eba81e364b] Changed camera to use direction instead of target (user: Kostas tags: trunk)
=== 2014-09-11 ===
20:41:49 [7635f795a5] Fixed some warnings (user: badsector tags: trunk)
20:41:40 [0e615816f2] Added extra interpolation function and camera helper functions in maths (user: badsector tags: trunk)
20:40:23 [5bbe78dad6] Changed camera to use direction and improved its implementation. (user: badsector tags: trunk)
=== 2014-03-06 ===
23:16:50 [907c30ec89] added TIntVector, DistanceBetweenSegments, Sign, bounding box and radius calc in TMesh, alpha support in TTexture, ExtColor and ToExtColor functions, TCamera and TGLTextDrawer, improved OBJ mesh texture loading and fixed TRay.AABoxHit (user: Kostas tags: trunk)
=== 2013-11-09 ===
13:00:52 [242e87b7df] Added miscutils (user: badsector tags: trunk)
=== 2013-08-15 ===
13:49:45 [f9cfe6d3cc] Added AddAndScale in TVector and fixed warning in ArrayToMatrix (user: badsector tags: trunk)
=== 2013-07-06 ===
14:37:37 [c83011c9bd] Initial undo code (user: badsector tags: trunk)
14:36:53 [e38f2e9b36] Replaced non-portable Extended type with Double (user: badsector tags: trunk)
=== 2013-06-13 ===
11:48:43 [eb32afa360] Paths fix (user: badsector tags: trunk)
11:23:01 [7a6799c522] Changes to wiki page [Runtime Tools Kit] (user: badsector)
11:07:49 [fb768389a4] Initial version (user: BadSector tags: trunk)
11:06:55 [8195d6ecc7] initial empty check-in (user: BadSector tags: trunk)
+++ end of timeline (33) +++
  
 
End of export notice 
