diff --git a/doc/Dependencies/Platform.Data.Doublets.cpp.svg b/doc/Dependencies/Platform.Data.Doublets.cpp.svg index 615000a..544337b 100644 --- a/doc/Dependencies/Platform.Data.Doublets.cpp.svg +++ b/doc/Dependencies/Platform.Data.Doublets.cpp.svg @@ -14,7 +14,7 @@ Platform.Delegates -Platform.Delegates +Platform.Delegates @@ -23,52 +23,52 @@ Platform.Exceptions -Platform.Exceptions +Platform.Exceptions Platform.Delegates->Platform.Exceptions - - + + Platform.Ranges -Platform.Ranges +Platform.Ranges Platform.Exceptions->Platform.Ranges - - + + Platform.Collections -Platform.Collections +Platform.Collections Platform.Exceptions->Platform.Collections - - + + Platform.Numbers -Platform.Numbers +Platform.Numbers @@ -77,153 +77,153 @@ Platform.Collections.Methods -Platform.Collections.Methods +Platform.Collections.Methods Platform.Numbers->Platform.Collections.Methods - - + + Platform.Data.Doublets -Platform.Data.Doublets +Platform.Data.Doublets Platform.Collections.Methods->Platform.Data.Doublets - - + + Platform.Random -Platform.Random +Platform.Random Platform.Ranges->Platform.Random - - + + Platform.Random->Platform.Collections - - + + Platform.Converters -Platform.Converters +Platform.Converters Platform.Converters->Platform.Ranges - - + + Platform.Hashing -Platform.Hashing +Platform.Hashing Platform.Hashing->Platform.Ranges - - + + Platform.Hashing->Platform.Collections - - + + Platform.Data -Platform.Data +Platform.Data Platform.Collections->Platform.Data - - + + Platform.Data->Platform.Data.Doublets - - + + Platform.Memory -Platform.Memory +Platform.Memory Platform.Memory->Platform.Data.Doublets - - + + Platform.Equality -Platform.Equality +Platform.Equality Platform.Equality->Platform.Collections - - + + Platform.Interfaces -Platform.Interfaces +Platform.Interfaces Platform.Interfaces->Platform.Collections - - + + diff --git a/doc/Dependencies/Platform.Data.Doublets.cpp.svg.backup b/doc/Dependencies/Platform.Data.Doublets.cpp.svg.backup new file mode 100644 index 0000000..615000a --- /dev/null +++ b/doc/Dependencies/Platform.Data.Doublets.cpp.svg.backup @@ -0,0 +1,229 @@ + + + + + + +PlatformDataDoubletsDependencies + + + +Platform.Delegates + + +Platform.Delegates + + + + + +Platform.Exceptions + + +Platform.Exceptions + + + + + +Platform.Delegates->Platform.Exceptions + + + + + +Platform.Ranges + + +Platform.Ranges + + + + + +Platform.Exceptions->Platform.Ranges + + + + + +Platform.Collections + + +Platform.Collections + + + + + +Platform.Exceptions->Platform.Collections + + + + + +Platform.Numbers + + +Platform.Numbers + + + + + +Platform.Collections.Methods + + +Platform.Collections.Methods + + + + + +Platform.Numbers->Platform.Collections.Methods + + + + + +Platform.Data.Doublets + + +Platform.Data.Doublets + + + + + +Platform.Collections.Methods->Platform.Data.Doublets + + + + + +Platform.Random + + +Platform.Random + + + + + +Platform.Ranges->Platform.Random + + + + + +Platform.Random->Platform.Collections + + + + + +Platform.Converters + + +Platform.Converters + + + + + +Platform.Converters->Platform.Ranges + + + + + +Platform.Hashing + + +Platform.Hashing + + + + + +Platform.Hashing->Platform.Ranges + + + + + +Platform.Hashing->Platform.Collections + + + + + +Platform.Data + + +Platform.Data + + + + + +Platform.Collections->Platform.Data + + + + + +Platform.Data->Platform.Data.Doublets + + + + + +Platform.Memory + + +Platform.Memory + + + + + +Platform.Memory->Platform.Data.Doublets + + + + + +Platform.Equality + + +Platform.Equality + + + + + +Platform.Equality->Platform.Collections + + + + + +Platform.Interfaces + + +Platform.Interfaces + + + + + +Platform.Interfaces->Platform.Collections + + + + + diff --git a/doc/Dependencies/Platform.Data.Doublets.svg b/doc/Dependencies/Platform.Data.Doublets.svg index 3c9222c..651e788 100644 --- a/doc/Dependencies/Platform.Data.Doublets.svg +++ b/doc/Dependencies/Platform.Data.Doublets.svg @@ -8,7 +8,7 @@ Platform.Exceptions -Platform.Exceptions +Platform.Exceptions @@ -17,184 +17,184 @@ Platform.Disposables -Platform.Disposables +Platform.Disposables Platform.Exceptions->Platform.Disposables - - + + Platform.Ranges -Platform.Ranges +Platform.Ranges Platform.Exceptions->Platform.Ranges - - + + Platform.Collections -Platform.Collections +Platform.Collections Platform.Disposables->Platform.Collections - - + + System.Numerics.Vectors -System.Numerics.Vectors +System.Numerics.Vectors System.Numerics.Vectors->Platform.Collections - - + + Platform.Reflection -Platform.Reflection +Platform.Reflection Platform.Collections->Platform.Reflection - - + + Platform.Threading -Platform.Threading +Platform.Threading Platform.Collections->Platform.Threading - - + + Platform.Interfaces -Platform.Interfaces +Platform.Interfaces Platform.Interfaces->Platform.Collections - - + + Platform.Timestamps -Platform.Timestamps +Platform.Timestamps Platform.Interfaces->Platform.Timestamps - - + + Platform.Setters -Platform.Setters +Platform.Setters Platform.Interfaces->Platform.Setters - - + + Platform.Ranges->Platform.Collections - - + + Platform.Random -Platform.Random +Platform.Random Platform.Ranges->Platform.Random - - + + Platform.Random->Platform.Collections - - + + Platform.Data.Doublets -Platform.Data.Doublets +Platform.Data.Doublets Platform.Random->Platform.Data.Doublets - - + + System.Runtime.CompilerServices.Unsafe -System.Runtime.CompilerServices.Unsafe +System.Runtime.CompilerServices.Unsafe @@ -203,219 +203,219 @@ Platform.Unsafe -Platform.Unsafe +Platform.Unsafe System.Runtime.CompilerServices.Unsafe->Platform.Unsafe - - + + Platform.IO -Platform.IO +Platform.IO Platform.Unsafe->Platform.IO - - + + Platform.Numbers -Platform.Numbers +Platform.Numbers Platform.Numbers->Platform.Unsafe - - + + Platform.Collections.Methods -Platform.Collections.Methods +Platform.Collections.Methods Platform.Numbers->Platform.Collections.Methods - - + + Platform.Data -Platform.Data +Platform.Data Platform.Numbers->Platform.Data - - + + Platform.Converters -Platform.Converters +Platform.Converters Platform.Reflection->Platform.Converters - - + + Platform.Singletons -Platform.Singletons +Platform.Singletons Platform.Reflection->Platform.Singletons - - + + Platform.Converters->Platform.Numbers - - + + System.Reflection.Emit -System.Reflection.Emit +System.Reflection.Emit System.Reflection.Emit->Platform.Reflection - - + + System.Reflection.Emit.Lightweight -System.Reflection.Emit.Lightweight +System.Reflection.Emit.Lightweight System.Reflection.Emit.Lightweight->Platform.Reflection - - + + Platform.Threading->Platform.IO - - + + Platform.Threading->Platform.Data - - + + Platform.Memory -Platform.Memory +Platform.Memory Platform.IO->Platform.Memory - - + + Platform.Collections.Methods->Platform.Data.Doublets - - + + Platform.Timestamps->Platform.Data.Doublets - - + + Platform.Setters->Platform.Data - - + + Platform.Singletons->Platform.Data.Doublets - - + + System.IO.MemoryMappedFiles -System.IO.MemoryMappedFiles +System.IO.MemoryMappedFiles System.IO.MemoryMappedFiles->Platform.Memory - - + + Platform.Memory->Platform.Data.Doublets - - + + Platform.Data->Platform.Data.Doublets - - + + \ No newline at end of file diff --git a/doc/Dependencies/Platform.Data.Doublets.svg.backup b/doc/Dependencies/Platform.Data.Doublets.svg.backup new file mode 100644 index 0000000..3c9222c --- /dev/null +++ b/doc/Dependencies/Platform.Data.Doublets.svg.backup @@ -0,0 +1,421 @@ + + +PlatformDataDoubletsDependencies + + + +Platform.Exceptions + + +Platform.Exceptions + + + + + +Platform.Disposables + + +Platform.Disposables + + + + + +Platform.Exceptions->Platform.Disposables + + + + + +Platform.Ranges + + +Platform.Ranges + + + + + +Platform.Exceptions->Platform.Ranges + + + + + +Platform.Collections + + +Platform.Collections + + + + + +Platform.Disposables->Platform.Collections + + + + + +System.Numerics.Vectors + + +System.Numerics.Vectors + + + + + +System.Numerics.Vectors->Platform.Collections + + + + + +Platform.Reflection + + +Platform.Reflection + + + + + +Platform.Collections->Platform.Reflection + + + + + +Platform.Threading + + +Platform.Threading + + + + + +Platform.Collections->Platform.Threading + + + + + +Platform.Interfaces + + +Platform.Interfaces + + + + + +Platform.Interfaces->Platform.Collections + + + + + +Platform.Timestamps + + +Platform.Timestamps + + + + + +Platform.Interfaces->Platform.Timestamps + + + + + +Platform.Setters + + +Platform.Setters + + + + + +Platform.Interfaces->Platform.Setters + + + + + +Platform.Ranges->Platform.Collections + + + + + +Platform.Random + + +Platform.Random + + + + + +Platform.Ranges->Platform.Random + + + + + +Platform.Random->Platform.Collections + + + + + +Platform.Data.Doublets + + +Platform.Data.Doublets + + + + + +Platform.Random->Platform.Data.Doublets + + + + + +System.Runtime.CompilerServices.Unsafe + + +System.Runtime.CompilerServices.Unsafe + + + + + +Platform.Unsafe + + +Platform.Unsafe + + + + + +System.Runtime.CompilerServices.Unsafe->Platform.Unsafe + + + + + +Platform.IO + + +Platform.IO + + + + + +Platform.Unsafe->Platform.IO + + + + + +Platform.Numbers + + +Platform.Numbers + + + + + +Platform.Numbers->Platform.Unsafe + + + + + +Platform.Collections.Methods + + +Platform.Collections.Methods + + + + + +Platform.Numbers->Platform.Collections.Methods + + + + + +Platform.Data + + +Platform.Data + + + + + +Platform.Numbers->Platform.Data + + + + + +Platform.Converters + + +Platform.Converters + + + + + +Platform.Reflection->Platform.Converters + + + + + +Platform.Singletons + + +Platform.Singletons + + + + + +Platform.Reflection->Platform.Singletons + + + + + +Platform.Converters->Platform.Numbers + + + + + +System.Reflection.Emit + + +System.Reflection.Emit + + + + + +System.Reflection.Emit->Platform.Reflection + + + + + +System.Reflection.Emit.Lightweight + + +System.Reflection.Emit.Lightweight + + + + + +System.Reflection.Emit.Lightweight->Platform.Reflection + + + + + +Platform.Threading->Platform.IO + + + + + +Platform.Threading->Platform.Data + + + + + +Platform.Memory + + +Platform.Memory + + + + + +Platform.IO->Platform.Memory + + + + + +Platform.Collections.Methods->Platform.Data.Doublets + + + + + +Platform.Timestamps->Platform.Data.Doublets + + + + + +Platform.Setters->Platform.Data + + + + + +Platform.Singletons->Platform.Data.Doublets + + + + + +System.IO.MemoryMappedFiles + + +System.IO.MemoryMappedFiles + + + + + +System.IO.MemoryMappedFiles->Platform.Memory + + + + + +Platform.Memory->Platform.Data.Doublets + + + + + +Platform.Data->Platform.Data.Doublets + + + + + \ No newline at end of file diff --git a/doc/Intro/1.svg b/doc/Intro/1.svg index c3f27fd..bfb0826 100644 --- a/doc/Intro/1.svg +++ b/doc/Intro/1.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/doc/Intro/1.svg.backup b/doc/Intro/1.svg.backup new file mode 100644 index 0000000..c3f27fd --- /dev/null +++ b/doc/Intro/1.svg.backup @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/Intro/10.svg b/doc/Intro/10.svg index d31ee2f..4dda3a0 100644 --- a/doc/Intro/10.svg +++ b/doc/Intro/10.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/doc/Intro/10.svg.backup b/doc/Intro/10.svg.backup new file mode 100644 index 0000000..d31ee2f --- /dev/null +++ b/doc/Intro/10.svg.backup @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/Intro/11.svg b/doc/Intro/11.svg index 8e35dd8..e1f3f49 100644 --- a/doc/Intro/11.svg +++ b/doc/Intro/11.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/doc/Intro/11.svg.backup b/doc/Intro/11.svg.backup new file mode 100644 index 0000000..8e35dd8 --- /dev/null +++ b/doc/Intro/11.svg.backup @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/Intro/12.svg b/doc/Intro/12.svg index 384d82d..51c075d 100644 --- a/doc/Intro/12.svg +++ b/doc/Intro/12.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/doc/Intro/12.svg.backup b/doc/Intro/12.svg.backup new file mode 100644 index 0000000..384d82d --- /dev/null +++ b/doc/Intro/12.svg.backup @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/Intro/2.svg b/doc/Intro/2.svg index 1c9ceff..f911e8d 100644 --- a/doc/Intro/2.svg +++ b/doc/Intro/2.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/doc/Intro/2.svg.backup b/doc/Intro/2.svg.backup new file mode 100644 index 0000000..1c9ceff --- /dev/null +++ b/doc/Intro/2.svg.backup @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/Intro/3.svg b/doc/Intro/3.svg index 05084dc..8845024 100644 --- a/doc/Intro/3.svg +++ b/doc/Intro/3.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/doc/Intro/3.svg.backup b/doc/Intro/3.svg.backup new file mode 100644 index 0000000..05084dc --- /dev/null +++ b/doc/Intro/3.svg.backup @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/Intro/4.svg b/doc/Intro/4.svg index 4279e6a..53fcf1d 100644 --- a/doc/Intro/4.svg +++ b/doc/Intro/4.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/doc/Intro/4.svg.backup b/doc/Intro/4.svg.backup new file mode 100644 index 0000000..4279e6a --- /dev/null +++ b/doc/Intro/4.svg.backup @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/Intro/5.svg b/doc/Intro/5.svg index c9fcf3a..e1e4fdf 100644 --- a/doc/Intro/5.svg +++ b/doc/Intro/5.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/doc/Intro/5.svg.backup b/doc/Intro/5.svg.backup new file mode 100644 index 0000000..c9fcf3a --- /dev/null +++ b/doc/Intro/5.svg.backup @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/Intro/6.svg b/doc/Intro/6.svg index 384dcc5..65d344c 100644 --- a/doc/Intro/6.svg +++ b/doc/Intro/6.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/doc/Intro/6.svg.backup b/doc/Intro/6.svg.backup new file mode 100644 index 0000000..384dcc5 --- /dev/null +++ b/doc/Intro/6.svg.backup @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/Intro/7.svg b/doc/Intro/7.svg index 367f58c..ccf0aa9 100644 --- a/doc/Intro/7.svg +++ b/doc/Intro/7.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/doc/Intro/7.svg.backup b/doc/Intro/7.svg.backup new file mode 100644 index 0000000..367f58c --- /dev/null +++ b/doc/Intro/7.svg.backup @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/Intro/8.svg b/doc/Intro/8.svg index 2d034ac..1495bf7 100644 --- a/doc/Intro/8.svg +++ b/doc/Intro/8.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/doc/Intro/8.svg.backup b/doc/Intro/8.svg.backup new file mode 100644 index 0000000..2d034ac --- /dev/null +++ b/doc/Intro/8.svg.backup @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/Intro/9.svg b/doc/Intro/9.svg index e9fceae..7eeccbc 100644 --- a/doc/Intro/9.svg +++ b/doc/Intro/9.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/doc/Intro/9.svg.backup b/doc/Intro/9.svg.backup new file mode 100644 index 0000000..e9fceae --- /dev/null +++ b/doc/Intro/9.svg.backup @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/Math/Links_Set_Cartesian_Product.svg b/doc/Math/Links_Set_Cartesian_Product.svg index ca4701a..669bfa2 100644 --- a/doc/Math/Links_Set_Cartesian_Product.svg +++ b/doc/Math/Links_Set_Cartesian_Product.svg @@ -87,13 +87,13 @@ rx="70" ry="70" /> 1) 2) 3) 1) 2) 3) 1) 2) 3) 1 2 3 3 2   L + style="font-style:oblique;font-size:40px;line-height:1.25;-inkscape-font-specification:'Arial Oblique';fill:#666666">L L + style="font-style:oblique;font-size:40px;line-height:1.25;-inkscape-font-specification:'Arial Oblique';fill:#666666">L L + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + (3,1) + (3,2) + (3,3) + (2,1) + (2,2) + (2,3) + (1,1) + (1,2) + (1,3) +   + + 1 + 2 + 3 + 3 + 2 + 1 + + + +   + L + L + L×L + + + + + diff --git a/doc/Math/Links_Set_Cartesian_Product_Selected.svg b/doc/Math/Links_Set_Cartesian_Product_Selected.svg index 611d61e..c3af1a0 100644 --- a/doc/Math/Links_Set_Cartesian_Product_Selected.svg +++ b/doc/Math/Links_Set_Cartesian_Product_Selected.svg @@ -87,13 +87,13 @@ rx="70" ry="70" /> 1) 2) 3) 1) ) 3) ) ) 3) 1 2 3 3 2   L + style="font-style:oblique;font-size:40px;line-height:1.25;-inkscape-font-specification:'Arial Oblique';fill:#666666">L L + style="font-style:oblique;font-size:40px;line-height:1.25;-inkscape-font-specification:'Arial Oblique';fill:#666666">L L + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + (3,1) + (3,2) + (3,3) + (2,1) + (2,2) + (2,3) + (1,1) + (1,2) + (1,3) +   + + 1 + 2 + 3 + 3 + 2 + 1 + + + +   + L + L + L×L + + + + + diff --git a/doc/TheoriesComparison/graph_theory.svg b/doc/TheoriesComparison/graph_theory.svg index 078d886..78fdf23 100644 --- a/doc/TheoriesComparison/graph_theory.svg +++ b/doc/TheoriesComparison/graph_theory.svg @@ -114,10 +114,10 @@ refY="0"> + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/TheoriesComparison/links_theory.svg b/doc/TheoriesComparison/links_theory.svg index 8dcaa04..a18ffc2 100644 --- a/doc/TheoriesComparison/links_theory.svg +++ b/doc/TheoriesComparison/links_theory.svg @@ -197,10 +197,10 @@ refY="0"> + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/TheoriesComparison/links_theory_3_links.svg b/doc/TheoriesComparison/links_theory_3_links.svg index 20a5104..3a524e8 100644 --- a/doc/TheoriesComparison/links_theory_3_links.svg +++ b/doc/TheoriesComparison/links_theory_3_links.svg @@ -162,10 +162,10 @@ refY="0"> 1 2 + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + 2 + 3 + + diff --git a/doc/TheoriesComparison/theories_comparison.svg b/doc/TheoriesComparison/theories_comparison.svg index cf6551e..b3bd54e 100644 --- a/doc/TheoriesComparison/theories_comparison.svg +++ b/doc/TheoriesComparison/theories_comparison.svg @@ -132,10 +132,10 @@ refY="0"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + Теория графов + Теория связей + + + Graph theory + Links theory + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/links-edge-to-edge.svg b/doc/links-edge-to-edge.svg index def7991..c7350e2 100644 --- a/doc/links-edge-to-edge.svg +++ b/doc/links-edge-to-edge.svg @@ -103,7 +103,7 @@ @@ -117,7 +117,7 @@ @@ -131,7 +131,7 @@ diff --git a/doc/links-edge-to-edge.svg.backup b/doc/links-edge-to-edge.svg.backup new file mode 100644 index 0000000..def7991 --- /dev/null +++ b/doc/links-edge-to-edge.svg.backup @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + diff --git a/doc/links-en.svg b/doc/links-en.svg index c4ed3a6..04abe83 100644 --- a/doc/links-en.svg +++ b/doc/links-en.svg @@ -1 +1 @@ -EndStartLinkStartEndLinkType \ No newline at end of file +EndStartLinkStartEndLinkType \ No newline at end of file diff --git a/doc/links-en.svg.backup b/doc/links-en.svg.backup new file mode 100644 index 0000000..c4ed3a6 --- /dev/null +++ b/doc/links-en.svg.backup @@ -0,0 +1 @@ +EndStartLinkStartEndLinkType \ No newline at end of file diff --git a/doc/links-ru.svg b/doc/links-ru.svg index de6643b..06634c3 100644 --- a/doc/links-ru.svg +++ b/doc/links-ru.svg @@ -1 +1 @@ -НачалоКонецТип связиНачалоКонецСвязьСвязь \ No newline at end of file +НачалоКонецТип связиНачалоКонецСвязьСвязь \ No newline at end of file diff --git a/doc/links-ru.svg.backup b/doc/links-ru.svg.backup new file mode 100644 index 0000000..de6643b --- /dev/null +++ b/doc/links-ru.svg.backup @@ -0,0 +1 @@ +НачалоКонецТип связиНачалоКонецСвязьСвязь \ No newline at end of file diff --git a/doc/links.svg b/doc/links.svg index 3475844..c0db7c7 100644 --- a/doc/links.svg +++ b/doc/links.svg @@ -90,7 +90,7 @@ @@ -104,7 +104,7 @@ diff --git a/doc/links.svg.backup b/doc/links.svg.backup new file mode 100644 index 0000000..3475844 --- /dev/null +++ b/doc/links.svg.backup @@ -0,0 +1,183 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + diff --git a/experiments/analyze_svg_colors.py b/experiments/analyze_svg_colors.py new file mode 100644 index 0000000..20f49ae --- /dev/null +++ b/experiments/analyze_svg_colors.py @@ -0,0 +1,57 @@ +#!/usr/bin/env python3 +""" +Script to analyze SVG files for black colors that need to be changed to gray +""" +import os +import re +import glob + +def find_black_patterns_in_svg(filepath): + """Find black color patterns in SVG file""" + try: + with open(filepath, 'r', encoding='utf-8') as f: + content = f.read() + + # Patterns to look for: + # #000, #000000, black, rgb(0,0,0) + patterns = [ + r'#000(?![0-9a-fA-F])', # #000 not followed by more hex digits + r'#000000', + r'\bblack\b', + r'rgb\(\s*0\s*,\s*0\s*,\s*0\s*\)' + ] + + found_patterns = [] + for i, pattern in enumerate(patterns): + matches = re.finditer(pattern, content, re.IGNORECASE) + for match in matches: + found_patterns.append({ + 'pattern': pattern, + 'match': match.group(), + 'start': match.start(), + 'end': match.end() + }) + + return found_patterns + except Exception as e: + print(f"Error reading {filepath}: {e}") + return [] + +def main(): + svg_files = glob.glob("./doc/**/*.svg", recursive=True) + + files_with_black = {} + + for svg_file in svg_files: + patterns = find_black_patterns_in_svg(svg_file) + if patterns: + files_with_black[svg_file] = patterns + print(f"\n{svg_file}:") + for pattern in patterns: + print(f" - Found: {pattern['match']}") + + print(f"\nSummary: {len(files_with_black)} SVG files contain black colors") + return files_with_black + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/experiments/links-edge-to-edge-updated.svg b/experiments/links-edge-to-edge-updated.svg new file mode 100644 index 0000000..c7350e2 --- /dev/null +++ b/experiments/links-edge-to-edge-updated.svg @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + diff --git a/experiments/test_single_file.py b/experiments/test_single_file.py new file mode 100644 index 0000000..085c7bc --- /dev/null +++ b/experiments/test_single_file.py @@ -0,0 +1,88 @@ +#!/usr/bin/env python3 +""" +Test script to update a single SVG file and check the result +""" +import os +import re +import shutil + +# Gray color to use instead of black +GRAY_COLOR = "#666666" + +def backup_file(filepath): + """Create a backup of the original file""" + backup_path = filepath + ".backup" + if not os.path.exists(backup_path): + shutil.copy2(filepath, backup_path) + print(f"Created backup: {backup_path}") + +def update_svg_colors(filepath): + """Update black colors to gray in SVG file""" + try: + with open(filepath, 'r', encoding='utf-8') as f: + content = f.read() + + original_content = content + print(f"Original file size: {len(content)} characters") + + # Show some examples of what we're replacing + black_000 = len(re.findall(r'#000(?![0-9a-fA-F])', content)) + black_000000 = len(re.findall(r'#000000', content)) + black_word = len(re.findall(r'\bblack\b', content, re.IGNORECASE)) + rgb_black = len(re.findall(r'rgb\(\s*0\s*,\s*0\s*,\s*0\s*\)', content, re.IGNORECASE)) + + print(f"Found patterns:") + print(f" #000: {black_000}") + print(f" #000000: {black_000000}") + print(f" 'black': {black_word}") + print(f" rgb(0,0,0): {rgb_black}") + + # Replace patterns: + content = re.sub(r'#000(?![0-9a-fA-F])', GRAY_COLOR, content) + content = re.sub(r'#000000', GRAY_COLOR, content) + content = re.sub(r'\bblack\b', GRAY_COLOR, content, flags=re.IGNORECASE) + content = re.sub(r'rgb\(\s*0\s*,\s*0\s*,\s*0\s*\)', GRAY_COLOR, content, flags=re.IGNORECASE) + + if content != original_content: + print(f"Content changed! New size: {len(content)} characters") + + # Show a few examples of the changes + lines = content.split('\n') + print("\nFirst few lines with gray color:") + for i, line in enumerate(lines[:50]): + if GRAY_COLOR in line: + print(f" Line {i+1}: {line.strip()}") + break + + return content + else: + print("No changes needed") + return None + + except Exception as e: + print(f"Error processing {filepath}: {e}") + return None + +def main(): + # Test with links-edge-to-edge.svg first + test_file = "./doc/links-edge-to-edge.svg" + + if not os.path.exists(test_file): + print(f"Test file not found: {test_file}") + return + + print(f"Testing with: {test_file}") + print("=" * 50) + + new_content = update_svg_colors(test_file) + + if new_content: + # Write to a test output file instead of overwriting + test_output = "./experiments/links-edge-to-edge-updated.svg" + with open(test_output, 'w', encoding='utf-8') as f: + f.write(new_content) + print(f"\nTest output written to: {test_output}") + print("You can compare the original and updated files to verify the changes are correct.") + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/experiments/test_svg_result.py b/experiments/test_svg_result.py new file mode 100644 index 0000000..ef6bc39 --- /dev/null +++ b/experiments/test_svg_result.py @@ -0,0 +1,75 @@ +#!/usr/bin/env python3 +""" +Test script to verify the SVG updates worked correctly +""" +import os +import glob + +def test_svg_updates(): + """Test that SVG files were updated correctly""" + updated_files = [ + "./doc/links-edge-to-edge.svg", + "./doc/links-ru.svg", + "./doc/links.svg", + "./doc/Intro/1.svg", + "./doc/Math/Links_Set_Cartesian_Product.svg", + "./doc/Dependencies/Platform.Data.Doublets.svg" + ] + + print("Testing SVG updates...") + + for filepath in updated_files: + if os.path.exists(filepath): + with open(filepath, 'r') as f: + content = f.read() + + # Check that we no longer have #000 (short black) + if '#000"' in content or '#000 ' in content or '#000;' in content: + print(f"❌ {filepath}: Still contains '#000'") + else: + print(f"✅ {filepath}: No '#000' found") + + # Check that we have our gray color + if '#666666' in content: + print(f"✅ {filepath}: Contains gray color '#666666'") + else: + print(f"❌ {filepath}: No gray color '#666666' found") + + # Check backup exists + backup_file = filepath + ".backup" + if os.path.exists(backup_file): + print(f"✅ {filepath}: Backup exists") + else: + print(f"❌ {filepath}: No backup found") + else: + print(f"❌ {filepath}: File not found") + + print() + +def check_remaining_images(): + """Check what non-SVG images we have""" + png_files = glob.glob("./doc/**/*.png", recursive=True) + jpg_files = glob.glob("./doc/**/*.jpg", recursive=True) + glob.glob("./doc/**/*.jpeg", recursive=True) + + print(f"Found {len(png_files)} PNG files") + print(f"Found {len(jpg_files)} JPG/JPEG files") + + # Show some examples + if png_files: + print("\nSample PNG files:") + for i, png in enumerate(png_files[:5]): + print(f" {png}") + if len(png_files) > 5: + print(f" ... and {len(png_files) - 5} more") + + if jpg_files: + print("\nSample JPG files:") + for i, jpg in enumerate(jpg_files[:5]): + print(f" {jpg}") + if len(jpg_files) > 5: + print(f" ... and {len(jpg_files) - 5} more") + +if __name__ == "__main__": + test_svg_updates() + print("\n" + "="*50) + check_remaining_images() \ No newline at end of file diff --git a/experiments/update_log.txt b/experiments/update_log.txt new file mode 100644 index 0000000..ff52d5c --- /dev/null +++ b/experiments/update_log.txt @@ -0,0 +1,56 @@ +Updating 27 SVG files... +Using gray color: #666666 + +Created backup: ./doc/links-edge-to-edge.svg.backup +Updated: ./doc/links-edge-to-edge.svg +Created backup: ./doc/Intro/8.svg.backup +Updated: ./doc/Intro/8.svg +Created backup: ./doc/Intro/1.svg.backup +Updated: ./doc/Intro/1.svg +Created backup: ./doc/Intro/7.svg.backup +Updated: ./doc/Intro/7.svg +Created backup: ./doc/Intro/3.svg.backup +Updated: ./doc/Intro/3.svg +Created backup: ./doc/Intro/2.svg.backup +Updated: ./doc/Intro/2.svg +Created backup: ./doc/Intro/6.svg.backup +Updated: ./doc/Intro/6.svg +Created backup: ./doc/Intro/11.svg.backup +Updated: ./doc/Intro/11.svg +Created backup: ./doc/Intro/5.svg.backup +Updated: ./doc/Intro/5.svg +Created backup: ./doc/Intro/12.svg.backup +Updated: ./doc/Intro/12.svg +Created backup: ./doc/Intro/9.svg.backup +Updated: ./doc/Intro/9.svg +Created backup: ./doc/Intro/4.svg.backup +Updated: ./doc/Intro/4.svg +Created backup: ./doc/Intro/10.svg.backup +Updated: ./doc/Intro/10.svg +Created backup: ./doc/links-ru.svg.backup +Updated: ./doc/links-ru.svg +Created backup: ./doc/links.svg.backup +Updated: ./doc/links.svg +Created backup: ./doc/Math/Links_Set_Cartesian_Product.svg.backup +Updated: ./doc/Math/Links_Set_Cartesian_Product.svg +Created backup: ./doc/Math/Links_Set_Cartesian_Product_Selected.svg.backup +Updated: ./doc/Math/Links_Set_Cartesian_Product_Selected.svg +No changes needed: ./doc/TheoriesComparison/point_link.svg +Created backup: ./doc/TheoriesComparison/theories_comparison.svg.backup +Updated: ./doc/TheoriesComparison/theories_comparison.svg +Created backup: ./doc/TheoriesComparison/links_theory_3_links.svg.backup +Updated: ./doc/TheoriesComparison/links_theory_3_links.svg +Created backup: ./doc/TheoriesComparison/links_theory.svg.backup +Updated: ./doc/TheoriesComparison/links_theory.svg +Created backup: ./doc/TheoriesComparison/graph_theory.svg.backup +Updated: ./doc/TheoriesComparison/graph_theory.svg +No changes needed: ./doc/ST-dots.svg +Created backup: ./doc/links-en.svg.backup +Updated: ./doc/links-en.svg +No changes needed: ./doc/SLT-dots.svg +Created backup: ./doc/Dependencies/Platform.Data.Doublets.cpp.svg.backup +Updated: ./doc/Dependencies/Platform.Data.Doublets.cpp.svg +Created backup: ./doc/Dependencies/Platform.Data.Doublets.svg.backup +Updated: ./doc/Dependencies/Platform.Data.Doublets.svg + +Summary: Updated 24 files diff --git a/experiments/update_svg_colors.py b/experiments/update_svg_colors.py new file mode 100644 index 0000000..968d4fd --- /dev/null +++ b/experiments/update_svg_colors.py @@ -0,0 +1,107 @@ +#!/usr/bin/env python3 +""" +Script to update SVG files by replacing black colors with gray +""" +import os +import re +import glob +import shutil + +# Gray color to use instead of black (this matches what's already used in some files) +GRAY_COLOR = "#666666" # Medium gray that works well on both light and dark backgrounds + +def backup_file(filepath): + """Create a backup of the original file""" + backup_path = filepath + ".backup" + if not os.path.exists(backup_path): + shutil.copy2(filepath, backup_path) + print(f"Created backup: {backup_path}") + +def update_svg_colors(filepath): + """Update black colors to gray in SVG file""" + try: + with open(filepath, 'r', encoding='utf-8') as f: + content = f.read() + + original_content = content + + # Replace patterns: + # #000 (not followed by more hex digits) -> gray + content = re.sub(r'#000(?![0-9a-fA-F])', GRAY_COLOR, content) + + # #000000 -> gray + content = re.sub(r'#000000', GRAY_COLOR, content) + + # "black" -> gray (case insensitive) + content = re.sub(r'\bblack\b', GRAY_COLOR, content, flags=re.IGNORECASE) + + # rgb(0,0,0) -> gray + content = re.sub(r'rgb\(\s*0\s*,\s*0\s*,\s*0\s*\)', GRAY_COLOR, content, flags=re.IGNORECASE) + + if content != original_content: + # Create backup before modifying + backup_file(filepath) + + # Write updated content + with open(filepath, 'w', encoding='utf-8') as f: + f.write(content) + + print(f"Updated: {filepath}") + return True + else: + print(f"No changes needed: {filepath}") + return False + + except Exception as e: + print(f"Error processing {filepath}: {e}") + return False + +def main(): + # Get all SVG files that contain black colors + svg_files_with_black = [ + "./doc/links-edge-to-edge.svg", + "./doc/Intro/8.svg", + "./doc/Intro/1.svg", + "./doc/Intro/7.svg", + "./doc/Intro/3.svg", + "./doc/Intro/2.svg", + "./doc/Intro/6.svg", + "./doc/Intro/11.svg", + "./doc/Intro/5.svg", + "./doc/Intro/12.svg", + "./doc/Intro/9.svg", + "./doc/Intro/4.svg", + "./doc/Intro/10.svg", + "./doc/links-ru.svg", + "./doc/links.svg", + "./doc/Math/Links_Set_Cartesian_Product.svg", + "./doc/Math/Links_Set_Cartesian_Product_Selected.svg", + "./doc/TheoriesComparison/point_link.svg", + "./doc/TheoriesComparison/theories_comparison.svg", + "./doc/TheoriesComparison/links_theory_3_links.svg", + "./doc/TheoriesComparison/links_theory.svg", + "./doc/TheoriesComparison/graph_theory.svg", + "./doc/ST-dots.svg", + "./doc/links-en.svg", + "./doc/SLT-dots.svg", + "./doc/Dependencies/Platform.Data.Doublets.cpp.svg", + "./doc/Dependencies/Platform.Data.Doublets.svg" + ] + + updated_count = 0 + + print(f"Updating {len(svg_files_with_black)} SVG files...") + print(f"Using gray color: {GRAY_COLOR}") + print() + + for svg_file in svg_files_with_black: + if os.path.exists(svg_file): + if update_svg_colors(svg_file): + updated_count += 1 + else: + print(f"File not found: {svg_file}") + + print(f"\nSummary: Updated {updated_count} files") + +if __name__ == "__main__": + main() \ No newline at end of file