Commit Graph

212 Commits

Author SHA1 Message Date
Markus Ewald
b90ff1c78b Added new class ObservableDictionary to the collection class library; 100% test coverage for the new ObservableDictionary class; fixed some minor issues with the code of ObservableCollection and ReadOnlyDictionary
git-svn-id: file:///srv/devel/repo-conversion/nusu@117 d2e56fa2-650e-0410-a79f-9358c0239efd
2009-01-26 20:05:32 +00:00
Markus Ewald
2ab3b22c60 Fixed failing unit tests on Mono; used CollectionAssert.AreEquivalent() instead of CollectionAssert.AreEqual() since the order of items in a Dictionary is unspecified and Mono makes use of this allowance; fixed one serious bug that should have been caught by the .NET 2.0 unit tests: the enumeration of ReadOnlyDictionary via ICollection should return DictionaryEntry[] and not KeyValuePair<>[]
git-svn-id: file:///srv/devel/repo-conversion/nusu@115 d2e56fa2-650e-0410-a79f-9358c0239efd
2009-01-13 20:00:13 +00:00
Markus Ewald
8dc15e8515 Upgraded Nuclex.Support to NUnit 2.5 Beta 1
git-svn-id: file:///srv/devel/repo-conversion/nusu@114 d2e56fa2-650e-0410-a79f-9358c0239efd
2009-01-13 19:30:33 +00:00
Markus Ewald
0a483b4d44 Made Nuclex.Support compileable on the XBox 360; added new XNA 3.0 project to compile Nuclex.Support on the XBox 360; added my own AssemblyLoadEventArgs implementation since the XBox 360 XNA framework doesn't provide it; other minor fixes so Nuclex.Support can cope with the XBox 360 XNA framework
git-svn-id: file:///srv/devel/repo-conversion/nusu@113 d2e56fa2-650e-0410-a79f-9358c0239efd
2009-01-13 18:50:52 +00:00
Markus Ewald
8f6616f79a AssertHelperTest.TestAlmostEqualWithDoubles() was testing the same code twice - fixed; made use of Assert.AreSame() instead of manually calling object.ReferenceEquals() in the SharedTest class; fixed documentation referring to the custom WeakReference as the System.WeakReference class
git-svn-id: file:///srv/devel/repo-conversion/nusu@112 d2e56fa2-650e-0410-a79f-9358c0239efd
2009-01-08 20:14:14 +00:00
Markus Ewald
6eb49ed0d2 Updated copyright statement to include the year 2009 =); finally decided to make some of the NUnit assert helper methods public and include it in Nuclex.Support (yes, that means those methods won't be there in a build with unit testing disabled, a compromise accepted now)
git-svn-id: file:///srv/devel/repo-conversion/nusu@111 d2e56fa2-650e-0410-a79f-9358c0239efd
2009-01-07 19:05:29 +00:00
Markus Ewald
14274a9460 Added some more unit tests to verify that NextPowerOfTwo() selects the next power of two when the argument is just one increment above an even power of two
git-svn-id: file:///srv/devel/repo-conversion/nusu@110 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-12-14 18:08:44 +00:00
Markus Ewald
3731fc42ae Documented what an 'ulp' is supposed to be in the FloatHelper class :)
git-svn-id: file:///srv/devel/repo-conversion/nusu@109 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-12-14 18:05:14 +00:00
Markus Ewald
8923f2512a Disabled the command line parser for now to prevent anyone from using the broken code
git-svn-id: file:///srv/devel/repo-conversion/nusu@108 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-12-11 20:19:29 +00:00
Markus Ewald
9c40abe10a Completed the command line parser, then decided while adding result validation to the unit tests that the parser should be greedy (and accept option initiators within option names) - I don't like the way the parser code turned out anyway, so I'll rewrite soon
git-svn-id: file:///srv/devel/repo-conversion/nusu@107 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-12-11 20:15:21 +00:00
Markus Ewald
ffba112786 Wrote more unit tests for the new command line parser; actually implemented a good part of the new command line parser; wrote one more test to show that the old command line parser is broken
git-svn-id: file:///srv/devel/repo-conversion/nusu@106 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-12-10 19:26:25 +00:00
Markus Ewald
f0d76f988f Disabled the old CommandLineParser; started writing a new command line parser from scratch because I didn't manage to find a sane implementation on the internet; test coverage for the whole of Nuclex.Support is now 100.0%
git-svn-id: file:///srv/devel/repo-conversion/nusu@105 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-12-09 20:55:34 +00:00
Markus Ewald
447fe2aea7 Changed file name of IAbstractFactory interface to match with conventions; refactored the assembly loading code into a separate class using an interface, this allows unit testing to simulate assembly loading errors easily and might help the actual application to act on assembly load errors if so required; all classes in the Nuclex.Support.Plugins namespace now have 100% test coverage
git-svn-id: file:///srv/devel/repo-conversion/nusu@104 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-12-09 19:41:43 +00:00
Markus Ewald
88b51ef0fa Eliminated warnings that still came up when compiling with the mono C# compiler; all classes in the Nuclex.Support.Scheduling namespace now have 100% test coverage
git-svn-id: file:///srv/devel/repo-conversion/nusu@103 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-12-07 19:36:29 +00:00
Markus Ewald
00caebf7e9 Achieved 100% test coverage for all classes in the Nuclex.Support.Tracking namespace; wrote unit tests for the AbortedException class
git-svn-id: file:///srv/devel/repo-conversion/nusu@102 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-12-07 19:01:43 +00:00
Markus Ewald
e785fdf57d Fixed a critical threading bug in the weighted transaction observation wrapper; ProgressTracker not has 100% test coverage; wrote even more unit tests for the ProgressTracker
git-svn-id: file:///srv/devel/repo-conversion/nusu@101 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-12-05 19:28:39 +00:00
Markus Ewald
8c5f2d45f7 Renamed Waitable to Transaction (Progression -> Waitable -> Transaction -- might it be that this concept is no crispy enough and should be revisited? I think so!); increased test coverage for lots of classes in the tracking namespace, all but 3 are now 100% covered; eliminated redundant ProgressUpdate events from the ProgressTracker and adjusted unit tests so progress update events that re-report the current progress are optional; added a new idea for a replacement of the broken (quality-wise, at least) command line parser
git-svn-id: file:///srv/devel/repo-conversion/nusu@100 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-12-03 18:58:20 +00:00
Markus Ewald
b39f8de155 Increased test coverage for the command line parser (and then decided the thing is broken beyond repair and needs a rewrite -- as if that was any surprise given the original code is from CodeProject); achieved 100% test coverage for the factory employer, instance employer, employer, no plugin attribute and abstract factory classes in the Plugins namespace; achieved some test coverage for the PluginRepository class (the uncovered sections are quite hard to stimulate since they involve exceptions during assembly load attempts)
git-svn-id: file:///srv/devel/repo-conversion/nusu@99 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-11-28 19:34:43 +00:00
Markus Ewald
ecb36e9ce3 Fixed a comment in read only list sources; achieved 100% test coverage for the read only dictionary wrapper - that makes 100% test coverage for all collection classes; implemented serialization into the read only dictionary class to perfectly emulate the behavior of the .NET framework dictionary
git-svn-id: file:///srv/devel/repo-conversion/nusu@98 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-11-27 20:36:51 +00:00
Markus Ewald
5c90646327 Achieved 100% test coverage for the TransformingReadOnlyCollection and ReadOnlyList classes
git-svn-id: file:///srv/devel/repo-conversion/nusu@97 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-11-27 19:40:43 +00:00
Markus Ewald
195ba1df30 Reformatted the comments in the RingMemoryStream class so my favorite IDE (Visual Studio) will not destroy indentation on auto-formatting anymore; achieved 100% test coverage for the RingMemoryStream and ReverseComparer classes
git-svn-id: file:///srv/devel/repo-conversion/nusu@96 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-11-27 19:04:09 +00:00
Markus Ewald
de7c28fa84 achieved 100% test coverage for the read only collection wrapper; optimized the indexer of the license key class; increased test coverage for the license key class to 100%
git-svn-id: file:///srv/devel/repo-conversion/nusu@95 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-11-27 19:02:48 +00:00
Markus Ewald
c43bfd47c8 Increased test coverage for all collection classes up to the priority queue to 100%; SetParent() is no longer 'protected internal' as internal is sufficient in this case (.NET 'protected internal' is less restrictive than 'protected' or 'internal' alone); parenting collection now unsets parent for items that are being replaced; priority queue version check for enumerators (to protected against modification of the collection) now only happens in debug mode
git-svn-id: file:///srv/devel/repo-conversion/nusu@94 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-11-27 18:56:08 +00:00
Markus Ewald
cb0355193d Nailed the unit test coverage for all classes in the root namespace at 100%; fixed ugly german comment in ReadOnlyDictionary; moved AbstractFactory interface for FactoryEmployer in Nuclex.Support.Plugins into its own file; wrote unit tests for the PluginHelper, Shared, StringSegment and WeakReference classes
git-svn-id: file:///srv/devel/repo-conversion/nusu@93 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-11-26 19:15:36 +00:00
Markus Ewald
ddff1d8353 Moved Shared.cs from Nuclex.Math to Nuclex.Support because this class can be quite useful in other locations as well; added CPL copyright header to all files in Nuclex.Math; fixed copyright date in AssemblyInfo.cs of Nuclex.Math and Nuclex.Support
git-svn-id: file:///srv/devel/repo-conversion/nusu@92 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-10-22 20:45:13 +00:00
Markus Ewald
1cc45237ba Fixed error in XML comment; added some more unit tests for the PathHelper class to make sure it works with Linux/Unix paths
git-svn-id: file:///srv/devel/repo-conversion/nusu@91 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-09-26 19:24:44 +00:00
Markus Ewald
b0e76b4800 Fixed 3 compiler warnings that were occurring in Nuclex.Support; minor improvements to the documentation
git-svn-id: file:///srv/devel/repo-conversion/nusu@90 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-08-14 21:14:40 +00:00
Markus Ewald
f2bacc5411 Converted all <see paramref="" /> tags into <paramref name="" /> tags as this seems to be the standard method of referring to parameters in .NET XML documentation
git-svn-id: file:///srv/devel/repo-conversion/nusu@89 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-08-07 20:01:08 +00:00
Markus Ewald
7446b6bc9b Improved documentation in several places; renamed 'Support' class in Nuclex.Support.Plugins to 'PluginHelper' to match the established conventions; provided better error messages for the plugin loading methods in the PluginRepository class
git-svn-id: file:///srv/devel/repo-conversion/nusu@88 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-08-07 19:57:20 +00:00
Markus Ewald
b0026fcdd6 Fixed some compiler warnings; removed the "Mixed Platforms" build configuration from the solution
git-svn-id: file:///srv/devel/repo-conversion/nusu@87 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-08-04 19:46:37 +00:00
Markus Ewald
86d915f9f0 Moved packing algorithms, spatial partitioning system and serialization helpers from Nuclex.Support to Nuclex.Game; minor improvements in documentation; AbortedException no longer derives from ApplicationException; added document that gives an overview of several R-Tree splitting techniques I found on the 'net
git-svn-id: file:///srv/devel/repo-conversion/nusu@86 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-08-01 20:55:43 +00:00
Markus Ewald
fd2f072c2d Fixed the compile error because of the wrongly named unit test class; wrote unit tests for the IndexNotOfAny() and LastIndexNotOfAny() methods; fixed a glaring bug in the IndexNotOfAny() and LastIndexNotOfAny() methods that would result in wrong results if more than one character was searched for; made the unit test for the string helper a nested item in the Visual Studio project
git-svn-id: file:///srv/devel/repo-conversion/nusu@85 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-07-30 18:32:35 +00:00
Markus Ewald
df948d2eab Added CPL license header to files where it was amiss; added StringHelper class with IndexNotOfAny() and LastIndexNotOfAny() (inverted variants of the IndexOfAny() methods in the .NET framework)
git-svn-id: file:///srv/devel/repo-conversion/nusu@84 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-07-28 19:58:15 +00:00
Markus Ewald
221a40e57f Fixed missing comment for IntegerHelper; OutOfSpaceException (for Packing algorithms) now derives from Exception instead of ApplicationException (deriving from ApplicationException is no longer recommended practice for .NET)
git-svn-id: file:///srv/devel/repo-conversion/nusu@83 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-07-22 19:35:20 +00:00
Markus Ewald
313b006f83 Added license tags in the files where they were amiss; added IntegerHelper class with a method to quickly determine the next power of 2 to any number
git-svn-id: file:///srv/devel/repo-conversion/nusu@82 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-07-17 21:19:41 +00:00
Markus Ewald
a666885598 Some more minor documentation improvements
git-svn-id: file:///srv/devel/repo-conversion/nusu@81 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-07-17 20:51:35 +00:00
Markus Ewald
2cc7b27b0c Added read-only collection wrappers for IDictionary<>, IList<> and ICollection<> since the classes provided by the .NET framework in System.Collections.ObjectModel are incomplete and inconsistent (eg. System.Collections.ObjectModel.ReadOnlyCollection wraps an IList<>!); minor improvements to documentation; added ReverseComparer for inverting the results of an existing IComparer<> or simply comparing values in inverted order
git-svn-id: file:///srv/devel/repo-conversion/nusu@80 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-07-17 20:44:40 +00:00
Markus Ewald
f5eefc6765 Added Peek() method to the priority queue classes (it's a method and not a property because it can potentially fail with an exception and a property might lead someone to not think about this possibility)
git-svn-id: file:///srv/devel/repo-conversion/nusu@79 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-07-15 20:36:16 +00:00
Markus Ewald
7bff8c5d52 All remaining references to the old name of the waitable class, 'progression' changed to 'waitable'; QueueOperation renamed to OperationQueue; SetProgression renamed to WaitableGroup; improved documentation in various places
git-svn-id: file:///srv/devel/repo-conversion/nusu@78 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-06-11 20:28:08 +00:00
Markus Ewald
df860b8e57 Applied planned changes to the Waitable class; Waitable class now has a Wait() method that can be used instead of the WaitHandle; publicized Waitable's members to deriving classes so they don't have to duplicate them when doing a custom implementation; virtualized all Methods to allow a custom Waitable implementation to completely provide its own methods of Waiting, determining the Ended state and registering to the AsyncEnded event
git-svn-id: file:///srv/devel/repo-conversion/nusu@77 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-06-11 20:06:23 +00:00
Markus Ewald
26365177dd Documented some more possible design changes to the request framework; Waitable now manages the list of 'Ended' event subscribers itself and triggers the callback if the Waitable instance had already ended at the time of subscription
git-svn-id: file:///srv/devel/repo-conversion/nusu@76 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-06-05 19:26:36 +00:00
Markus Ewald
e0cf91a0a4 Fixed documentation of Waitable and Request classes; wrote down some ideas to improve the request framework
git-svn-id: file:///srv/devel/repo-conversion/nusu@75 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-06-05 19:19:00 +00:00
Markus Ewald
73ef5de576 Fixed dumb misspelled comment
git-svn-id: file:///srv/devel/repo-conversion/nusu@74 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-06-04 20:04:32 +00:00
Markus Ewald
bf5c8d4e19 Added memory reinterpretation functions for int, long, float and double
git-svn-id: file:///srv/devel/repo-conversion/nusu@73 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-05-28 19:11:18 +00:00
Markus Ewald
1132bc5681 Added helper class for floating point operations; implemented advanced floating point comparison
git-svn-id: file:///srv/devel/repo-conversion/nusu@72 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-05-26 20:04:33 +00:00
Markus Ewald
9228d15f69 Updated copyright message to include the year 2008; upgraded projects to XNA Game Studio 3.0 (CTP 2008-05); added missing copyright tag to CommandLineParser unit test; upgraded obsolete methods in Nuclex.UserInterface to use the new XNA 2.0 / 3.0 content loading/unloading methods instead
git-svn-id: file:///srv/devel/repo-conversion/nusu@71 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-05-14 19:30:05 +00:00
Markus Ewald
4567b296ae Upgraded projects to XNA Game Studio 3.0 (CTP 2008-05); marked LoadGraphicsContent() and UnloadGraphicsContent() methods as obsolete in the custom Drawable and DrawableComponent classes; updated copyright date to include the year 2008; replaced the reference to the self-compiled SevenZip.dll with Lzma#.dll, which is the name of official binary for the same library; fixed formatting in various places
git-svn-id: file:///srv/devel/repo-conversion/nusu@70 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-05-14 19:06:06 +00:00
Markus Ewald
26cb8c08af Fixed errors introduced into the unit tests by the lengthy rename operation earlier this day
git-svn-id: file:///srv/devel/repo-conversion/nusu@68 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-03-27 18:45:09 +00:00
Markus Ewald
8ef451a731 Updated ProgressReporterForm to reflect the latest changes to the Tracking framework; renamed WeightedProgression.cs to WeightedWaitable.cs in order to match the previous name changed of the class contained therein; improved documentation of the Camera class
git-svn-id: file:///srv/devel/repo-conversion/nusu@67 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-03-27 18:34:17 +00:00
Markus Ewald
b5ea9e0d70 Renamed ProgressUpdateEventArgs.cs to ProgressReportEventArgs.cs to reflect the previous name change of the class in that file
git-svn-id: file:///srv/devel/repo-conversion/nusu@66 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-03-27 17:34:54 +00:00
Markus Ewald
432ab888b9 Renamed ProgressionTracker to ProgressTracker; renamed most classes with 'Progression' in their name to use 'Waitable' instead; some minor documentation fixes
git-svn-id: file:///srv/devel/repo-conversion/nusu@65 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-03-26 21:20:52 +00:00
Markus Ewald
7dbfc3c422 Renamed ProgressUpdated event to ProgressChanged in order to conform with the status report naming convention; removed progress reporting from the Progression class; moved progress reporting into its own interface which is now optional to implement for any background task; renamed Progression to Waitable since it no longer has anything to do with progress; fixed unit tests
git-svn-id: file:///srv/devel/repo-conversion/nusu@64 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-03-26 21:03:49 +00:00
Markus Ewald
1161ef8f25 Trimmed down the Request class and provided it with a clear way to pass results to the user of the request
git-svn-id: file:///srv/devel/repo-conversion/nusu@63 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-03-26 20:20:38 +00:00
Markus Ewald
c21ba759cc Renamed FailableOperation to Request, this is a much shorter name that better represents the concept implemented by the class
git-svn-id: file:///srv/devel/repo-conversion/nusu@62 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-03-26 19:52:28 +00:00
Markus Ewald
533cbba3c5 Moved the failure handling of asynchronous processes from the Operation class into a new intermediate class, FailableProgression; renamed Begin() to Start() in Operation to keep it more in line with System.Threading.Thread; renamed End() method to Join() in the new FailableProgression class for the same reason; improved documentation
git-svn-id: file:///srv/devel/repo-conversion/nusu@61 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-02-07 21:25:34 +00:00
Markus Ewald
fd76346296 Fixed issue in PluginHost introduced by the renaming of the 'LoadedPlugins' property to 'LoadedAssemblies'; fixed an XML comment which was crefing to the wrong class name
git-svn-id: file:///srv/devel/repo-conversion/nusu@60 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-01-07 18:16:34 +00:00
Markus Ewald
d59753b98d Moved all contents of the Nuclex.Plugins project into the Nuclex.Support project; added copyright notices to all files imported from Nuclex.Plugins; updated copyright span year in all copyright notices; minor documentation improvements
git-svn-id: file:///srv/devel/repo-conversion/nusu@59 d2e56fa2-650e-0410-a79f-9358c0239efd
2008-01-07 18:04:02 +00:00
Markus Ewald
4829c8f8d5 Renamed Gui to Screen in the UserInterface library; improved documentation in ProgressionTracker
git-svn-id: file:///srv/devel/repo-conversion/nusu@58 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-12-20 19:15:33 +00:00
Markus Ewald
57d4c734b6 Upgraded all projects to XNA 2.0; project files now use (x86) instead of (PC) to indicate an x86 build (more logical and readily associated with the build platform); moved all text files into their project's documents folder; fixed any build configuration inconsistencies encountered along the way; renamed Nuclex.Graphics.Effects to Nuclex.Graphics.SpecialEffects to avoid confusion with the XNA 'Effect' class
git-svn-id: file:///srv/devel/repo-conversion/nusu@56 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-12-14 20:43:34 +00:00
Markus Ewald
b1e97f48bf Improved documentation in various places; added UML design concepts for UserInterface library; created unit tests for the PathHelper class; Gui now has width and height to allow usage of unified coordinates; renamed InputProcessor to InputReceiver
git-svn-id: file:///srv/devel/repo-conversion/nusu@55 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-11-02 21:36:15 +00:00
Markus Ewald
7812f88aca Some minor documentation and formatting fixes
git-svn-id: file:///srv/devel/repo-conversion/nusu@53 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-09-28 21:31:13 +00:00
Markus Ewald
8962835029 Added serialization methods for the Curve class from the XNA framework; upgraded project to NUnit 2.4.3
git-svn-id: file:///srv/devel/repo-conversion/nusu@52 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-09-26 20:12:20 +00:00
Markus Ewald
932fdcb6f7 Command line parser now also collects loose arguments like typically used to specify file names or commands in a console application; marginally improved documentation in various places
git-svn-id: file:///srv/devel/repo-conversion/nusu@51 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-09-25 19:37:45 +00:00
Markus Ewald
93092637cf Added a command line parser that extracts command line arguments and assignments for console-based utility programs
git-svn-id: file:///srv/devel/repo-conversion/nusu@50 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-09-24 20:16:14 +00:00
Markus Ewald
504d96eb0a Added a new class PathHelper with a method that converts absolute paths into relative paths
git-svn-id: file:///srv/devel/repo-conversion/nusu@49 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-09-24 19:18:33 +00:00
Markus Ewald
e281b5cbb3 Added status reporting interface to provide a generalized interface for background processes to report their current status; tried to improve documentation of the Progression and RectanglePacker classes
git-svn-id: file:///srv/devel/repo-conversion/nusu@48 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-09-23 20:06:26 +00:00
Markus Ewald
96e546c2f4 Renamed the 'Documentation' folder of all projects involved in Nuclex.FireFight to 'Documents'
git-svn-id: file:///srv/devel/repo-conversion/nusu@47 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-09-10 18:50:50 +00:00
Markus Ewald
99312edc17 Removed commented out progression start events entirely in progress tracking framework, no cases found were it would have been of use
git-svn-id: file:///srv/devel/repo-conversion/nusu@46 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-09-05 20:09:35 +00:00
Markus Ewald
c230f0ce7c Renamed UnintrusivePriorityQueue to PairPriorityQueue; Switched PairPriorityQueue to work on PriorityItemPairs instead of eating up the priority value once the item was added; PriorityQueue and PairPriorityQueue now both work on the default comparer or use a custom comparer specified in the constructor
git-svn-id: file:///srv/devel/repo-conversion/nusu@45 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-09-05 18:20:10 +00:00
Markus Ewald
4b0d3d26cc Some lesser XML documentation improvements
git-svn-id: file:///srv/devel/repo-conversion/nusu@44 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-08-31 21:24:40 +00:00
Markus Ewald
caeee49f4a Added an empty line between the license section and the using statements; fixed a wrong comment in ObservableCollection.cs
git-svn-id: file:///srv/devel/repo-conversion/nusu@43 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-07-24 20:15:19 +00:00
Markus Ewald
9f4751ae39 Removed AcquiringCollection because in hindsight, the design added little value and even required some workarounds to be fully usable in the classes it was intended to simplify; added mono/linux build for the assembly
git-svn-id: file:///srv/devel/repo-conversion/nusu@42 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-07-24 19:51:51 +00:00
Markus Ewald
cf92f22b31 Switched the parenting collection back to derive directly from the .NET Framework collection class to simplify the implementation of the DisposeItems() method; fixed some documentation errors in one of the rectangle packers
git-svn-id: file:///srv/devel/repo-conversion/nusu@41 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-07-19 20:02:05 +00:00
Markus Ewald
fba9d87e65 The rectangle packers now throw a proper exception when there is no more space available; Moved interface implementations of the TransformingReadOnlyCollection into a separate file to keep the main body of the class readable
git-svn-id: file:///srv/devel/repo-conversion/nusu@40 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-07-16 20:09:51 +00:00
Markus Ewald
acbb07d6b5 Some more unit tests; improved documentation; improve useless speed optimization of an exceptional case
git-svn-id: file:///srv/devel/repo-conversion/nusu@39 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-07-12 22:16:11 +00:00
Markus Ewald
81cb56f468 Fixed some possible issues in the ProgressionTracker; wrote several new NMock-assisted tests for it
git-svn-id: file:///srv/devel/repo-conversion/nusu@38 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-07-12 22:02:23 +00:00
Markus Ewald
ba1cee917d Redesigned the Collection framework to incorporate a more general variant of the ObservableCollection<> class; ParentingCollection class now makes use of this new inbetween class; ParentingCollection now has a cleaner way to dispose its members than the original InternalDispose() method
git-svn-id: file:///srv/devel/repo-conversion/nusu@37 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-07-10 19:25:18 +00:00
Markus Ewald
4933604495 Queue operation fully implemented; added small unit test for queue operation; some comment improvements in other code sections
git-svn-id: file:///srv/devel/repo-conversion/nusu@36 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-07-10 18:15:34 +00:00
Markus Ewald
850db0cded Fully implemented the ProgressionTracker and created some NMock-assisted unit tests for validating its proper functioning
git-svn-id: file:///srv/devel/repo-conversion/nusu@35 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-07-09 21:41:21 +00:00
Markus Ewald
344e5fac53 Began implementing the ProgressionTracker
git-svn-id: file:///srv/devel/repo-conversion/nusu@34 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-07-05 20:02:02 +00:00
Markus Ewald
46c0ac68af Found a probably good implementation for the Operation class
git-svn-id: file:///srv/devel/repo-conversion/nusu@33 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-07-04 19:19:48 +00:00
Markus Ewald
b73d7846d8 Made adjustments to reflect the recent name change of Nuclex.SpecialFx to Nuclex.Graphics.Effects; fixed all remaining compiler warnings
git-svn-id: file:///srv/devel/repo-conversion/nusu@32 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-07-02 18:54:34 +00:00
Markus Ewald
1ae0c7de63 Added an AsyncStarted event to the progression class, currently disabled for further consideration; set up the outline of a new spatial partitioning framework with an R*-Tree implementation; new AbortedException for indicating that a process was forcefully aborted
git-svn-id: file:///srv/devel/repo-conversion/nusu@31 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-07-01 19:27:40 +00:00
Markus Ewald
6d79fe3ebc Added new generic WeakReference class for typesafe weak reference usage
git-svn-id: file:///srv/devel/repo-conversion/nusu@30 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-06-18 21:25:16 +00:00
Markus Ewald
991fab9721 Added quaternion serialization; serialization methods now always work on references to improve performance; removed dead code from CygonRectanglePacker; improved commenting on Progression framework
git-svn-id: file:///srv/devel/repo-conversion/nusu@29 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-06-12 19:15:55 +00:00
Markus Ewald
979e6328fb Fixed a warning resulting from an invalid character in an XML comment; renamed findBestPlacement() to tryFindBestPlacement() which is more in sync with the conventions used by the .NET framework
git-svn-id: file:///srv/devel/repo-conversion/nusu@28 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-05-31 19:15:39 +00:00
Markus Ewald
d977552d8f Some minor cosmetic fixes; improved several variable names; added more commentation
git-svn-id: file:///srv/devel/repo-conversion/nusu@27 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-05-28 18:11:41 +00:00
Markus Ewald
02cea246b5 Removed wasted space determination code entirely - it'll be in my repository should I ever want to see it again ;)
git-svn-id: file:///srv/devel/repo-conversion/nusu@26 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-05-22 21:09:00 +00:00
Markus Ewald
9157bf8454 Finally disabled wasted area calculation for good in the 'cygon' packer because benchmarks show it as being counterproductive; implemented rectangle placement optimization as it is done in the original 'arevalo' packer - the C# version should now produce the exact identical results the C++ version does
git-svn-id: file:///srv/devel/repo-conversion/nusu@25 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-05-22 20:15:48 +00:00
Markus Ewald
dbc1da27a8 Made the scoring influence of wasted area for the "cygon" packer configurable
git-svn-id: file:///srv/devel/repo-conversion/nusu@24 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-05-22 17:57:20 +00:00
Markus Ewald
116fb53b0a Renamed Allocate() methods to Pack() in RectanglePacker; fixed an oversight in Nuclex.Support that made overlapping rectangles possible; reactivated wasted area calculation for 'cygon' rectangle packer
git-svn-id: file:///srv/devel/repo-conversion/nusu@23 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-05-21 19:04:48 +00:00
Markus Ewald
4fd0680ae7 New "Cygon" Packer is working and promptly achieved a new space efficiency record
git-svn-id: file:///srv/devel/repo-conversion/nusu@22 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-05-20 21:03:21 +00:00
Markus Ewald
5756ed94b3 Integration of new rectangles into silhouette data structure seems to be working properly
git-svn-id: file:///srv/devel/repo-conversion/nusu@21 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-05-20 20:39:09 +00:00
Markus Ewald
62d54b5795 Began rolling out a new, more effective rectangle packer; renamed the previous 'Cygon' algorithm to 'Simple' because of its simplicity
git-svn-id: file:///srv/devel/repo-conversion/nusu@20 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-05-16 21:27:59 +00:00
Markus Ewald
d09bb30cec Added a small rectangle packing library for optimally arranging smaller rectangles within one larger rectangle
git-svn-id: file:///srv/devel/repo-conversion/nusu@19 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-05-16 20:28:23 +00:00
Markus Ewald
acdea736b6 Added CPL statement in front of all source files
git-svn-id: file:///srv/devel/repo-conversion/nusu@18 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-05-11 21:15:35 +00:00
Markus Ewald
9268c3251f Removed reparent call from ParentingCollection.Dispose() method. If a class deriving from ParentingCollection wants to disconnect all its items in order to prevent collection elements from accessing their owner (which might have been disposed already), it can still Reparent() the collection to null manually
git-svn-id: file:///srv/devel/repo-conversion/nusu@17 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-05-10 19:11:28 +00:00
Markus Ewald
84324eb936 Moved events to top of class to stay conformant with coding standards
git-svn-id: file:///srv/devel/repo-conversion/nusu@16 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-05-09 19:17:53 +00:00
Markus Ewald
7ec11b91b9 Several small optimizations; improved XML comments; added a text file for storing general ideas about the design of Nuclex.Support
git-svn-id: file:///srv/devel/repo-conversion/nusu@15 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-05-08 18:42:00 +00:00
Markus Ewald
88390bc38d Improved documentation
git-svn-id: file:///srv/devel/repo-conversion/nusu@14 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-05-02 19:25:21 +00:00
Markus Ewald
0008304d64 SetProgression fully working and tested, yay!; remedied a little imperfection that would theoretically allow progressions to trigger the end even twice
git-svn-id: file:///srv/devel/repo-conversion/nusu@13 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-04-20 18:04:19 +00:00
Markus Ewald
71b6dc90a2 SetProgression partially working; wrote several unit tests using the NMock library; lots of smaller improvements to the progression classes
git-svn-id: file:///srv/devel/repo-conversion/nusu@12 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-04-19 18:18:34 +00:00
Markus Ewald
cefbc78868 Reorganized the directory structure a bit; Created a new transforming collection for exposing the types in a collection under a different interface; moved Operation and associated classes to a new namespace; Implemented the basics of the SetProgression's observation mechanics
git-svn-id: file:///srv/devel/repo-conversion/nusu@11 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-04-18 20:20:03 +00:00
Markus Ewald
f38a0bc1ea Moved licensing classes to proper namespace; rethought the progression result design (removed outcome reporting entirely); Began implementation of a progression set class for grouping progressions
git-svn-id: file:///srv/devel/repo-conversion/nusu@10 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-04-16 18:31:59 +00:00
Markus Ewald
2d145ca867 Provided a common class for observable collections similar to what the .NET Framework 3.0 offers; ParentingCollection no longer requires the parent type to be a reference type; Laid the foundation for a new progress tracking framework that can be used to drive progress bars, loading screens and such
git-svn-id: file:///srv/devel/repo-conversion/nusu@9 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-04-16 17:18:16 +00:00
Markus Ewald
5aef46ca7a Various conformity issues to coding guidelines fixed; documented all exceptions being thrown
git-svn-id: file:///srv/devel/repo-conversion/nusu@7 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-04-02 18:48:28 +00:00
Markus Ewald
f4b2062e19 Added license key class that had been lingering in the code snippets sections of my homepage for months now
git-svn-id: file:///srv/devel/repo-conversion/nusu@6 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-03-28 22:19:34 +00:00
Markus Ewald
c346a07ab0 Added serialization methods for vectors and matrices
git-svn-id: file:///srv/devel/repo-conversion/nusu@5 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-03-20 18:34:34 +00:00
Markus Ewald
d813756eed Fully implemented the priority collection; Created a wrapper for non-intrusive priority collections that keep the priority external to the object; wrote unit tests for both
git-svn-id: file:///srv/devel/repo-conversion/nusu@4 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-03-05 18:22:31 +00:00
Markus Ewald
d339e00bce Made the Dispose() method of the parenting collection public (for now only?); found another, better, priority queue implementation to use for reference
git-svn-id: file:///srv/devel/repo-conversion/nusu@3 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-03-01 21:24:19 +00:00
Markus Ewald
fb7dba1c2c Renamed project file to stay consistent with the current conventions; corrected the copy & paste error in the BinarySerializer's unit test comments; added temporary build files to svn:ignore list
git-svn-id: file:///srv/devel/repo-conversion/nusu@2 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-02-28 20:55:21 +00:00
Markus Ewald
ce8df64be5 Imported newly created Nuclex.Support library which contains various supporting classes not related to a specific topic
git-svn-id: file:///srv/devel/repo-conversion/nusu@1 d2e56fa2-650e-0410-a79f-9358c0239efd
2007-02-28 20:20:50 +00:00