├── .github └── workflows │ ├── ci.yml │ └── draft-pdf.yml ├── CHANGES.md ├── CONTRIBUTING.md ├── Floes └── .gitignore ├── Initialize_Model ├── initial_concentration.m ├── initialize_boundaries.m ├── initialize_floe_values.m └── initialize_ocean.m ├── LICENSE.md ├── Nares_Floes.png ├── Physical_Processes ├── Advect_Dissolved_Ice.m ├── Fuse_Floes.m ├── calc_dissolved_mass.m ├── corners.m ├── create_new_ice.m ├── frac_corner.m ├── fracture.m ├── fracture_floe.m ├── raft.m ├── ridge.m ├── ridge_values_update.m └── weld.m ├── README.md ├── Subzero.m ├── calc_collisionNum.m ├── calc_eulerian_data.m ├── calc_trajectory.m ├── collisions ├── InterX.m └── floe_interactions.m ├── floe_interactions_all.m ├── paper.bib ├── paper.md ├── paths.m ├── plotting ├── plot_Floes.m ├── plot_Floes_poly_doublePeriodicBC.m ├── plot_basic.m └── plot_basic_stress.m ├── polyclip.m ├── polygon_operations ├── FloeSimplify.m ├── MY_con2vert.m ├── MY_intersect.m ├── MY_setdiff.m ├── PolygonMoments.m ├── cutpolygon.m ├── inpolygon.m ├── p_poly_dist.m ├── pbisec.m ├── polyangles.m ├── polybnd_voronoi.m └── vert2lcon.m ├── private ├── Makefile ├── clipper.cpp ├── clipper.hpp ├── clipper.m ├── clipper.mexa64 ├── clipper.mexmaci64 ├── clipper_test.m ├── clipper_ver6.4.2 │ ├── C# │ │ ├── ConsoleDemo │ │ │ ├── ConsoleDemo.sln │ │ │ └── ConsoleDemo │ │ │ │ ├── ConsoleDemo.csproj │ │ │ │ ├── Program.cs │ │ │ │ ├── Properties │ │ │ │ └── AssemblyInfo.cs │ │ │ │ └── bin │ │ │ │ └── Release │ │ │ │ ├── ConsoleDemo.exe │ │ │ │ ├── clip.txt │ │ │ │ ├── clipper_library.dll │ │ │ │ └── subj.txt │ │ ├── GuiDemo │ │ │ ├── GuiDemo.sln │ │ │ └── GuiDemo │ │ │ │ ├── Form1.Designer.cs │ │ │ │ ├── Form1.cs │ │ │ │ ├── Form1.resx │ │ │ │ ├── GuiDemo.csproj │ │ │ │ ├── Program.cs │ │ │ │ ├── Properties │ │ │ │ ├── AssemblyInfo.cs │ │ │ │ ├── Resources.Designer.cs │ │ │ │ ├── Resources.resx │ │ │ │ ├── Settings.Designer.cs │ │ │ │ └── Settings.settings │ │ │ │ ├── Settings.cs │ │ │ │ ├── aust.bin │ │ │ │ └── bin │ │ │ │ └── Release │ │ │ │ ├── GuiDemo.exe │ │ │ │ └── clipper_library.dll │ │ └── clipper_library │ │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ │ ├── clipper.cs │ │ │ └── clipper_library.csproj │ ├── Delphi │ │ ├── cairo demo │ │ │ ├── Cairo Resources.txt │ │ │ ├── CairoClipperDemo1.dpr │ │ │ ├── CairoClipperDemo1.res │ │ │ └── cairo_clipper.pas │ │ ├── clipper.pas │ │ └── main demo │ │ │ ├── GR32_Misc.pas │ │ │ ├── clipper_demo.dpr │ │ │ ├── clipper_demo.exe │ │ │ ├── clipper_demo.res │ │ │ ├── main.dfm │ │ │ ├── main.pas │ │ │ └── polygons.res │ ├── Documentation │ │ ├── Images │ │ │ ├── _BranchEmpty.gif │ │ │ ├── _BranchRight.gif │ │ │ ├── _BranchVert.gif │ │ │ ├── _BranchVertRight.gif │ │ │ ├── _Class.gif │ │ │ ├── _Home.gif │ │ │ ├── _Project_Logo.gif │ │ │ ├── _Unit.gif │ │ │ ├── _buttons.gif │ │ │ ├── clean1.png │ │ │ ├── clean2.png │ │ │ ├── clipper_rounding.png │ │ │ ├── clipper_rounding2.png │ │ │ ├── clipper_rounding3.png │ │ │ ├── clipper_rounding4.png │ │ │ ├── cliptype.png │ │ │ ├── common_edges.png │ │ │ ├── difference.png │ │ │ ├── endtypes1.png │ │ │ ├── endtypes2.png │ │ │ ├── evenodd.png │ │ │ ├── int.png │ │ │ ├── intersection.png │ │ │ ├── jointypes.png │ │ │ ├── kangaroo_small.png │ │ │ ├── line_clipping.png │ │ │ ├── line_clipping2.png │ │ │ ├── linesdemo.png │ │ │ ├── minkowski.png │ │ │ ├── minkowski2.png │ │ │ ├── miterlimit.png │ │ │ ├── negative.png │ │ │ ├── nonzero.png │ │ │ ├── offset1.png │ │ │ ├── orientation.png │ │ │ ├── polytree.png │ │ │ ├── positive.png │ │ │ ├── sample1.png │ │ │ ├── simplify.png │ │ │ ├── simplify2.png │ │ │ ├── simplify3.png │ │ │ ├── union.png │ │ │ ├── winding_number.png │ │ │ ├── wn.png │ │ │ ├── xor.png │ │ │ └── zfill.png │ │ ├── Scripts │ │ │ ├── SyntaxHighlighter │ │ │ │ ├── compass │ │ │ │ │ ├── _theme_template.scss │ │ │ │ │ ├── config.rb │ │ │ │ │ ├── shCore.scss │ │ │ │ │ ├── shCoreDefault.scss │ │ │ │ │ ├── shCoreDjango.scss │ │ │ │ │ ├── shCoreEclipse.scss │ │ │ │ │ ├── shCoreEmacs.scss │ │ │ │ │ ├── shCoreFadeToGrey.scss │ │ │ │ │ ├── shCoreMDUltra.scss │ │ │ │ │ ├── shCoreMidnight.scss │ │ │ │ │ ├── shCoreRDark.scss │ │ │ │ │ ├── shThemeDefault.scss │ │ │ │ │ ├── shThemeDjango.scss │ │ │ │ │ ├── shThemeEclipse.scss │ │ │ │ │ ├── shThemeEmacs.scss │ │ │ │ │ ├── shThemeFadeToGrey.scss │ │ │ │ │ ├── shThemeMDUltra.scss │ │ │ │ │ ├── shThemeMidnight.scss │ │ │ │ │ └── shThemeRDark.scss │ │ │ │ ├── index.html │ │ │ │ ├── scripts │ │ │ │ │ ├── shAutoloader.js │ │ │ │ │ ├── shBrushAS3.js │ │ │ │ │ ├── shBrushAppleScript.js │ │ │ │ │ ├── shBrushBash.js │ │ │ │ │ ├── shBrushCSharp.js │ │ │ │ │ ├── shBrushColdFusion.js │ │ │ │ │ ├── shBrushCpp.js │ │ │ │ │ ├── shBrushCss.js │ │ │ │ │ ├── shBrushDelphi.js │ │ │ │ │ ├── shBrushDiff.js │ │ │ │ │ ├── shBrushErlang.js │ │ │ │ │ ├── shBrushGroovy.js │ │ │ │ │ ├── shBrushJScript.js │ │ │ │ │ ├── shBrushJava.js │ │ │ │ │ ├── shBrushJavaFX.js │ │ │ │ │ ├── shBrushPerl.js │ │ │ │ │ ├── shBrushPhp.js │ │ │ │ │ ├── shBrushPlain.js │ │ │ │ │ ├── shBrushPowerShell.js │ │ │ │ │ ├── shBrushPython.js │ │ │ │ │ ├── shBrushRuby.js │ │ │ │ │ ├── shBrushSass.js │ │ │ │ │ ├── shBrushScala.js │ │ │ │ │ ├── shBrushSql.js │ │ │ │ │ ├── shBrushVb.js │ │ │ │ │ ├── shBrushXml.js │ │ │ │ │ ├── shCore.js │ │ │ │ │ └── shLegacy.js │ │ │ │ ├── src │ │ │ │ │ ├── shAutoloader.js │ │ │ │ │ ├── shCore.js │ │ │ │ │ └── shLegacy.js │ │ │ │ └── styles │ │ │ │ │ ├── shCore.css │ │ │ │ │ ├── shCoreDefault.css │ │ │ │ │ ├── shCoreDjango.css │ │ │ │ │ ├── shCoreEclipse.css │ │ │ │ │ ├── shCoreEmacs.css │ │ │ │ │ ├── shCoreFadeToGrey.css │ │ │ │ │ ├── shCoreMDUltra.css │ │ │ │ │ ├── shCoreMidnight.css │ │ │ │ │ ├── shCoreRDark.css │ │ │ │ │ ├── shThemeDefault.css │ │ │ │ │ ├── shThemeDjango.css │ │ │ │ │ ├── shThemeEclipse.css │ │ │ │ │ ├── shThemeEmacs.css │ │ │ │ │ ├── shThemeFadeToGrey.css │ │ │ │ │ ├── shThemeMDUltra.css │ │ │ │ │ ├── shThemeMidnight.css │ │ │ │ │ └── shThemeRDark.css │ │ │ ├── bootstrap.js │ │ │ ├── expandable.js │ │ │ ├── menu_data.js │ │ │ └── menu_script.js │ │ ├── Styles │ │ │ └── default.css │ │ ├── clipper.chm │ │ ├── default.css │ │ ├── index.htm │ │ ├── offset_triginometry.svg │ │ ├── offset_triginometry2.svg │ │ └── offset_triginometry3.svg │ ├── License.txt │ ├── Third Party │ │ ├── Flash │ │ │ └── AS3_flash_readme.txt │ │ ├── Go │ │ │ └── Go_readme.txt │ │ ├── Haskell │ │ │ └── Haskell_readme.txt │ │ ├── Java │ │ │ └── java_readme.txt │ │ ├── LuaJIT │ │ │ └── LuaJIT_readme.txt │ │ ├── Matlab │ │ │ ├── #matlab_readme.txt# │ │ │ └── matlab_readme.txt │ │ ├── ObjectiveC │ │ │ └── objectivec_readme.txt │ │ ├── perl │ │ │ └── perl_readme.txt │ │ ├── python │ │ │ ├── clipper.py │ │ │ ├── clipper_demo.py │ │ │ └── python_readme.txt │ │ └── ruby │ │ │ └── ruby_readme.txt │ └── cpp │ │ ├── CMakeLists.txt │ │ ├── clipper.cpp │ │ ├── clipper.hpp │ │ ├── cpp_agg │ │ ├── agg_conv_clipper.h │ │ ├── clipper_test.cpp │ │ ├── clipper_test.exe │ │ ├── clipper_test.sln │ │ ├── clipper_test.vcxproj │ │ ├── clipper_test.vcxproj.filters │ │ └── icon.res │ │ ├── cpp_cairo │ │ ├── Cairo Resources.txt │ │ ├── cairo.sln │ │ ├── cairo.vcxproj │ │ ├── cairo_clipper.cpp │ │ ├── cairo_clipper.hpp │ │ ├── libcairo-2.lib │ │ └── main.cpp │ │ ├── cpp_console │ │ ├── clipper_console_demo.cpp │ │ ├── clipper_console_demo.exe │ │ ├── clipper_console_demo.sln │ │ └── clipper_console_demo.vcxproj │ │ ├── cpp_opengl │ │ ├── clipper_demo.exe │ │ ├── clipper_demo.sln │ │ ├── clipper_demo.vcxproj │ │ ├── icon.res │ │ ├── main.cpp │ │ └── menu.res │ │ └── polyclipping.pc.cmakein ├── mexclipper.cpp └── mexclipper.cpp~ ├── test ├── conservation_test.m └── test_conservation │ ├── FloeShapes.mat │ └── Modulus.mat └── validation_cases ├── Nares ├── large.tar.gz ├── nares_10_islands.tar.gz ├── nares_10_no_islands.tar.gz ├── nares_15_islands.tar.gz ├── nares_15_no_islands.tar.gz ├── nares_5_islands.tar.gz ├── nares_5_no_islands.tar.gz └── small.tar.gz ├── nares.tar.gz ├── uniaxial.tar.gz └── winter.tar.gz /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | # This is a basic workflow to help you get started with MATLAB Actions 2 | 3 | name: MATLAB Build 4 | 5 | # Controls when the action will run. 6 | on: 7 | # Triggers the workflow on push or pull request events but only for the JOSS branch 8 | push: 9 | branches: [ JOSS ] 10 | pull_request: 11 | branches: [ JOSS ] 12 | 13 | # Allows you to run this workflow manually from the Actions tab 14 | workflow_dispatch: 15 | 16 | jobs: 17 | # This workflow contains a single job called "build" 18 | build: 19 | # The type of runner that the job will run on 20 | runs-on: ubuntu-latest 21 | 22 | # Steps represent a sequence of tasks that will be executed as part of the job 23 | steps: 24 | # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it 25 | - uses: actions/checkout@v3 26 | 27 | # Sets up MATLAB on the GitHub Actions runner 28 | - name: Setup MATLAB 29 | uses: matlab-actions/setup-matlab@v1 30 | 31 | # Runs a set of commands using the runners shell 32 | - name: Run all tests 33 | uses: matlab-actions/run-tests@v1 34 | with: 35 | source-folder: code 36 | 37 | # As an alternative to run-tests, you can use run-command to execute a MATLAB script, function, or statement. 38 | #- name: Run all tests 39 | # uses: matlab-actions/run-command@v1 40 | # with: 41 | # command: addpath('code'); results = runtests('IncludeSubfolders', true); assertSuccess(results); 42 | -------------------------------------------------------------------------------- /.github/workflows/draft-pdf.yml: -------------------------------------------------------------------------------- 1 | on: [push] 2 | 3 | jobs: 4 | paper: 5 | runs-on: ubuntu-latest 6 | name: Paper Draft 7 | steps: 8 | - name: Checkout 9 | uses: actions/checkout@v2 10 | - name: Build draft PDF 11 | uses: openjournals/openjournals-draft-action@master 12 | with: 13 | journal: joss 14 | # This should be the path to the paper within your repo. 15 | paper-path: paper.md 16 | - name: Upload 17 | uses: actions/upload-artifact@v1 18 | with: 19 | name: paper 20 | # This is the output path where Pandoc will write the compiled 21 | # PDF. Note, this should be the same directory as the input 22 | # paper.md 23 | path: paper.pdf 24 | -------------------------------------------------------------------------------- /CHANGES.md: -------------------------------------------------------------------------------- 1 | 1.0.3 (April 3, 2023) 2 | ================== 3 | 4 | - Updates for JOSS paper, including updates to README.md, fixing a bug in calculating collisions between ghost floes, the addition of an automated test, and additional documentation. New documentation includes the CHANGES.md file and CONTRIBUTING.md. 5 | 6 | 7 | 1.0.2 (Nov 18, 2022) 8 | ================== 9 | 10 | - Update README.md 11 | 12 | 13 | 1.0.1 (Oct 18, 2022) 14 | ================== 15 | 16 | - Updated SubZero release with ocean turn angle. 17 | 18 | 19 | 1.0.0 (Oct 14, 2022) 20 | ================== 21 | 22 | - The initial release of the SubZero discrete element sea ice model. 23 | -------------------------------------------------------------------------------- /Floes/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | 4 | -------------------------------------------------------------------------------- /Initialize_Model/initial_concentration.m: -------------------------------------------------------------------------------- 1 | function [Floe, Nb] = initial_concentration(c2_boundary,target_concentration,height, NumFloes, min_floe_size) 2 | %% This function is used to generate the initial floe field 3 | 4 | %Identify the grids to align with the concentrations specified by the input 5 | [Ny, Nx] = size(target_concentration); 6 | c = flipud(target_concentration); 7 | x = min(c2_boundary(1,:)):(max(c2_boundary(1,:))-min(c2_boundary(1,:)))/Nx:max(c2_boundary(1,:)); 8 | y = min(c2_boundary(2,:)):(max(c2_boundary(2,:))-min(c2_boundary(2,:)))/Ny:max(c2_boundary(2,:)); 9 | c2_boundary_poly = polyshape(c2_boundary'); 10 | dx = x(2)-x(1); 11 | dy = y(2)-y(1); 12 | 13 | Nb = 0; 14 | Floe = []; 15 | 16 | %Loop through all the regions of the domain to create new floes 17 | for jj = 1:Ny 18 | for ii = 1:Nx 19 | if c(jj,ii)>0 20 | boundary = polyshape([x(ii) x(ii) x(ii+1) x(ii+1)], [y(jj) y(jj+1) y(jj+1) y(jj)]); 21 | boundary = intersect(boundary,c2_boundary_poly); 22 | N = ceil(NumFloes*area(boundary)/area(c2_boundary_poly)/c(jj,ii)); 23 | X = 0.975*dx/2*(2*rand(N,1)-1)+(x(ii)+x(ii+1))/2; 24 | Y = 0.975*dy/2*(2*rand(N,1)-1)+(y(jj)+y(jj+1))/2; 25 | in = inpolygon(X,Y,boundary.Vertices(:,1),boundary.Vertices(:,2)); 26 | X = X(in); Y = Y(in); 27 | [~, b,~,~,~] = polybnd_voronoi([X Y],boundary.Vertices); 28 | Nf = 1:length(b); 29 | Atot = 0; 30 | count = 1; 31 | while Atot/area(boundary)<=c(jj,ii) 32 | if ~isnan(b{Nf(count)}) 33 | poly = polyshape(b{Nf(count)}); 34 | floenew = initialize_floe_values(poly,height); 35 | Floe = [Floe floenew]; 36 | Atot = Atot+area(poly); 37 | end 38 | count = count+1; 39 | if count > length(Nf) 40 | Atot = area(boundary)+1; 41 | end 42 | end 43 | end 44 | end 45 | end 46 | 47 | areas = cat(1,Floe.area); 48 | Floe(areas 0.1 31 | FloeNEW.X = FloeNEW.rmax*(2*rand(1000,1) - 1); %X coordinate for monte-carlo integration 32 | FloeNEW.Y = FloeNEW.rmax*(2*rand(1000,1) - 1); %Y coordinate for monte-carlo integration 33 | FloeNEW.A = inpolygon(FloeNEW.X,FloeNEW.Y,FloeNEW.c_alpha(1,:),FloeNEW.c_alpha(2,:)); %Identify which are within floe boundary 34 | err = abs((sum(FloeNEW.A)/1000*4*FloeNEW.rmax^2-area(polya)))/area(polya); 35 | count = count+1; if count>10; err = 0; FloeNEW.alive = 0; end 36 | end 37 | 38 | FloeNEW.Xi = Xi; FloeNEW.Yi = Yi; FloeNEW.alive = 1; %centroid of the floe 39 | FloeNEW.alpha_i = 0; %Angle rotated from reference c0 40 | FloeNEW.Ui = 0; FloeNEW.Vi = 0;FloeNEW.ksi_ice = 0; %Linear and angular velocities 41 | 42 | % Previous values 43 | FloeNEW.dXi_p = 0; FloeNEW.dYi_p = 0; 44 | FloeNEW.dUi_p = 0; FloeNEW.dVi_p = 0; 45 | FloeNEW.dalpha_i_p = 0; 46 | FloeNEW.dksi_ice_p = 0; 47 | 48 | FloeNEW.interactions = []; %Information of interactions with other floes 49 | FloeNEW.potentialInteractions = []; %Informatio of floes that could possibly be interacted with 50 | FloeNEW.collision_force = 0; %Total force from collisions with floes 51 | FloeNEW.collision_torque = 0; %Total torque from collisions with floes 52 | FloeNEW.OverlapArea = 0; %Total overlap area with other floes 53 | 54 | 55 | end 56 | -------------------------------------------------------------------------------- /Initialize_Model/initialize_ocean.m: -------------------------------------------------------------------------------- 1 | function [ocean, heat_flux, h0]=initialize_ocean(dt,nDTOut) 2 | 3 | % defining ocean currents 4 | ocean.fCoriolis=1.4e-4; % Coriolis parameter. 5 | 6 | ocean.U = 0.5; 7 | 8 | ocean.turn_angle=15*pi/180; % turning angle between the stress and surface current due to the Ekman spiral; the angle is positive! 9 | 10 | % ocean grid; 11 | dXo=10000; % in meters 12 | 13 | Lx = 4e5; kx = pi/Lx; Ly = 4e5; ky = pi/Ly; 14 | Xo=-Lx:dXo:Lx; Yo=-Ly:dXo:Ly; 15 | [Xocn, Yocn]=meshgrid(Xo,Yo); 16 | 17 | %defining ocean streamfunction with some eddies 18 | transport=0.5e4; % horizontal transport, in m^2/s (controls ocean currents) 19 | psi_ocean=transport/1*(sin(4*kx*Xocn).*sin(4*ky*Yocn)); 20 | 21 | %calculating ocean velocity field 22 | Uocn=zeros(size(Xocn)); Vocn=zeros(size(Xocn)); 23 | Uocn(2:end,:)=-(psi_ocean(2:end,:)-psi_ocean(1:end-1,:))/dXo; 24 | Vocn(:,2:end)=(psi_ocean(:,2:end)-psi_ocean(:,1:end-1))/dXo; 25 | 26 | ocean.Xo=Xo; 27 | ocean.Yo=Yo; 28 | ocean.Xocn = Xocn; 29 | ocean.Yocn = Yocn; 30 | ocean.kx = kx; 31 | ocean.ky = ky; 32 | ocean.Uocn=Uocn; 33 | ocean.Vocn=Vocn; 34 | 35 | %Calculate heat flux and how much ice would grow between creation of new 36 | %floes 37 | k = 2.14; %Watts/(meters Kelvin) 38 | dt = 10; %seconds 39 | Ta = -20; %Kelvin 40 | To = 0; %Kelvin 41 | rho_ice = 920; %kg/m^3 42 | L = 2.93e5; % Joules/kg 43 | 44 | h0 = real(sqrt(2*k*dt*nDTOut*(To-Ta)/(rho_ice*L))); 45 | heat_flux = k*(Ta-To)/(rho_ice*L); 46 | h0 = mean(h0(:)); %Thickness of newly created sea ice; 47 | 48 | end 49 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | University of Washington License 2 | 3 | Copyright 2022 Georgy Manucharyan 4 | 5 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 6 | 7 | 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 8 | 9 | 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 10 | 11 | 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. 12 | 13 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 14 | -------------------------------------------------------------------------------- /Nares_Floes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/Nares_Floes.png -------------------------------------------------------------------------------- /Physical_Processes/Advect_Dissolved_Ice.m: -------------------------------------------------------------------------------- 1 | function Vd_new = Advect_Dissolved_Ice(Vd,coarseMean,im_num,dissolved_new,c2_boundary,dt) 2 | %This function takes in the the variable containing the mass of dissolved 3 | %sea ice on an eularian grid as well as the coarse mean eularian velocity. 4 | %The dissolved mass of sea ice is then advected around the floe field per 5 | %this information. 6 | 7 | %% find current terms 8 | U = squeeze(coarseMean(2,:,:,im_num)); 9 | V = squeeze(coarseMean(3,:,:,im_num)); 10 | vdcurrent = Vd(:,:,1); 11 | 12 | %Add ghost cells for current time step 13 | [Ny,Nx] = size(U); 14 | Nx = Nx+4; 15 | Ny = Ny+4; 16 | u(3:Ny-2,3:Nx-2) = U; 17 | u(1:2,:) = [u(3,:); u(3,:)]; 18 | u(Ny-1:Ny,:) = [u(Ny-2,:);u(Ny-2,:)]; 19 | u(:,1:2) = [u(:,3) u(:,3)]; 20 | u(:,Nx-1:Nx) = [u(:,Nx-2) u(:,Nx-2)]; 21 | v(3:Ny-2,3:Nx-2) = V; 22 | v(1:2,:) = [v(3,:); v(3,:)]; 23 | v(Ny-1:Ny,:) = [v(Ny-2,:);v(Ny-2,:)]; 24 | v(:,1:2) = [v(:,3) v(:,3)]; 25 | v(:,Nx-1:Nx) = [v(:,Nx-2) v(:,Nx-2)]; 26 | Vdcurrent(3:Ny-2,3:Nx-2) = vdcurrent; 27 | Vdcurrent(1:2,:) = [Vdcurrent(3,:); Vdcurrent(3,:)]; 28 | Vdcurrent(Ny-1:Ny,:) = [Vdcurrent(Ny-2,:);Vdcurrent(Ny-2,:)]; 29 | Vdcurrent(:,1:2) = [Vdcurrent(:,3) Vdcurrent(:,3)]; 30 | Vdcurrent(:,Nx-1:Nx) = [Vdcurrent(:,Nx-2) Vdcurrent(:,Nx-2)]; 31 | 32 | 33 | %define strength of diffusion 34 | diffusion = 1e4; 35 | 36 | DissolvedNew = zeros(Ny,Nx); 37 | DissolvedNew(3:Ny-2,3:Nx-2) = dissolved_new; 38 | 39 | %% Define grid 40 | x = min(c2_boundary(1,:)):(max(c2_boundary(1,:))-min(c2_boundary(1,:)))/(Nx-2):max(c2_boundary(1,:)); 41 | y = min(c2_boundary(2,:)):(max(c2_boundary(2,:))-min(c2_boundary(2,:)))/(Ny-2):max(c2_boundary(2,:)); 42 | delx = abs(x(2)-x(1)); 43 | dely = -abs(y(2)-y(1)); 44 | 45 | %% Find differentiation matrix for x 46 | d2x = zeros(Nx,Nx); 47 | b = 1/(delx^2); 48 | d2x(2:Nx+1:Nx*Nx) = b; 49 | d2x(2+Nx:Nx+1:Nx*Nx) = -2*b; 50 | d2x(2+2*Nx:Nx+1:Nx*Nx) = b; 51 | d2x(1,1) = b/(3/2); 52 | d2x(1,2) = -2*b/(3/2); 53 | d2x(1,3) = b/(3/2); 54 | d2x(Nx,Nx) = b/(3/2); 55 | d2x(Nx,Nx-1) = -2*b/(3/2); 56 | d2x(Nx,Nx-2) = b/(3/2); 57 | 58 | %Find differentiation matrix for y 59 | d2y = zeros(Ny,Ny); 60 | b = 1/(dely^2); 61 | d2y(2:Ny+1:Ny*Ny) = b; 62 | d2y(2+Ny:Ny+1:Ny*Ny) = -2*b; 63 | d2y(2+2*Ny:Ny+1:Ny*Ny) = b; 64 | d2y(1,1) = b/(3/2); 65 | d2y(1,2) = -2*b/(3/2); 66 | d2y(1,3) = b/(3/2); 67 | d2y(Ny,Ny) = b/(3/2); 68 | d2y(Ny,Ny-1) = -2*b/(3/2); 69 | d2y(Ny,Ny-2) = b/(3/2); 70 | 71 | Ix = eye(Nx); 72 | Iy = eye(Ny); 73 | 74 | %% Shift points for calculating Advective Terms 75 | Vxshift = zeros(Ny-4,Nx-3); 76 | Vxshift(:,2:end-1) = 0.5*(Vdcurrent(3:Ny-2,3:Nx-3)+Vdcurrent(3:Ny-2,4:Nx-2)); 77 | Ushift = zeros(Ny-4,Nx-3); 78 | Ushift(:,2:end-1) = 0.5*(u(3:Ny-2,3:Nx-3)+u(3:Ny-2,4:Nx-2)); 79 | Vyshift = zeros(Ny-3,Nx-4); 80 | Vyshift(2:end-1,:) = 0.5*(Vdcurrent(3:Ny-3,3:Nx-2)+Vdcurrent(4:Ny-2,3:Nx-2)); 81 | Vshift = zeros(Ny-3,Nx-4); 82 | Vshift(2:end-1,:) = 0.5*(v(3:Ny-3,3:Nx-2)+v(4:Ny-2,3:Nx-2)); 83 | %% Time step new equation for dissolved ice. Adams Basheforth for NL terms and Crank-Nicolsen for linear terms 84 | %Calculate RHS first without advection terms 85 | RHS = Vdcurrent(:)+DissolvedNew(:)+dt*diffusion*(kron(Ix,d2y)+kron(d2x,Iy))*Vdcurrent(:); 86 | Vd_new = reshape(RHS,Ny,Nx); 87 | 88 | %calculate advection terms 89 | Advec = diff(Ushift.*Vxshift,1,2)/delx+ diff(Vshift.*Vyshift,1,1)/dely; 90 | Vd_new(3:Ny-2,3:Nx-2) = Vd_new(3:Ny-2,3:Nx-2)-dt*Advec; 91 | 92 | %end 93 | Vd_new = Vd_new(3:Ny-2,3:Nx-2); 94 | Vd_new(Vd_new<0) = 0; 95 | end -------------------------------------------------------------------------------- /Physical_Processes/Fuse_Floes.m: -------------------------------------------------------------------------------- 1 | function [Floes] = Fuse_Floes(floe1,floe2) 2 | %This function takes two input floes and fuses them together while 3 | %conserving mass and momentum 4 | id ='MATLAB:polyshape:repairedBySimplify'; 5 | warning('off',id) 6 | save('FuseFloesArctoc.mat','floe1','floe2'); 7 | rho_ice = 920; 8 | mass = cat(1,floe2.mass); 9 | 10 | %Create and initialize the new shape 11 | polynew = union([floe1.poly floe2.poly]); 12 | polyout = sortregions(polynew,'area','descend'); 13 | [Xt, Yt] = centroid(polynew); 14 | R = regions(polyout); 15 | R = R(area(R)>1e4); 16 | Atot = 0; 17 | for ii = 1:length(R) 18 | Atot = area(R(ii),1)+Atot; 19 | end 20 | Floes = []; 21 | mtot = floe1.mass + sum(mass); 22 | for ii = 1:length(R) 23 | poly1new = R(ii); 24 | poly1new = rmholes(poly1new); 25 | poly = simplify(poly1new); 26 | massNew = area(R(ii))/Atot*mtot; 27 | height.mean = massNew/(area(poly)*rho_ice); 28 | height.delta = 0; 29 | floenew = initialize_floe_values(poly, height); 30 | Floes = [Floes floenew]; 31 | end 32 | 33 | %% Calculate new properties to conserve the momemtum of the existing floes 34 | Ui = (floe1.Ui*floe1.mass + sum(cat(1,floe2.Ui).*mass))/(mtot); 35 | Vi = (floe1.Vi*floe1.mass + sum(cat(1,floe2.Vi).*mass))/(mtot); 36 | for ii = 1:length(R) 37 | h2(ii) = (Xt-Floes(ii).Xi).^2+(Yt-Floes(ii).Yi).^2; 38 | end 39 | inertia_ice = sum(cat(1,Floes.inertia_moment))+sum(cat(1,Floes.mass).*h2'); 40 | dUi_p = (floe1.dUi_p*floe1.mass + sum(cat(1,floe2.dUi_p).*mass))/(mtot); 41 | dVi_p = (floe1.dVi_p*floe1.mass + sum(cat(1,floe2.dVi_p).*mass))/(mtot); 42 | ksi_ice = (floe1.ksi_ice*floe1.inertia_moment + sum(cat(1,floe2.ksi_ice).*cat(1,floe2.inertia_moment)))/(inertia_ice);%use inertia moment instead of mass 43 | dXi_p = (floe1.dXi_p*floe1.mass + sum(cat(1,floe2.dXi_p).*mass))/(mtot); 44 | dYi_p = (floe1.dYi_p*floe1.mass + sum(cat(1,floe2.dYi_p).*mass))/(mtot); 45 | dksi_ice_p = (floe1.dksi_ice_p*floe1.inertia_moment + sum(cat(1,floe2.dksi_ice_p).*cat(1,floe2.inertia_moment)))/(inertia_ice); 46 | 47 | 48 | for ii = 1:length(R) 49 | Floes(ii).Ui = Ui; 50 | Floes(ii).Vi = Vi; 51 | Floes(ii).dUi_p = dUi_p; 52 | Floes(ii).dVi_p = dVi_p; 53 | Floes(ii).ksi_ice = ksi_ice; 54 | Floes(ii).dXi_p = dXi_p; 55 | Floes(ii).dYi_p = dYi_p; 56 | Floes(ii).dksi_ice_p = dksi_ice_p; 57 | Floes(ii).FxOA = []; 58 | Floes(ii).FyOA = []; 59 | Floes(ii).Stress = floe1.Stress*floe1.mass; 60 | Floes(ii).StressH = floe1.StressH*floe1.mass; 61 | for jj = 1:length(floe2) 62 | Floes(ii).Stress = Floes(ii).Stress+floe2(jj).Stress*floe2(jj).mass; 63 | Floes(ii).StressH = Floes(ii).StressH+floe2(jj).StressH*floe2(jj).mass; 64 | end 65 | Floes(ii).Stress = Floes(ii).Stress/mtot; 66 | Floes(ii).StressH = Floes(ii).StressH/mtot; 67 | Floes(ii).StressCount = 1; 68 | 69 | end 70 | 71 | end 72 | 73 | -------------------------------------------------------------------------------- /Physical_Processes/calc_dissolved_mass.m: -------------------------------------------------------------------------------- 1 | function [Vd] = calc_dissolved_mass(Floe,Nx,Ny,c2_boundary_poly) 2 | %%This function takes the floes that are to small to be kept track of and 3 | %%puts it in the correct coarse grained bin 4 | 5 | %Create coarse grids 6 | x = min(c2_boundary_poly.Vertices(:,1)):(max(c2_boundary_poly.Vertices(:,1))-min(c2_boundary_poly.Vertices(:,1)))/Nx:max(c2_boundary_poly.Vertices(:,1)); 7 | y = min(c2_boundary_poly.Vertices(:,2)):(max(c2_boundary_poly.Vertices(:,2))-min(c2_boundary_poly.Vertices(:,2)))/Ny:max(c2_boundary_poly.Vertices(:,2)); 8 | 9 | %Find floes and create bins 10 | Xi=cat(1,Floe.Xi); 11 | Yi=cat(1,Floe.Yi); 12 | Binx = fix((Xi-min(x))/(max(x)-min(x))*Nx+1); 13 | Biny = fix((Yi-min(y))/(max(y)-min(y))*Ny+1); 14 | 15 | % Idenfity floes that are alive 16 | live = cat(1,Floe.alive); 17 | 18 | %Place all floes in correct bins 19 | Vd = zeros(Ny,Nx); 20 | for ii = 1:Nx 21 | for jj = 1:Ny 22 | Vd(jj,ii) = sum(cat(1,Floe(live == 1 & Binx == ii & Biny == jj).mass)); 23 | end 24 | end 25 | 26 | end 27 | 28 | -------------------------------------------------------------------------------- /Physical_Processes/fracture.m: -------------------------------------------------------------------------------- 1 | function [Floe,Princ] = fracture(Floe,Nb,min_floe_size,concentration) 2 | %basic isotropic fracture mechanism is implemented based on the stress experienced by 3 | %floes and fractures a floe into a defined number of smaller pieces when the 4 | %principal stress values satisfy the specified fracture criteria 5 | 6 | A = cat(1,Floe.area); 7 | 8 | % elliptical yield curve that was used in Hibler viscous-plastic rheology 9 | Pstar = 2.25e5; C = 20; 10 | h = mean(cat(1,Floe.h)); 11 | P = Pstar*h*exp(-C*(1-concentration)); 12 | t = linspace(0,2*pi) ; 13 | a = P*sqrt(2)/2 ; b = a/2 ; 14 | x = a*cos(t) ; 15 | y = b*sin(t) ; 16 | Mohr = polyshape(x,y); 17 | Mohr = rotate(Mohr,45); 18 | Mohr = translate(Mohr,[-P/2, -P/2]); 19 | 20 | %Use Mohr's Cone 21 | q = 5.2; SigC = 250e3; 22 | Sig1 = (1/q+1)*SigC/(1/q-q); 23 | Sig2 = q*Sig1+SigC; 24 | Sig11 = -3.375e4; 25 | Sig22 = q*Sig11+SigC; 26 | MohrX = [Sig1; Sig11; Sig22]; 27 | MohrY = [Sig2; Sig22; Sig11]; 28 | Mohr = polyshape(-MohrX,-MohrY); 29 | 30 | %Calculate Principal Stresses 31 | for ii = 1:length(Floe) 32 | Stress = eig(Floe(ii).Stress); 33 | Princ(ii,1) = max(Stress); 34 | Princ(ii,2) = min(Stress); 35 | Princ(ii,3) = Floe(ii).area; 36 | end 37 | Princ1 = Princ(:,1); Princ2 = Princ(:,2); 38 | 39 | %Determine if stresses are inside or outside allowable regions 40 | [in,~] = inpolygon(Princ1,Princ2,Mohr.Vertices(:,1), Mohr.Vertices(:,2)); 41 | keep = zeros(length(Floe),1); 42 | keep(in) = 1; 43 | keep(A 30 15 | FloeWhole.h = 30; 16 | end 17 | FloeWhole.mass = FloeWhole.mass+V*rho_ice; 18 | FloeWhole.inertia_moment = FloeWhole.h/hold.*FloeWhole.inertia_moment; 19 | 20 | %Calculate values for floe losing ice 21 | [poly2new] = subtract(FloeLess.poly,FloeWhole.poly); 22 | polyout = sortregions(poly2new,'area','descend'); 23 | R = regions(polyout); 24 | R = R(area(R)>1e4); 25 | R = rmholes(R); 26 | Atot = 0; 27 | for ii = 1:length(R) 28 | Atot = area(R(ii),1)+Atot; 29 | end 30 | if ~isempty(area(R)) 31 | FloeNEW = []; 32 | for kk = 1:length(R) 33 | FloeLess = Floe2; 34 | poly2new = rmholes(R(kk)); 35 | FloeLess.poly = poly2new; 36 | if area(poly2new) < 10 37 | FloeLess.alive = 0; 38 | else 39 | FloeLess.area = area(poly2new); 40 | [Xi,Yi] = centroid(poly2new); 41 | FloeLess.Xi = Xi; 42 | FloeLess.Yi = Yi; 43 | FloeLess.dalpha_i_p = 0; 44 | FloeLess.alpha_i = 0; 45 | FloeLess.mass = FloeLess.area/Atot*(Floe2.mass-V*rho_ice); 46 | FloeLess.c_alpha = [(poly2new.Vertices-[FloeLess.Xi FloeLess.Yi])' [poly2new.Vertices(1,1)-FloeLess.Xi; poly2new.Vertices(1,2)-FloeLess.Yi]]; 47 | FloeLess.angles = polyangles(poly2new.Vertices(:,1),poly2new.Vertices(:,2)); 48 | FloeLess.c0 = FloeLess.c_alpha; 49 | FloeLess.h = FloeLess.mass/(rho_ice*FloeLess.area); 50 | if poly2new.NumRegions > 1 51 | if area(poly2new) > 1000 52 | FloeLess.c_alpha = poly2new; 53 | FloeLess.h = FloeLess.mass/(rho_ice*Atot); 54 | end 55 | end 56 | end 57 | 58 | FloeLess.inertia_moment = PolygonMoments(FloeLess.c_alpha',FloeLess.h); 59 | FloeLess.rmax = max(sqrt(FloeLess.c_alpha(1,:).^2+FloeLess.c_alpha(2,:).^2)); 60 | FloeLess.X = FloeLess.rmax*(2*rand(1000,1) - 1); 61 | FloeLess.Y = FloeLess.rmax*(2*rand(1000,1) - 1); 62 | FloeLess.A = inpolygon(FloeLess.X,FloeLess.Y,FloeLess.c_alpha(1,:),FloeLess.c_alpha(2,:)); 63 | FloeNEW = [FloeNEW FloeLess]; 64 | end 65 | else 66 | FloeNEW = Floe2; 67 | FloeNEW.alive = 0; 68 | end 69 | 70 | end 71 | 72 | -------------------------------------------------------------------------------- /calc_collisionNum.m: -------------------------------------------------------------------------------- 1 | function numInter = calc_collisionNum(Floe) 2 | 3 | numInter=cat(1,Floe.interactions); 4 | if ~isempty(numInter) 5 | 6 | numInter=size(numInter(numInter(:,1)0, display(['Sacked floes: ' num2str(sacked_floes)]); end 51 | 52 | 53 | end 54 | -------------------------------------------------------------------------------- /plotting/plot_basic.m: -------------------------------------------------------------------------------- 1 | function [fig] =plot_basic(fig, Time,Floe,ocean,c2_boundary_poly,Nb,PERIODIC) 2 | %This function creates plots of the floe state showing the stress and and 3 | %thickness of the floes 4 | Lx= max(c2_boundary_poly.Vertices(:,1)); %c2 must be symmetric around x=0 for channel boundary conditions. 5 | Ly= max(c2_boundary_poly.Vertices(:,2)); 6 | live = cat(1,Floe.alive); 7 | Floe(live == 0) = []; 8 | 9 | N0=length(Floe); 10 | if PERIODIC 11 | 12 | ghostFloeX=[]; 13 | ghostFloeY=[]; 14 | parent=[]; 15 | translation = []; 16 | 17 | x=cat(1,Floe.Xi); 18 | y=cat(1,Floe.Yi); 19 | alive=cat(1,Floe.alive); 20 | 21 | for i=1:length(Floe) 22 | poly = polyshape(Floe(i).c_alpha'+[x(i) y(i)]); 23 | % if alive(i) && (x(i)>Lx-rmax(i)) || (x(i)<-Lx+rmax(i)) 24 | if alive(i) && (max(abs(poly.Vertices(:,1)))>Lx) 25 | 26 | ghostFloeX=[ghostFloeX Floe(i)]; 27 | ghostFloeX(end).Xi=Floe(i).Xi-2*Lx*sign(x(i)); 28 | parent=[parent i]; 29 | translation = [translation; -2*Lx*sign(x(i)) 0]; 30 | 31 | end 32 | 33 | 34 | end 35 | 36 | Floe=[Floe ghostFloeX]; 37 | 38 | x=cat(1,Floe.Xi); 39 | y=cat(1,Floe.Yi); 40 | alive=cat(1,Floe.alive); 41 | 42 | for i=1:length(Floe) 43 | poly = polyshape(Floe(i).c_alpha'+[x(i) y(i)]); 44 | % if alive(i) && (x(i)>Lx-rmax(i)) || (x(i)<-Lx+rmax(i)) 45 | if alive(i) && (max(abs(poly.Vertices(:,2)))>Ly) 46 | 47 | ghostFloeY=[ghostFloeY Floe(i)]; 48 | ghostFloeY(end).Yi=Floe(i).Yi-2*Ly*sign(y(i)); 49 | parent=[parent i]; 50 | translation = [translation; 0 -2*Ly*sign(y(i))]; 51 | 52 | end 53 | 54 | end 55 | 56 | Floe=[Floe ghostFloeY]; 57 | 58 | end 59 | 60 | %Find length of new Floe variable including the ghost floes 61 | N=length(Floe); 62 | 63 | %% Set Up The Plots 64 | 65 | ratio=max(ocean.Yo)/max(ocean.Xo); 66 | if (fig==0 || ~isvalid(fig)) 67 | fig=figure('Position',[100 100 1000 1000*ratio],'visible','on'); 68 | set(fig,'PaperSize',12*[1 ratio],'PaperPosition',12*[0 0 1 ratio]); 69 | end 70 | figure(fig) 71 | clf(fig); 72 | 73 | dn=1; % plot every dn'th velocity vector 74 | quiver(ocean.Xo(1:dn:end),ocean.Yo(1:dn:end),ocean.Uocn(1:dn:end,1:dn:end),ocean.Vocn(1:dn:end,1:dn:end)); 75 | hold on; 76 | 77 | axis([ocean.Xo(1) ocean.Xo(end) ocean.Yo(1) ocean.Yo(end)]); 78 | 79 | colormap('gray'); caxis([0 1]); 80 | 81 | %title(['Time = ' num2str(Time/3600) ' h'],'fontsize',36); 82 | for ii =1:length(Floe) 83 | Floe(ii).poly = polyshape(Floe(ii).c_alpha'+[Floe(ii).Xi Floe(ii).Yi]); 84 | end 85 | xi = cat(1,Floe.Xi); yi = cat(1,Floe.Yi); Ui = cat(1,Floe.Ui); Vi = cat(1,Floe.Vi); 86 | %quiver(xi,yi,Ui, Vi,'linewidth',2) 87 | 88 | grid 89 | ax = gca; 90 | ax.GridAlpha = 0.5; 91 | 92 | %% Plot the Floes and Ghost Floes 93 | plot([Floe(1:N0).poly],'FaceColor','k','FaceAlpha',0.3,'EdgeColor',[1 1 1]*0.2); 94 | if PERIODIC && N > N0 95 | plot([Floe(N0+1:N).poly],'FaceColor','k','FaceAlpha',0.5,'EdgeColor',[1 1 1]*0.2); 96 | end 97 | if Nb > 0 98 | plot([Floe(1:Nb).poly],'FaceColor','k','FaceAlpha',0.3,'EdgeColor',[1 1 1]*0.2); 99 | end 100 | % if ~isempty(Floe(1).interactions) 101 | % cx = Floe(1).interactions(4); cy = Floe(1).interactions(5); 102 | % load F_dir 103 | % quiver(cx,cy,force_dir(1), force_dir(2),'autoscalefactor',500,'linewidth',2) 104 | % end 105 | % xx = 1; xx(1) =[1 2]; 106 | set(0,'CurrentFigure',fig); 107 | xb=c2_boundary_poly.Vertices(:,1); xb(end+1)=xb(1); 108 | yb=c2_boundary_poly.Vertices(:,2); yb(end+1)=yb(1); 109 | plot(xb,yb, 'k-','linewidth',2); 110 | 111 | colormap('gray'); caxis([0 1]); 112 | axis([-Lx-Lx/10 Lx+Lx/10 -Ly-Ly/10 Ly+Ly/10]) 113 | axis([-100000 100000 -100000 100000]) 114 | %xlabel('m');ylabel('m'); 115 | set(gca,'Ydir','normal'); 116 | % set(gca,'xtick',[]) 117 | % set(gca,'ytick',[]) 118 | 119 | % drawnow 120 | end 121 | -------------------------------------------------------------------------------- /plotting/plot_basic_stress.m: -------------------------------------------------------------------------------- 1 | function [fig] =plot_basic_stress(fig, Time,Floe,ocean,c2_boundary_poly,Nb) 2 | %This function creates plots of the floe state showing the stress and and 3 | %thickness of the floes 4 | id ='MATLAB:polyshape:repairedBySimplify'; 5 | warning('off',id) 6 | id3 ='MATLAB:polyshape:boundary3Points'; 7 | warning('off',id3) 8 | Lx= max(c2_boundary_poly.Vertices(:,1)); %c2 must be symmetric around x=0 for channel boundary conditions. 9 | Ly= max(c2_boundary_poly.Vertices(:,2)); 10 | live = cat(1,Floe.alive); 11 | Floe(live == 0) = []; 12 | 13 | %% Set Up The Plots 14 | 15 | ratio=max(ocean.Yo)/max(ocean.Xo); 16 | if (fig==0 || ~isvalid(fig)) 17 | fig=figure('Position',[100 100 1000 1000*ratio],'visible','on'); 18 | set(fig,'PaperSize',12*[1 ratio],'PaperPosition',12*[0 0 1 ratio]); 19 | end 20 | figure(fig) 21 | clf(fig); 22 | 23 | dn=1; % plot every dn'th velocity vector 24 | quiver(ocean.Xo(1:dn:end),ocean.Yo(1:dn:end),ocean.Uocn(1:dn:end,1:dn:end),ocean.Vocn(1:dn:end,1:dn:end)); 25 | hold on; 26 | 27 | axis([ocean.Xo(1) ocean.Xo(end) ocean.Yo(1) ocean.Yo(end)]); 28 | 29 | colormap('gray'); caxis([0 1]); 30 | 31 | title(['Time = ' num2str(Time/3600) ' hours'],'fontsize',24); 32 | for ii =1:length(Floe) 33 | Floe(ii).poly = polyshape(Floe(ii).c_alpha'+[Floe(ii).Xi Floe(ii).Yi]); 34 | Stress(ii) = Floe(ii).Stress(1);%max(eig(Floe(ii).Stress)); 35 | Stress(ii) = Floe(ii).OverlapArea; 36 | StressF = eig(Floe(ii).Stress); 37 | Princ1F(ii) = max(StressF); 38 | end 39 | % Stress = cat(1,Floe.MaxShear); 40 | 41 | %% Plot the Floes and Ghost Floes 42 | Shear = abs(Princ1F); 43 | %[~,TF] = rmoutliers(Shear); 44 | %Shear(TF) = max(Shear(~TF)); 45 | %if max(Shear) == min(Shear) 46 | C2 = Shear/1.2e4;%max(Shear); 47 | C2(C2>1)=1; 48 | %else 49 | % C2 = (Shear-min(Shear))/(max(Shear)-min(Shear)); 50 | %end 51 | if max(Shear)>0 52 | for i = 1:length(Floe) 53 | plot(Floe(i).poly,'FaceColor',[1 0 0]*C2(i),'EdgeColor',[1 1 1]*0.2); 54 | % plot(Floe(i).poly,'FaceColor',[1 0 0]*Stress(i)/max(Stress),'EdgeColor',[1 1 1]*0.2); 55 | end 56 | else 57 | plot([Floe.poly],'FaceColor','r','FaceAlpha',0.3,'EdgeColor',[1 1 1]*0.2); 58 | end 59 | if Nb > 0 60 | plot([Floe(1:Nb).poly],'FaceColor','k','FaceAlpha',0.3,'EdgeColor',[1 1 1]*0.2); 61 | end 62 | 63 | set(0,'CurrentFigure',fig); 64 | xb=c2_boundary_poly.Vertices(:,1); xb(end+1)=xb(1); 65 | yb=c2_boundary_poly.Vertices(:,2); yb(end+1)=yb(1); 66 | plot(xb,yb, 'k-','linewidth',2); 67 | 68 | 69 | colormap('gray'); caxis([0 1]); 70 | axis([-Lx-Lx/10 Lx+Lx/10 -Ly-Ly/10 Ly+Ly/10]) 71 | %axis([-2e5 2e5 -Ly-Ly/10 Ly+Ly/10]) 72 | %xlabel('m');ylabel('m'); 73 | set(gca,'Ydir','normal'); 74 | % set(gca,'xtick',[]) 75 | % set(gca,'ytick',[]) 76 | 77 | drawnow 78 | 79 | warning('on',id) 80 | warning('on',id3) 81 | end -------------------------------------------------------------------------------- /polyclip.m: -------------------------------------------------------------------------------- 1 | function [X,Y] = polyclip(x1,y1,x2,y2,method) 2 | % POLYCLIP Clip two polygons (intersect, union, xor, diff). 3 | % 4 | % [X,Y] = POLYCLIP(X1,Y1,X2,Y2,METHOD) clips the two polygons given by the 5 | % points (X1(i),Y1(i)) and (X2(j),Y2(j)) according to the METHOD: 6 | % METHOD = 0 or 'dif' ==> difference (P1-P2) 7 | % METHOD = 1 or 'int' ==> intersection 8 | % METHOD = 2 or 'xor' ==> Xor 9 | % METHOD = 3 or 'uni' ==> Union 10 | % X and Y are cell arrays (because the result may be multiple polygons) 11 | % containing the x and y coordinates of the resulting polygon(s). 12 | % 13 | % XY = POLYCLIP([X1 Y1],[X2 Y2],METHOD) does the same assuming the Xi and Yi 14 | % are column vectors. The result is {X Y}. 15 | % 16 | % See also CLIPPER, POLYOUT. 17 | 18 | % Copyright (c)2015-17, Prof. Erik A. Johnson , 01/29/17 19 | 20 | % 09/13/15 EAJ Initial code 21 | % 01/28/17 EAJ Update for newer MATLAB versions 22 | % 01/29/17 EAJ Fix: test for METHOD as string, single output 23 | 24 | narginchk(2,5); 25 | if any(nargin==[2 4]), method=[]; end 26 | if any(nargin==[2 3]) % POLYCLIP([X1 Y1],[X2 Y2],METHOD) 27 | if size(x1,2)~=2 || size(y1,2)~=2 || ~isnumeric(x1) || ~isnumeric(y1), 28 | error('The [X1 Y1] and [X2 Y2] matrices must be numeric two-column matrices.'); 29 | end 30 | if nargin == 3 31 | method = x2; 32 | else 33 | method = []; 34 | end 35 | y2=y1(:,2); x2=y1(:,1); 36 | y1=x1(:,2); x1=x1(:,1); 37 | else 38 | if ~isnumeric(x1) || ~isnumeric(y1) || ~isnumeric(x2) || ~isnumeric(y2) 39 | error('The polygon coordinates must be numeric matrices.') 40 | elseif numel(x1)~=length(x1) || numel(y1)~=length(y1) || numel(x2)~=length(x2) || numel(y2)~=length(y2) 41 | error('Function only handles the clipping of one polygon with another, not multiple polygons with multiple polygons'); 42 | elseif numel(x1)~=numel(y1) || numel(x2)~=numel(y2) 43 | error('X1 must be the same size as Y1, and X2 the same size as Y2.'); 44 | end; 45 | if length(x1)==numel(x1), x1=x1(:); y1=y1(:); end; % ensure column 46 | if length(x2)==numel(x2), x2=x2(:); y2=y2(:); end; % ensure column 47 | if nargin == 4 48 | method = []; 49 | end 50 | end; 51 | if isempty(method), method=0; end 52 | if isstr(method) 53 | find(lower(method(1))==['dixu']) - 1; 54 | if isempty(ans) 55 | error('METHOD must be an integer (0 to 3) or {''diff'',''int'',''xor'',''union''}.'); 56 | end; 57 | method = ans; 58 | end 59 | if ~isscalar(method) || ~any(method==0:3) 60 | error('METHOD must be 0, 1, 2 or 3.') 61 | end; 62 | 63 | scale = 2^32; 64 | 65 | % leave this in array format just in case we later adapt this 66 | pack = @(p) arrayfun(@(x) struct('x', int64(x.x*scale),'y', int64(x.y*scale)),p); 67 | unpack = @(p) arrayfun(@(x) struct('x',double(x.x)/scale,'y',double(x.y)/scale),p); 68 | 69 | poly1 = struct('x',num2cell(x1,1),'y',num2cell(y1,1)); 70 | poly2 = struct('x',num2cell(x2,1),'y',num2cell(y2,1)); 71 | 72 | assert(numel(poly1)==1, 'Only single polygon clippings are allowed in the current code'); 73 | poly3 = unpack(clipper(pack(poly1),pack(poly2),method)); 74 | 75 | if isempty(poly3) 76 | x = cell(1,0); 77 | y = cell(1,0); 78 | else 79 | x = {poly3.x}; 80 | y = {poly3.y}; 81 | end 82 | 83 | % % package into single polygon with NaN's separating individual polygons 84 | % lens = cellfun(@numel,{poly3.x}'); 85 | % cellfun(@(x,l) [x;NaN(max(lens)-l,1)], {poly3.x}', num2cell(lens), 'UniformOutput',false); x=cat(2,ans{:}); 86 | % cellfun(@(y,l) [y;NaN(max(lens)-l,1)], {poly3.y}', num2cell(lens), 'UniformOutput',false); y=cat(2,ans{:}); 87 | 88 | if nargout>=2 89 | X = x; 90 | Y = y; 91 | else 92 | % X = cellfun(@(x,y) [x(:) y(:)],x,y,'UniformOutput',false); 93 | X = {x y}; 94 | end 95 | -------------------------------------------------------------------------------- /polygon_operations/MY_intersect.m: -------------------------------------------------------------------------------- 1 | function C = MY_intersect(A,B) 2 | 3 | if ~isempty(A)&&~isempty(B) 4 | P = zeros(1, max(max(A),max(B)) ) ; 5 | P(A) = 1; 6 | C = B(logical(P(B))); 7 | else 8 | C = []; 9 | end 10 | -------------------------------------------------------------------------------- /polygon_operations/MY_setdiff.m: -------------------------------------------------------------------------------- 1 | function Z = MY_setdiff(X,Y) 2 | 3 | if ~isempty(X)&&~isempty(Y) 4 | check = false(1, max(max(X), max(Y))); 5 | check(X) = true; 6 | check(Y) = false; 7 | Z = X(check(X)); 8 | else 9 | Z = X; 10 | end 11 | -------------------------------------------------------------------------------- /polygon_operations/PolygonMoments.m: -------------------------------------------------------------------------------- 1 | function Izz = PolygonMoments (xy,h) 2 | if nargin==0 3 | error('*** PolygonMoments: missing all arguments') 4 | elseif nargin==1 5 | mn=[]; 6 | PlotFlag=0; 7 | elseif nargin<=2 8 | PlotFlag=0; 9 | elseif nargin>3 10 | error('*** PolygonMoments: Number of arguments > 3') 11 | end 12 | if PlotFlag<0, NoIds=1;PlotFlag=abs(PlotFlag);else NoIds=0;end 13 | % 14 | rho_ice = 920; 15 | N=size(xy,1); 16 | x=xy(:,1); 17 | y=xy(:,2); 18 | % make sure the last point is the first too 19 | x=[x;x(1)]; 20 | y=[y;y(1)]; 21 | % Compute common values and Area Centroid (AC) always 22 | wi=x(1:N).*y(2:N+1)-x(2:N+1).*y(1:N); 23 | % area of the polygon 24 | Polygon.Area=0.5*sum(wi); 25 | % area moments 26 | Polygon.MAx=1/6 *sum(wi.*(y(1:N) + y(2:N+1))); 27 | Polygon.MAy=1/6 *sum(wi.*(x(1:N) + x(2:N+1))); 28 | % Area moments of second degree (Inertia) 29 | Polygon.Ixx=1/12*sum(wi.*( (y(1:N)+y(2:N+1)).^2 - y(1:N).*y(2:N+1))); 30 | Polygon.Iyy=1/12*sum(wi.*( (x(1:N)+x(2:N+1)).^2 - x(1:N).*x(2:N+1))); 31 | Polygon.Ixy=1/24*sum(wi.*( (x(1:N)+x(2:N+1)).*(y(1:N)+y(2:N+1)) + x(1:N).*y(1:N) + x(2:N+1).*y(2:N+1) )); 32 | Izz=abs(Polygon.Ixx+Polygon.Iyy)*h*rho_ice; 33 | % Izz=abs(Polygon.Ixx+Polygon.Iyy)*rho_ice; 34 | % coordinates of the area centroid: 35 | % Polygon.ACx=Polygon.MAy/Polygon.Area; 36 | % Polygon.ACy=Polygon.MAx/Polygon.Area; 37 | % % area moments in the area centroid: 38 | % Polygon.IxxAC=Polygon.Ixx-Polygon.ACy^2*Polygon.Area; 39 | % Polygon.IyyAC=Polygon.Iyy-Polygon.ACx^2*Polygon.Area; 40 | % Polygon.IxyAC=Polygon.Ixy-Polygon.ACx*Polygon.ACy*Polygon.Area; 41 | % IzzAC=abs(Polygon.IxxAC+Polygon.IyyAC)*h*rho_ice; 42 | 43 | end -------------------------------------------------------------------------------- /polygon_operations/pbisec.m: -------------------------------------------------------------------------------- 1 | % The function finds perpendicular bisector between two points in 2D/3D 2 | % Hyongju Park / hyongju@gmail.com 3 | % input: two points in 2D/3D 4 | % output: inequality Ax <= b 5 | 6 | function [A,b] = pbisec(x1, x2) 7 | 8 | middle_pnt = mean([x1;x2],1); 9 | n_vec = (x2 - x1) / norm(x2 - x1); 10 | Ad = n_vec; 11 | bd = dot(n_vec,middle_pnt); 12 | 13 | if Ad * x1' <= bd 14 | A = Ad; 15 | b = bd; 16 | else 17 | A = -Ad; 18 | b = -bd; 19 | end 20 | -------------------------------------------------------------------------------- /polygon_operations/polybnd_voronoi.m: -------------------------------------------------------------------------------- 1 | function [vornb,vorvx,Aaug,baug,worked] = polybnd_voronoi(pos,bnd_pnts) 2 | % ------------------------------------------------------------------------- 3 | % ------------------------------------------------------------------------- 4 | % [Voronoi neighbor,Voronoi vertices] = voronoi_3d(points, boundary) 5 | % Given n points a bounded space in R^2/R^3, this function calculates 6 | % Voronoi neighbor/polygons associated with each point (as a generator). 7 | % ========================================================================= 8 | % INPUTS: 9 | % pos points that are in the boundary n x d matrix (n: number of points d: dimension) 10 | % bnd_pnts points that defines the boundary m x d matrix (m: number of vertices for the convex polytope 11 | % boundary d: dimension) 12 | % ------------------------------------------------------------------------- 13 | % OUTPUTS: 14 | % vornb Voronoi neighbors for each generator point: n x 1 cells 15 | % vorvx Voronoi vertices for each generator point: n x 1 cells 16 | % ========================================================================= 17 | % This functions works for d = 2, 3 18 | % ------------------------------------------------------------------------- 19 | % This function requires: 20 | % vert2lcon.m (Matt Jacobson / Michael Keder) 21 | % pbisec.m (by me) 22 | % con2vert.m (Michael Keder) 23 | % ------------------------------------------------------------------------- 24 | % Written by Hyongju Park, hyongju@gmail.com / park334@illinois.edu 25 | worked = 0; 26 | 27 | K = convhull(bnd_pnts); 28 | bnd_pnts = bnd_pnts(K,:); 29 | 30 | [Abnd,bbnd] = vert2lcon(bnd_pnts); 31 | % obtain inequality constraints for convex polytope boundary 32 | % vert2lcon.m by Matt Jacobson that is an extension of the 'vert2con' by 33 | % Michael Keder 34 | 35 | % find Voronoi neighbors using Delaunay triangulation 36 | switch size(pos,2) 37 | case 2 38 | TRI = delaunay(pos(:,1),pos(:,2)); 39 | case 3 40 | TRI = delaunay(pos(:,1),pos(:,2),pos(:,3)); 41 | end 42 | 43 | for i = 1:size(pos,1) 44 | k = 0; 45 | for j = 1:size(TRI,1) 46 | if ~isempty(MY_intersect(i,TRI(j,:))) 47 | k = k + 1; 48 | neib2{i}(k,:) = MY_setdiff(TRI(j,:),i); 49 | end 50 | end 51 | neib3{i} = unique(neib2{i}); 52 | if size(neib3{i},1) == 1 53 | vornb{i} = neib3{i}; 54 | else 55 | vornb{i} = neib3{i}'; 56 | end 57 | end 58 | % obtain perpendicular bisectors 59 | for i = 1:size(pos,1) 60 | k = 0; 61 | for j = 1:size(vornb{i},2) 62 | k = k + 1; 63 | [A{i}(k,:),b{i}(k,:)] = pbisec(pos(i,:), pos(vornb{i}(j),:)); 64 | end 65 | end 66 | % obtain MY_intersection between bisectors + boundary 67 | 68 | for i = 1:size(pos,1) 69 | Aaug{i} = [A{i};Abnd]; 70 | baug{i} = [b{i};bbnd]; 71 | end 72 | 73 | % convert set of inequality constraints to the set of vertices at the 74 | % intersection of those inequalities used 'con2vert.m' by Michael Kleder 75 | for i =1:size(pos,1) 76 | V{i}= MY_con2vert(Aaug{i},baug{i}); 77 | 78 | if length(V{i}) > 2 79 | try ID{i} = convhull(V{i}); 80 | catch ID{i} = convhull(V{i}); 81 | end 82 | vorvx{i} = V{i}(ID{i},:); 83 | else 84 | vorvx{i} = nan; 85 | worked = 1; 86 | end 87 | end 88 | -------------------------------------------------------------------------------- /private/Makefile: -------------------------------------------------------------------------------- 1 | # Change the next line to the MATLAB application 2 | MATLAB=/Applications/MATLAB_R2016b.app 3 | 4 | # Change the next line to the clipper directory (e.g., "clipper", "clipper_ver6", etc.) 5 | CLIPPER_DIR=clipper 6 | 7 | 8 | 9 | MEX=$(MATLAB)/bin/mex 10 | FLAGS=-D__int64=__int64_t 11 | # OLDFLAGS=-Dchar16_t=uint16_t -D__int64=__int64_t 12 | 13 | clipper.mexmaci64: clipper.cpp clipper.hpp mexclipper.cpp 14 | $(MEX) $(FLAGS) clipper.cpp mexclipper.cpp 15 | 16 | clipper.cpp: $(CLIPPER_DIR)/cpp/clipper.cpp 17 | cp $(CLIPPER_DIR)/cpp/clipper.cpp . 18 | 19 | clipper.hpp: $(CLIPPER_DIR)/cpp/clipper.hpp 20 | cp $(CLIPPER_DIR)/cpp/clipper.hpp . 21 | -------------------------------------------------------------------------------- /private/clipper.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper.cpp -------------------------------------------------------------------------------- /private/clipper.m: -------------------------------------------------------------------------------- 1 | function out = clipper(RefPol, ClipPol, Method, RefF, ClipF) 2 | % CLIPPER Intersect polygons or outset/inset a polygon 3 | % 4 | % NOTE: CLIPPER (and it's MEX version) should generally not be called directly. 5 | % Instead, use the simpler MATLAB interfaces in the functions: 6 | % POLYCLIP 7 | % POLYOUT 8 | % 9 | % ----------------------------------------------------------------------------- 10 | % 11 | % P = CLIPPER(P1,P2,METHOD,FILL1,FILL2) clips polygons according to the METHOD 12 | % METHOD = 0 ==> difference (P1-P2) 13 | % METHOD = 1 ==> intersection 14 | % METHOD = 2 ==> Xor 15 | % METHOD = 3 ==> Union 16 | % The polygons are structures with .x and .y fields. FILL1 & FILL2 are 17 | % optional fill types: 18 | % 0 ==> Even-Odd (default) 19 | % 1 ==> Non-Zero 20 | % 2 ==> Positive 21 | % 3 ==> Negative 22 | % 23 | % P = CLIPPER(P1, DELTA, MITERTYPE, MITERINFO) outsets polygon P1 by the 24 | % distance DELTA (negative = inset). The MITERTYPE is a character string: 25 | % 's' or 'square' ==> square off corners 26 | % MITERINFO is ignored. 27 | % 'r' or 'round' ==> round corners 28 | % Required MITERINFO is precision for points along arc 29 | % (pi/acos(1-MITERINFO/DELTA) = # of points in 180deg), 30 | % using the same scaling as the polygon points. 31 | % 'm' or 'miter' ==> miter corners (default) 32 | % Optional MITERINFO is the miter limit, a multiple of DELTA; 33 | % if the corner point would be moved more than 34 | % MITERINFO*DELTA, then it is squared off instead; 35 | % otherwise, the corner is done exactly. 36 | % The default value of MITERINFO is 2; 37 | % values below 2 are ignored. 38 | % P1 must be a single polygon (i.e., a scalar structure with fields .x and .y). 39 | % MITERINFO must be a scalar double. 40 | % 41 | % CW = CLIPPER(P) returns whether the polygon(s) are clockwise oriented. 42 | % P may be a vector of polygons (each element with .x and .y fields. 43 | % 44 | % Note: polygon coordinates MUST be of type int64. Typically, real-valued 45 | % polygon coordinates are multiplied by some scalar (e.g., 2^32) and converted 46 | % to int64 before passing to clipper(); return polygon coordinates must have 47 | % the reverse mapping performed. 48 | % 49 | % This help text written by Prof. Erik A Johnson , 9/13/2015 & 1/28/2017 50 | % 51 | % This Mex function is a re-write by Prof. Erik Johnson of a mex wrapper originally written by Emmett 52 | % (http://www.mathworks.com/matlabcentral/fileexchange/36241-polygon-clipping-and-offsetting) 53 | % which was based on Sebastian Hölz's Polygon Clipper mex wrapper for the GPC library 54 | % (https://www.mathworks.com/matlabcentral/fileexchange/8818-polygon-clipper) 55 | % 56 | % The Mex function calls a Polygon Clipping Routine based on Angus Johnson's clipper 57 | % (https://sourceforge.net/projects/polyclipping/) 58 | % 59 | % See also POLYCLIP, POLYOUT (all of which are simpler interfaces than CLIPPER) 60 | 61 | error('must use the MEX version'); 62 | -------------------------------------------------------------------------------- /private/clipper.mexa64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper.mexa64 -------------------------------------------------------------------------------- /private/clipper.mexmaci64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper.mexmaci64 -------------------------------------------------------------------------------- /private/clipper_test.m: -------------------------------------------------------------------------------- 1 | clear 2 | p1.x=[0 1 1 0]'; p1.y=[0 0 1 1]'; 3 | p2.x=p1.x+.5; p2.y=p1.y+.5; 4 | 5 | scale=2^32; 6 | pack = @(p) arrayfun(@(x) struct('x', int64(x.x*scale),'y', int64(x.y*scale)),p); 7 | unpack = @(p) arrayfun(@(x) struct('x',double(x.x)/scale,'y',double(x.y)/scale),p); 8 | packdelta = @(d) d*scale; 9 | packarc = packdelta; 10 | packmiter = @(m) m; 11 | 12 | p = unpack(clipper(pack(p1),pack(p2),1)); 13 | 14 | disp([p1.x p1.y p2.x p2.y p.x p.y]); 15 | 16 | 17 | p1(2,1)=p1; p2(2,1)=p2; 18 | p = clipper(pack(p1),pack(p2),1) 19 | if numel(p)~=numel(p1), disp('as expected clipper did not properly handle simultaneous multiple polygon clippings'); else, warn('Contrary to expectation, clipper DID handle multiple simultaneous polygon clippings'); end; 20 | 21 | ps = unpack(clipper(pack(p1(1)),packdelta(.05),'s')); 22 | 23 | try 24 | P = unpack(clipper(pack(p1 ),packdelta(.05),'s')) 25 | warn('unexpectedly, clipper (outset mode) took a two-element input polygon') 26 | catch 27 | disp('as expected, clipper (outset mode) barfed on a two-element input polygon') 28 | end 29 | 30 | try 31 | pr = unpack(clipper(pack(p1(1)),packdelta(.05),'r')); 32 | warn('unexpectedly, clipper (outset mode) took a ''round'' join without an arcTolerance') 33 | catch 34 | disp('as expected, clipper (outset mode) refused to do a ''round'' join without an arcTolerance') 35 | end 36 | pm = unpack(clipper(pack(p1(1)),packdelta(.05),'m')); 37 | 38 | figure(1); 39 | patch(p1(1).x,p1(1).y,'k','FaceColor','None'); 40 | patch(ps.x,ps.y,'r','FaceColor','None'); 41 | if exist('pr','var'), patch(pr.x,pr.y,'g--','FaceColor','None'); end; 42 | patch(pm.x,pm.y,'b-.','FaceColor','None'); 43 | axis equal 44 | 45 | 46 | figure(2); 47 | clf 48 | clear p; p.x=[0 1 1]'; p.y=[0 0 .5]'; 49 | patch(p.x,p.y,'k','FaceColor','None'); 50 | axis equal 51 | 52 | pp=unpack(clipper(pack(p),packdelta(.05),'m',packmiter(1))); 53 | patch(pp.x,pp.y,'r','FaceColor','none','EdgeColor','r'); 54 | 55 | pm = unpack(clipper(pack(p),packdelta(.05),'m')); 56 | pr2 = unpack(clipper(pack(p),packdelta(.05),'r',packarc(.001))); 57 | pr3 = unpack(clipper(pack(p),packdelta(.05),'r',packarc(.00001))); 58 | pm1 = unpack(clipper(pack(p),packdelta(.05),'m',packmiter(1))); 59 | pm2 = unpack(clipper(pack(p),packdelta(.05),'m',packmiter(2))); 60 | pm05 = unpack(clipper(pack(p),packdelta(.05),'m',packmiter(0.5))); 61 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/C#/ConsoleDemo/ConsoleDemo.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 11.00 3 | # Visual C# Express 2010 4 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConsoleDemo", "ConsoleDemo\ConsoleDemo.csproj", "{185E6664-6A68-4377-99BE-4D4BFED19298}" 5 | ProjectSection(ProjectDependencies) = postProject 6 | {9B062971-A88E-4A3D-B3C9-12B78D15FA66} = {9B062971-A88E-4A3D-B3C9-12B78D15FA66} 7 | EndProjectSection 8 | EndProject 9 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "clipper_library", "..\clipper_library\clipper_library.csproj", "{9B062971-A88E-4A3D-B3C9-12B78D15FA66}" 10 | EndProject 11 | Global 12 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 13 | Debug|Any CPU = Debug|Any CPU 14 | Debug|Mixed Platforms = Debug|Mixed Platforms 15 | Debug|x86 = Debug|x86 16 | Release|Any CPU = Release|Any CPU 17 | Release|Mixed Platforms = Release|Mixed Platforms 18 | Release|x86 = Release|x86 19 | EndGlobalSection 20 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 21 | {185E6664-6A68-4377-99BE-4D4BFED19298}.Debug|Any CPU.ActiveCfg = Debug|x86 22 | {185E6664-6A68-4377-99BE-4D4BFED19298}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 23 | {185E6664-6A68-4377-99BE-4D4BFED19298}.Debug|Mixed Platforms.Build.0 = Debug|x86 24 | {185E6664-6A68-4377-99BE-4D4BFED19298}.Debug|x86.ActiveCfg = Debug|x86 25 | {185E6664-6A68-4377-99BE-4D4BFED19298}.Debug|x86.Build.0 = Debug|x86 26 | {185E6664-6A68-4377-99BE-4D4BFED19298}.Release|Any CPU.ActiveCfg = Release|x86 27 | {185E6664-6A68-4377-99BE-4D4BFED19298}.Release|Mixed Platforms.ActiveCfg = Release|x86 28 | {185E6664-6A68-4377-99BE-4D4BFED19298}.Release|Mixed Platforms.Build.0 = Release|x86 29 | {185E6664-6A68-4377-99BE-4D4BFED19298}.Release|x86.ActiveCfg = Release|x86 30 | {185E6664-6A68-4377-99BE-4D4BFED19298}.Release|x86.Build.0 = Release|x86 31 | {9B062971-A88E-4A3D-B3C9-12B78D15FA66}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 32 | {9B062971-A88E-4A3D-B3C9-12B78D15FA66}.Debug|Any CPU.Build.0 = Debug|Any CPU 33 | {9B062971-A88E-4A3D-B3C9-12B78D15FA66}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU 34 | {9B062971-A88E-4A3D-B3C9-12B78D15FA66}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU 35 | {9B062971-A88E-4A3D-B3C9-12B78D15FA66}.Debug|x86.ActiveCfg = Debug|Any CPU 36 | {9B062971-A88E-4A3D-B3C9-12B78D15FA66}.Release|Any CPU.ActiveCfg = Release|Any CPU 37 | {9B062971-A88E-4A3D-B3C9-12B78D15FA66}.Release|Any CPU.Build.0 = Release|Any CPU 38 | {9B062971-A88E-4A3D-B3C9-12B78D15FA66}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU 39 | {9B062971-A88E-4A3D-B3C9-12B78D15FA66}.Release|Mixed Platforms.Build.0 = Release|Any CPU 40 | {9B062971-A88E-4A3D-B3C9-12B78D15FA66}.Release|x86.ActiveCfg = Release|Any CPU 41 | EndGlobalSection 42 | GlobalSection(SolutionProperties) = preSolution 43 | HideSolutionNode = FALSE 44 | EndGlobalSection 45 | EndGlobal 46 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/C#/ConsoleDemo/ConsoleDemo/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("ClipperTest1")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("Angus Johnson")] 12 | [assembly: AssemblyProduct("ClipperTest1")] 13 | [assembly: AssemblyCopyright("Copyright © Angus Johnson 2010-14")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("a8009709-1ebc-44a6-a094-298ec0b23d42")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/C#/ConsoleDemo/ConsoleDemo/bin/Release/ConsoleDemo.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/C#/ConsoleDemo/ConsoleDemo/bin/Release/ConsoleDemo.exe -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/C#/ConsoleDemo/ConsoleDemo/bin/Release/clip.txt: -------------------------------------------------------------------------------- 1 | 1 2 | 4 3 | 120, 10, 4 | 240, 10, 5 | 240, 90, 6 | 120, 90 -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/C#/ConsoleDemo/ConsoleDemo/bin/Release/clipper_library.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/C#/ConsoleDemo/ConsoleDemo/bin/Release/clipper_library.dll -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/C#/ConsoleDemo/ConsoleDemo/bin/Release/subj.txt: -------------------------------------------------------------------------------- 1 | 1 2 | 11 3 | 0, 0, 4 | 200, 0, 5 | 200, 100, 6 | 50, 100, 7 | 50, 50, 8 | 75, 75, 9 | 100, 50, 10 | 75, 25, 11 | 50, 50, 12 | 50, 100, 13 | 0, 100, 14 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/C#/GuiDemo/GuiDemo.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 11.00 3 | # Visual C# Express 2010 4 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GuiDemo", "GuiDemo\GuiDemo.csproj", "{8BD44147-3290-4A73-BAA2-1C171566BC25}" 5 | ProjectSection(ProjectDependencies) = postProject 6 | {9B062971-A88E-4A3D-B3C9-12B78D15FA66} = {9B062971-A88E-4A3D-B3C9-12B78D15FA66} 7 | EndProjectSection 8 | EndProject 9 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "clipper_library", "..\clipper_library\clipper_library.csproj", "{9B062971-A88E-4A3D-B3C9-12B78D15FA66}" 10 | EndProject 11 | Global 12 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 13 | Debug|Any CPU = Debug|Any CPU 14 | Debug|Mixed Platforms = Debug|Mixed Platforms 15 | Debug|x86 = Debug|x86 16 | Release|Any CPU = Release|Any CPU 17 | Release|Mixed Platforms = Release|Mixed Platforms 18 | Release|x86 = Release|x86 19 | EndGlobalSection 20 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 21 | {8BD44147-3290-4A73-BAA2-1C171566BC25}.Debug|Any CPU.ActiveCfg = Debug|x86 22 | {8BD44147-3290-4A73-BAA2-1C171566BC25}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 23 | {8BD44147-3290-4A73-BAA2-1C171566BC25}.Debug|Mixed Platforms.Build.0 = Debug|x86 24 | {8BD44147-3290-4A73-BAA2-1C171566BC25}.Debug|x86.ActiveCfg = Debug|x86 25 | {8BD44147-3290-4A73-BAA2-1C171566BC25}.Debug|x86.Build.0 = Debug|x86 26 | {8BD44147-3290-4A73-BAA2-1C171566BC25}.Release|Any CPU.ActiveCfg = Release|x86 27 | {8BD44147-3290-4A73-BAA2-1C171566BC25}.Release|Mixed Platforms.ActiveCfg = Release|x86 28 | {8BD44147-3290-4A73-BAA2-1C171566BC25}.Release|Mixed Platforms.Build.0 = Release|x86 29 | {8BD44147-3290-4A73-BAA2-1C171566BC25}.Release|x86.ActiveCfg = Release|x86 30 | {8BD44147-3290-4A73-BAA2-1C171566BC25}.Release|x86.Build.0 = Release|x86 31 | {9B062971-A88E-4A3D-B3C9-12B78D15FA66}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 32 | {9B062971-A88E-4A3D-B3C9-12B78D15FA66}.Debug|Any CPU.Build.0 = Debug|Any CPU 33 | {9B062971-A88E-4A3D-B3C9-12B78D15FA66}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU 34 | {9B062971-A88E-4A3D-B3C9-12B78D15FA66}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU 35 | {9B062971-A88E-4A3D-B3C9-12B78D15FA66}.Debug|x86.ActiveCfg = Debug|Any CPU 36 | {9B062971-A88E-4A3D-B3C9-12B78D15FA66}.Release|Any CPU.ActiveCfg = Release|Any CPU 37 | {9B062971-A88E-4A3D-B3C9-12B78D15FA66}.Release|Any CPU.Build.0 = Release|Any CPU 38 | {9B062971-A88E-4A3D-B3C9-12B78D15FA66}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU 39 | {9B062971-A88E-4A3D-B3C9-12B78D15FA66}.Release|Mixed Platforms.Build.0 = Release|Any CPU 40 | {9B062971-A88E-4A3D-B3C9-12B78D15FA66}.Release|x86.ActiveCfg = Release|Any CPU 41 | EndGlobalSection 42 | GlobalSection(SolutionProperties) = preSolution 43 | HideSolutionNode = FALSE 44 | EndGlobalSection 45 | EndGlobal 46 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/C#/GuiDemo/GuiDemo/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Windows.Forms; 5 | 6 | namespace WindowsFormsApplication1 7 | { 8 | static class Program 9 | { 10 | /// 11 | /// The main entry point for the application. 12 | /// 13 | [STAThread] 14 | static void Main() 15 | { 16 | Application.EnableVisualStyles(); 17 | Application.SetCompatibleTextRenderingDefault(false); 18 | Application.Run(new Form1()); 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/C#/GuiDemo/GuiDemo/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("ClipperCSharpDemo1")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("Angus Johnson")] 12 | [assembly: AssemblyProduct("ClipperCSharpDemo1")] 13 | [assembly: AssemblyCopyright("Copyright © Angus Johnson 2010-14")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("7eac3b0b-6f6f-4b48-b26b-c7acb1f769f5")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/C#/GuiDemo/GuiDemo/Properties/Resources.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.235 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace GuiDemo.Properties { 12 | using System; 13 | 14 | 15 | /// 16 | /// A strongly-typed resource class, for looking up localized strings, etc. 17 | /// 18 | // This class was auto-generated by the StronglyTypedResourceBuilder 19 | // class via a tool like ResGen or Visual Studio. 20 | // To add or remove a member, edit your .ResX file then rerun ResGen 21 | // with the /str option, or rebuild your VS project. 22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] 23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 25 | internal class Resources { 26 | 27 | private static global::System.Resources.ResourceManager resourceMan; 28 | 29 | private static global::System.Globalization.CultureInfo resourceCulture; 30 | 31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] 32 | internal Resources() { 33 | } 34 | 35 | /// 36 | /// Returns the cached ResourceManager instance used by this class. 37 | /// 38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 39 | internal static global::System.Resources.ResourceManager ResourceManager { 40 | get { 41 | if (object.ReferenceEquals(resourceMan, null)) { 42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("GuiDemo.Properties.Resources", typeof(Resources).Assembly); 43 | resourceMan = temp; 44 | } 45 | return resourceMan; 46 | } 47 | } 48 | 49 | /// 50 | /// Overrides the current thread's CurrentUICulture property for all 51 | /// resource lookups using this strongly typed resource class. 52 | /// 53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 54 | internal static global::System.Globalization.CultureInfo Culture { 55 | get { 56 | return resourceCulture; 57 | } 58 | set { 59 | resourceCulture = value; 60 | } 61 | } 62 | 63 | internal static byte[] aust { 64 | get { 65 | object obj = ResourceManager.GetObject("aust", resourceCulture); 66 | return ((byte[])(obj)); 67 | } 68 | } 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/C#/GuiDemo/GuiDemo/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.235 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace GuiDemo.Properties { 12 | 13 | 14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")] 16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { 17 | 18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 19 | 20 | public static Settings Default { 21 | get { 22 | return defaultInstance; 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/C#/GuiDemo/GuiDemo/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/C#/GuiDemo/GuiDemo/Settings.cs: -------------------------------------------------------------------------------- 1 | namespace WindowsFormsApplication1.Properties { 2 | 3 | 4 | // This class allows you to handle specific events on the settings class: 5 | // The SettingChanging event is raised before a setting's value is changed. 6 | // The PropertyChanged event is raised after a setting's value is changed. 7 | // The SettingsLoaded event is raised after the setting values are loaded. 8 | // The SettingsSaving event is raised before the setting values are saved. 9 | internal sealed partial class Settings { 10 | 11 | public Settings() { 12 | // // To add event handlers for saving and changing settings, uncomment the lines below: 13 | // 14 | // this.SettingChanging += this.SettingChangingEventHandler; 15 | // 16 | // this.SettingsSaving += this.SettingsSavingEventHandler; 17 | // 18 | } 19 | 20 | private void SettingChangingEventHandler(object sender, System.Configuration.SettingChangingEventArgs e) { 21 | // Add code to handle the SettingChangingEvent event here. 22 | } 23 | 24 | private void SettingsSavingEventHandler(object sender, System.ComponentModel.CancelEventArgs e) { 25 | // Add code to handle the SettingsSaving event here. 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/C#/GuiDemo/GuiDemo/aust.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/C#/GuiDemo/GuiDemo/aust.bin -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/C#/GuiDemo/GuiDemo/bin/Release/GuiDemo.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/C#/GuiDemo/GuiDemo/bin/Release/GuiDemo.exe -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/C#/GuiDemo/GuiDemo/bin/Release/clipper_library.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/C#/GuiDemo/GuiDemo/bin/Release/clipper_library.dll -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/C#/clipper_library/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("clipper_library")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("Angus Johnson")] 12 | [assembly: AssemblyProduct("clipper_library")] 13 | [assembly: AssemblyCopyright("Copyright © Angus Johnson 2010-14")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("51a6bdca-bc4e-4b2c-ae69-36e2497204f2")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/C#/clipper_library/clipper_library.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Debug 5 | AnyCPU 6 | 8.0.30703 7 | 2.0 8 | {9B062971-A88E-4A3D-B3C9-12B78D15FA66} 9 | Library 10 | Properties 11 | ClipperLib 12 | clipper_library 13 | v4.0 14 | 512 15 | 16 | 17 | true 18 | full 19 | false 20 | bin\Debug\ 21 | DEBUG;TRACE 22 | prompt 23 | 4 24 | 25 | 26 | pdbonly 27 | true 28 | bin\Release\ 29 | TRACE 30 | prompt 31 | 4 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 54 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Delphi/cairo demo/Cairo Resources.txt: -------------------------------------------------------------------------------- 1 | http://cairographics.org/ 2 | 3 | The Windows dynamic linked libraries necessary to run Cairo can be downloaded from 4 | http://www.gtk.org/download/win32.php 5 | All the dlls listed under the heading "Required third party dependencies" are 6 | required except gettext-runtime.dll. 7 | 8 | A Delphi library that interfaces with the Cairo dlls is 9 | "Cairo Graphics Delphi Bindings" available at 10 | http://www.rodi.dk/programming_cairo.php 11 | Direct link to the download - 12 | http://www.rodi.dk/download1.php?cairo-delphi-bindings-1.0.zip 13 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Delphi/cairo demo/CairoClipperDemo1.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/Delphi/cairo demo/CairoClipperDemo1.res -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Delphi/clipper.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/Delphi/clipper.pas -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Delphi/main demo/clipper_demo.dpr: -------------------------------------------------------------------------------- 1 | program clipper_demo; 2 | 3 | uses 4 | Forms, 5 | main in 'main.pas' {MainForm}, 6 | GR32_Misc in 'GR32_Misc.pas', 7 | clipper in '..\clipper.pas'; 8 | 9 | {$R *.res} 10 | 11 | begin 12 | Application.Initialize; 13 | Application.CreateForm(TMainForm, MainForm); 14 | Application.Run; 15 | end. 16 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Delphi/main demo/clipper_demo.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/Delphi/main demo/clipper_demo.exe -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Delphi/main demo/clipper_demo.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/Delphi/main demo/clipper_demo.res -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Delphi/main demo/polygons.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/Delphi/main demo/polygons.res -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Images/_BranchEmpty.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/Documentation/Images/_BranchEmpty.gif -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Images/_BranchRight.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/Documentation/Images/_BranchRight.gif -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Images/_BranchVert.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/Documentation/Images/_BranchVert.gif -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Images/_BranchVertRight.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/Documentation/Images/_BranchVertRight.gif -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Images/_Class.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/Documentation/Images/_Class.gif -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Images/_Home.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/Documentation/Images/_Home.gif -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Images/_Project_Logo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/Documentation/Images/_Project_Logo.gif -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Images/_Unit.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/Documentation/Images/_Unit.gif -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Images/_buttons.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/Documentation/Images/_buttons.gif -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Images/clean1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/Documentation/Images/clean1.png -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Images/clean2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/Documentation/Images/clean2.png -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Images/clipper_rounding.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/Documentation/Images/clipper_rounding.png -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Images/clipper_rounding2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/Documentation/Images/clipper_rounding2.png -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Images/clipper_rounding3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/Documentation/Images/clipper_rounding3.png -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Images/clipper_rounding4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/Documentation/Images/clipper_rounding4.png -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Images/cliptype.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/Documentation/Images/cliptype.png -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Images/common_edges.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/Documentation/Images/common_edges.png -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Images/difference.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/Documentation/Images/difference.png -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Images/endtypes1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/Documentation/Images/endtypes1.png -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Images/endtypes2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/Documentation/Images/endtypes2.png -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Images/evenodd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/Documentation/Images/evenodd.png -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Images/int.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/Documentation/Images/int.png -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Images/intersection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/Documentation/Images/intersection.png -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Images/jointypes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/Documentation/Images/jointypes.png -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Images/kangaroo_small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/Documentation/Images/kangaroo_small.png -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Images/line_clipping.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/Documentation/Images/line_clipping.png -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Images/line_clipping2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/Documentation/Images/line_clipping2.png -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Images/linesdemo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/Documentation/Images/linesdemo.png -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Images/minkowski.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/Documentation/Images/minkowski.png -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Images/minkowski2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/Documentation/Images/minkowski2.png -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Images/miterlimit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/Documentation/Images/miterlimit.png -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Images/negative.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/Documentation/Images/negative.png -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Images/nonzero.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/Documentation/Images/nonzero.png -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Images/offset1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/Documentation/Images/offset1.png -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Images/orientation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/Documentation/Images/orientation.png -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Images/polytree.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/Documentation/Images/polytree.png -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Images/positive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/Documentation/Images/positive.png -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Images/sample1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/Documentation/Images/sample1.png -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Images/simplify.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/Documentation/Images/simplify.png -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Images/simplify2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/Documentation/Images/simplify2.png -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Images/simplify3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/Documentation/Images/simplify3.png -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Images/union.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/Documentation/Images/union.png -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Images/winding_number.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/Documentation/Images/winding_number.png -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Images/wn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/Documentation/Images/wn.png -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Images/xor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/Documentation/Images/xor.png -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Images/zfill.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/Documentation/Images/zfill.png -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Scripts/SyntaxHighlighter/compass/_theme_template.scss: -------------------------------------------------------------------------------- 1 | $background: white !default; 2 | 3 | $line_alt1_background: $background !default; 4 | $line_alt2_background: $background !default; 5 | 6 | $line_highlighted_background: #e0e0e0 !default; 7 | $line_highlighted_number: black !default; 8 | 9 | $gutter_text: #afafaf !default; 10 | $gutter_border_color: #6ce26c !default; 11 | $gutter_border: 3px solid $gutter_border_color !default; 12 | 13 | $toolbar_collapsed_a: #00f !default; 14 | $toolbar_collapsed_a_hover: #f00 !default; 15 | $toolbar_collapsed_background: #fff !default; 16 | $toolbar_collapsed_border: 1px solid $gutter_border_color !default; 17 | 18 | $toolbar_a: #fff !default; 19 | $toolbar_a_hover: #000 !default; 20 | $toolbar_background: $gutter_border_color !default; 21 | $toolbar_border: none !default; 22 | 23 | $code_plain: black !default; 24 | $code_comments: #008200 !default; 25 | $code_string: blue !default; 26 | $code_keyword: #006699 !default; 27 | $code_preprocessor: gray !default; 28 | $code_variable: #aa7700 !default; 29 | $code_value: #009900 !default; 30 | $code_functions: #ff1493 !default; 31 | $code_constants: #0066cc !default; 32 | $code_script: $code_keyword !default; 33 | $code_script_background: none !default; 34 | $code_color1: gray !default; 35 | $code_color2: #ff1493 !default; 36 | $code_color3: red !default; 37 | 38 | $caption_color: $code_plain !default; 39 | 40 | // Interface elements. 41 | .syntaxhighlighter { 42 | background-color: $background !important; 43 | 44 | // Highlighed line number 45 | .line { 46 | &.alt1 { background-color: $line_alt1_background !important; } 47 | &.alt2 { background-color: $line_alt2_background !important; } 48 | 49 | // Highlighed line 50 | &.highlighted { 51 | &.alt1, &.alt2 { background-color: $line_highlighted_background !important; } 52 | &.number { color: $line_highlighted_number !important; } 53 | } 54 | } 55 | 56 | table { 57 | caption { 58 | color: $caption_color !important; 59 | } 60 | } 61 | 62 | // Add border to the lines 63 | .gutter { 64 | color: $gutter_text !important; 65 | .line { 66 | border-right: $gutter_border !important; 67 | 68 | &.highlighted { 69 | background-color: $gutter_border_color !important; 70 | color: $background !important; 71 | } 72 | } 73 | } 74 | 75 | &.printing .line .content { border: none !important; } 76 | 77 | &.collapsed { 78 | overflow: visible !important; 79 | 80 | .toolbar { 81 | color: $toolbar_collapsed_a !important; 82 | background: $toolbar_collapsed_background !important; 83 | border: $toolbar_collapsed_border !important; 84 | 85 | a { 86 | color: $toolbar_collapsed_a !important; 87 | &:hover { color: $toolbar_collapsed_a_hover !important; } 88 | } 89 | } 90 | } 91 | 92 | .toolbar { 93 | color: $toolbar_a !important; 94 | background: $toolbar_background !important; 95 | border: $toolbar_border !important; 96 | a { 97 | color: $toolbar_a !important; 98 | &:hover { color: $toolbar_a_hover !important; } 99 | } 100 | } 101 | 102 | // Actual syntax highlighter colors. 103 | .plain, .plain a { color: $code_plain !important; } 104 | .comments, .comments a { color: $code_comments !important; } 105 | .string, .string a { color: $code_string !important; } 106 | .keyword { color: $code_keyword !important; } 107 | .preprocessor { color: $code_preprocessor !important; } 108 | .variable { color: $code_variable !important; } 109 | .value { color: $code_value !important; } 110 | .functions { color: $code_functions !important; } 111 | .constants { color: $code_constants !important; } 112 | .script { 113 | font-weight: bold !important; 114 | color: $code_script !important; 115 | background-color: $code_script_background !important; 116 | } 117 | .color1, .color1 a { color: $code_color1 !important; } 118 | .color2, .color2 a { color: $code_color2 !important; } 119 | .color3, .color3 a { color: $code_color3 !important; } 120 | } 121 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Scripts/SyntaxHighlighter/compass/config.rb: -------------------------------------------------------------------------------- 1 | environment = :production 2 | project_type = :stand_alone 3 | http_path = "/" 4 | css_dir = "../styles" 5 | sass_dir = "." 6 | images_dir = "images" 7 | sass_options = { 8 | :line_numbers => false, 9 | :debug_info => false 10 | } 11 | 12 | # output_style = :compressed 13 | # output_style = :compact 14 | output_style = :expanded 15 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Scripts/SyntaxHighlighter/compass/shCoreDefault.scss: -------------------------------------------------------------------------------- 1 | @import "shCore.scss"; 2 | @import "shThemeDefault.scss"; 3 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Scripts/SyntaxHighlighter/compass/shCoreDjango.scss: -------------------------------------------------------------------------------- 1 | @import "shCore.scss"; 2 | @import "shThemeDjango.scss"; 3 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Scripts/SyntaxHighlighter/compass/shCoreEclipse.scss: -------------------------------------------------------------------------------- 1 | @import "shCore.scss"; 2 | @import "shThemeEclipse.scss"; 3 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Scripts/SyntaxHighlighter/compass/shCoreEmacs.scss: -------------------------------------------------------------------------------- 1 | @import "shCore.scss"; 2 | @import "shThemeEmacs.scss"; 3 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Scripts/SyntaxHighlighter/compass/shCoreFadeToGrey.scss: -------------------------------------------------------------------------------- 1 | @import "shCore.scss"; 2 | @import "shThemeFadeToGrey.scss"; 3 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Scripts/SyntaxHighlighter/compass/shCoreMDUltra.scss: -------------------------------------------------------------------------------- 1 | @import "shCore.scss"; 2 | @import "shThemeMDUltra.scss"; 3 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Scripts/SyntaxHighlighter/compass/shCoreMidnight.scss: -------------------------------------------------------------------------------- 1 | @import "shCore.scss"; 2 | @import "shThemeMidnight.scss"; 3 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Scripts/SyntaxHighlighter/compass/shCoreRDark.scss: -------------------------------------------------------------------------------- 1 | @import "shCore.scss"; 2 | @import "shThemeRDark.scss"; 3 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Scripts/SyntaxHighlighter/compass/shThemeDefault.scss: -------------------------------------------------------------------------------- 1 | // Default Syntax Highlighter theme. 2 | 3 | @import "_theme_template.scss"; 4 | 5 | .syntaxhighlighter { 6 | .keyword { font-weight: bold !important; } 7 | } 8 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Scripts/SyntaxHighlighter/compass/shThemeDjango.scss: -------------------------------------------------------------------------------- 1 | // Django SyntaxHighlighter theme 2 | 3 | $background: #0a2b1d !default; 4 | 5 | $line_highlighted_background: #233729 !default; 6 | $line_highlighted_number: white !default; 7 | 8 | $gutter_text: #497958 !default; 9 | $gutter_border_color: #41a83e !default; 10 | 11 | $toolbar_collapsed_a: #96dd3b !default; 12 | $toolbar_collapsed_a_hover: #fff !default; 13 | $toolbar_collapsed_background: #000 !default; 14 | 15 | $toolbar_a: #fff !default; 16 | $toolbar_a_hover: #ffe862 !default; 17 | 18 | $code_plain: #f8f8f8 !default; 19 | $code_comments: #336442 !default; 20 | $code_string: #9df39f !default; 21 | $code_keyword: #96dd3b !default; 22 | $code_preprocessor: #91bb9e !default; 23 | $code_variable: #ffaa3e !default; 24 | $code_value: #f7e741 !default; 25 | $code_functions: #ffaa3e !default; 26 | $code_constants: #e0e8ff !default; 27 | $code_color1: #eb939a !default; 28 | $code_color2: #91bb9e !default; 29 | $code_color3: #edef7d !default; 30 | 31 | @import "_theme_template.scss"; 32 | 33 | .syntaxhighlighter { 34 | .comments { font-style: italic !important; } 35 | .keyword { font-weight: bold !important; } 36 | } 37 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Scripts/SyntaxHighlighter/compass/shThemeEclipse.scss: -------------------------------------------------------------------------------- 1 | // Eclipse IDE SyntaxHighlighter color theme 2 | // (C) Code-House 3 | // :http//blog.code-house.org/2009/10/xml-i-adnotacje-kod-ogolnego-przeznaczenia-i-jpa/ 4 | 5 | $background: #fff !default; 6 | 7 | $line_highlighted_background: #c3defe !default; 8 | $line_highlighted_number: #fff !default; 9 | 10 | $gutter_text: #787878 !default; 11 | $gutter_border_color: #d4d0c8 !default; 12 | 13 | $toolbar_collapsed_a: #3f5fbf !default; 14 | $toolbar_collapsed_a_hover: #aa7700 !default; 15 | $toolbar_collapsed_background: #fff !default; 16 | 17 | $toolbar_a: #a0a0a0 !default; 18 | $toolbar_a_hover: red !default; 19 | 20 | $code_plain: black !default; 21 | $code_comments: #3f5fbf !default; 22 | $code_string: #2a00ff !default; 23 | $code_keyword: #7f0055 !default; 24 | $code_preprocessor: #646464 !default; 25 | $code_variable: #aa7700 !default; 26 | $code_value: #009900 !default; 27 | $code_functions: #ff1493 !default; 28 | $code_constants: #0066cc !default; 29 | $code_color1: gray !default; 30 | $code_color2: #ff1493 !default; 31 | $code_color3: red !default; 32 | 33 | @import "_theme_template.scss"; 34 | 35 | .syntaxhighlighter { 36 | .keyword { font-weight: bold !important; } 37 | 38 | .xml { 39 | .keyword { 40 | color: #3f7f7f !important; 41 | font-weight: normal !important; } 42 | .color1, .color1 a { color: #7f007f !important; } 43 | .string { 44 | font-style: italic !important; 45 | color: #2a00ff !important; 46 | } 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Scripts/SyntaxHighlighter/compass/shThemeEmacs.scss: -------------------------------------------------------------------------------- 1 | // Emacs SyntaxHighlighter theme based on theme by Joshua Emmons 2 | // http://www.skia.net/ 3 | 4 | $background: black !default; 5 | 6 | $line_highlighted_background: #2A3133 !default; 7 | $line_highlighted_number: white !default; 8 | 9 | $gutter_text: #d3d3d3 !default; 10 | $gutter_border_color: #990000 !default; 11 | 12 | $toolbar_collapsed_a: #ebdb8d !default; 13 | $toolbar_collapsed_a_hover: #ff7d27 !default; 14 | $toolbar_collapsed_background: black !default; 15 | 16 | $toolbar_a: #fff !default; 17 | $toolbar_a_hover: #9ccff4 !default; 18 | 19 | $code_plain: #d3d3d3 !default; 20 | $code_comments: #ff7d27 !default; 21 | $code_string: #ff9e7b !default; 22 | $code_keyword: aqua !default; 23 | $code_preprocessor: #aec4de !default; 24 | $code_variable: #ffaa3e !default; 25 | $code_value: #009900 !default; 26 | $code_functions: #81cef9 !default; 27 | $code_constants: #ff9e7b !default; 28 | $code_color1: #ebdb8d !default; 29 | $code_color2: #ff7d27 !default; 30 | $code_color3: #aec4de !default; 31 | 32 | @import "_theme_template.scss"; 33 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Scripts/SyntaxHighlighter/compass/shThemeFadeToGrey.scss: -------------------------------------------------------------------------------- 1 | // Fade to Grey SyntaxHighlighter theme based on theme by Brasten Sager 2 | // :http//www.ibrasten.com/ 3 | 4 | $background: #121212 !default; 5 | 6 | $line_highlighted_background: #2C2C29 !default; 7 | $line_highlighted_number: white !default; 8 | 9 | $gutter_text: #afafaf !default; 10 | $gutter_border_color: #3185b9 !default; 11 | 12 | $toolbar_collapsed_a: #3185b9 !default; 13 | $toolbar_collapsed_a_hover: #d01d33 !default; 14 | $toolbar_collapsed_background: black !default; 15 | 16 | $toolbar_a: #fff !default; 17 | $toolbar_a_hover: #96daff !default; 18 | 19 | $code_plain: white !default; 20 | $code_comments: #696854 !default; 21 | $code_string: #e3e658 !default; 22 | $code_keyword: #d01d33 !default; 23 | $code_preprocessor: #435a5f !default; 24 | $code_variable: #898989 !default; 25 | $code_value: #009900 !default; 26 | $code_functions: #aaaaaa !default; 27 | $code_constants: #96daff !default; 28 | $code_color1: #ffc074 !default; 29 | $code_color2: #4a8cdb !default; 30 | $code_color3: #96daff !default; 31 | 32 | @import "_theme_template.scss"; 33 | 34 | .syntaxhighlighter { 35 | .functions { font-weight: bold !important; } 36 | } 37 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Scripts/SyntaxHighlighter/compass/shThemeMDUltra.scss: -------------------------------------------------------------------------------- 1 | // MDUltra SyntaxHighlighter theme based on Midnight Theme 2 | // http://www.mddev.co.uk/ 3 | 4 | $background: #222222 !default; 5 | 6 | $line_highlighted_background: #253e5a !default; 7 | $line_highlighted_number: white !default; 8 | 9 | $gutter_text: #38566f !default; 10 | $gutter_border_color: #435a5f !default; 11 | 12 | $toolbar_collapsed_a: #428bdd !default; 13 | $toolbar_collapsed_a_hover: lime !default; 14 | $toolbar_collapsed_background: black !default; 15 | 16 | $toolbar_a: #aaaaff !default; 17 | $toolbar_a_hover: #9ccff4 !default; 18 | 19 | $code_plain: lime !default; 20 | $code_comments: #428bdd !default; 21 | $code_string: lime !default; 22 | $code_keyword: #aaaaff !default; 23 | $code_preprocessor: #8aa6c1 !default; 24 | $code_variable: aqua !default; 25 | $code_value: #f7e741 !default; 26 | $code_functions: #ff8000 !default; 27 | $code_constants: yellow !default; 28 | $code_color1: red !default; 29 | $code_color2: yellow !default; 30 | $code_color3: #ffaa3e !default; 31 | 32 | @import "_theme_template.scss"; 33 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Scripts/SyntaxHighlighter/compass/shThemeMidnight.scss: -------------------------------------------------------------------------------- 1 | // Midnight SyntaxHighlighter theme based on theme by J.D. Myers 2 | // http://webdesign.lsnjd.com/ 3 | 4 | $background: #0f192a !default; 5 | 6 | $line_highlighted_background: #253e5a !default; 7 | $line_highlighted_number: #38566f !default; 8 | 9 | $gutter_text: #afafaf !default; 10 | $gutter_border_color: #435a5f !default; 11 | 12 | $toolbar_collapsed_a: #428bdd !default; 13 | $toolbar_collapsed_a_hover: #1dc116 !default; 14 | $toolbar_collapsed_background: #000 !default; 15 | 16 | $toolbar_a: #D1EDFF !default; 17 | $toolbar_a_hover: #8aa6c1 !default; 18 | 19 | $code_plain: #d1edff !default; 20 | $code_comments: #428bdd !default; 21 | $code_string: #1dc116 !default; 22 | $code_keyword: #b43d3d !default; 23 | $code_preprocessor: #8aa6c1 !default; 24 | $code_variable: #ffaa3e !default; 25 | $code_value: #f7e741 !default; 26 | $code_functions: #ffaa3e !default; 27 | $code_constants: #e0e8ff !default; 28 | $code_color1: #f8bb00 !default; 29 | $code_color2: white !default; 30 | $code_color3: #ffaa3e !default; 31 | 32 | @import "_theme_template.scss"; 33 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Scripts/SyntaxHighlighter/compass/shThemeRDark.scss: -------------------------------------------------------------------------------- 1 | // RDark SyntaxHighlighter theme based on theme by Radu Dineiu 2 | // http://www.vim.org/scripts/script.php?script_id=1732 3 | 4 | $background: #1b2426 !default; 5 | 6 | $line_highlighted_background: #323E41 !default; 7 | $line_highlighted_number: #b9bdb6 !default; 8 | 9 | $gutter_text: #afafaf !default; 10 | $gutter_border_color: #435a5f !default; 11 | 12 | $toolbar_collapsed_a: #5ba1cf !default; 13 | $toolbar_collapsed_a_hover: #5ce638 !default; 14 | $toolbar_collapsed_background: #000 !default; 15 | 16 | $toolbar_a: #fff !default; 17 | $toolbar_a_hover: #e0e8ff !default; 18 | 19 | $code_plain: #b9bdb6 !default; 20 | $code_comments: #878a85 !default; 21 | $code_string: #5ce638 !default; 22 | $code_keyword: #5ba1cf !default; 23 | $code_preprocessor: #435a5f !default; 24 | $code_variable: #ffaa3e !default; 25 | $code_value: #009900 !default; 26 | $code_functions: #ffaa3e !default; 27 | $code_constants: #e0e8ff !default; 28 | $code_color1: #e0e8ff !default; 29 | $code_color2: white !default; 30 | $code_color3: #ffaa3e !default; 31 | 32 | @import "_theme_template.scss"; 33 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Scripts/SyntaxHighlighter/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Hello SyntaxHighlighter 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |

Hello SyntaxHighlighter

15 |
16 | function helloSyntaxHighlighter()
17 | {
18 | 	return "hi!";
19 | }
20 | 
21 | 22 | 23 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Scripts/SyntaxHighlighter/scripts/shAutoloader.js: -------------------------------------------------------------------------------- 1 | /** 2 | * SyntaxHighlighter 3 | * http://alexgorbatchev.com/SyntaxHighlighter 4 | * 5 | * SyntaxHighlighter is donationware. If you are using it, please donate. 6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html 7 | * 8 | * @version 9 | * 3.0.83 (July 02 2010) 10 | * 11 | * @copyright 12 | * Copyright (C) 2004-2010 Alex Gorbatchev. 13 | * 14 | * @license 15 | * Dual licensed under the MIT and GPL licenses. 16 | */ 17 | eval(function(p,a,c,k,e,d){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('(2(){1 h=5;h.I=2(){2 n(c,a){4(1 d=0;d)/g 47 | }); 48 | }; 49 | 50 | Brush.prototype = new SyntaxHighlighter.Highlighter(); 51 | Brush.aliases = ['java']; 52 | 53 | SyntaxHighlighter.brushes.Java = Brush; 54 | 55 | // CommonJS 56 | typeof(exports) != 'undefined' ? exports.Brush = Brush : null; 57 | })(); 58 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Scripts/SyntaxHighlighter/scripts/shBrushJavaFX.js: -------------------------------------------------------------------------------- 1 | /** 2 | * SyntaxHighlighter 3 | * http://alexgorbatchev.com/SyntaxHighlighter 4 | * 5 | * SyntaxHighlighter is donationware. If you are using it, please donate. 6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html 7 | * 8 | * @version 9 | * 3.0.83 (July 02 2010) 10 | * 11 | * @copyright 12 | * Copyright (C) 2004-2010 Alex Gorbatchev. 13 | * 14 | * @license 15 | * Dual licensed under the MIT and GPL licenses. 16 | */ 17 | ;(function() 18 | { 19 | // CommonJS 20 | typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null; 21 | 22 | function Brush() 23 | { 24 | // Contributed by Patrick Webster 25 | // http://patrickwebster.blogspot.com/2009/04/javafx-brush-for-syntaxhighlighter.html 26 | var datatypes = 'Boolean Byte Character Double Duration ' 27 | + 'Float Integer Long Number Short String Void' 28 | ; 29 | 30 | var keywords = 'abstract after and as assert at before bind bound break catch class ' 31 | + 'continue def delete else exclusive extends false finally first for from ' 32 | + 'function if import in indexof init insert instanceof into inverse last ' 33 | + 'lazy mixin mod nativearray new not null on or override package postinit ' 34 | + 'protected public public-init public-read replace return reverse sizeof ' 35 | + 'step super then this throw true try tween typeof var where while with ' 36 | + 'attribute let private readonly static trigger' 37 | ; 38 | 39 | this.regexList = [ 40 | { regex: SyntaxHighlighter.regexLib.singleLineCComments, css: 'comments' }, 41 | { regex: SyntaxHighlighter.regexLib.multiLineCComments, css: 'comments' }, 42 | { regex: SyntaxHighlighter.regexLib.singleQuotedString, css: 'string' }, 43 | { regex: SyntaxHighlighter.regexLib.doubleQuotedString, css: 'string' }, 44 | { regex: /(-?\.?)(\b(\d*\.?\d+|\d+\.?\d*)(e[+-]?\d+)?|0x[a-f\d]+)\b\.?/gi, css: 'color2' }, // numbers 45 | { regex: new RegExp(this.getKeywords(datatypes), 'gm'), css: 'variable' }, // datatypes 46 | { regex: new RegExp(this.getKeywords(keywords), 'gm'), css: 'keyword' } 47 | ]; 48 | this.forHtmlScript(SyntaxHighlighter.regexLib.aspScriptTags); 49 | }; 50 | 51 | Brush.prototype = new SyntaxHighlighter.Highlighter(); 52 | Brush.aliases = ['jfx', 'javafx']; 53 | 54 | SyntaxHighlighter.brushes.JavaFX = Brush; 55 | 56 | // CommonJS 57 | typeof(exports) != 'undefined' ? exports.Brush = Brush : null; 58 | })(); 59 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Scripts/SyntaxHighlighter/scripts/shBrushPerl.js: -------------------------------------------------------------------------------- 1 | /** 2 | * SyntaxHighlighter 3 | * http://alexgorbatchev.com/SyntaxHighlighter 4 | * 5 | * SyntaxHighlighter is donationware. If you are using it, please donate. 6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html 7 | * 8 | * @version 9 | * 3.0.83 (July 02 2010) 10 | * 11 | * @copyright 12 | * Copyright (C) 2004-2010 Alex Gorbatchev. 13 | * 14 | * @license 15 | * Dual licensed under the MIT and GPL licenses. 16 | */ 17 | ;(function() 18 | { 19 | // CommonJS 20 | typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null; 21 | 22 | function Brush() 23 | { 24 | // Contributed by David Simmons-Duffin and Marty Kube 25 | 26 | var funcs = 27 | 'abs accept alarm atan2 bind binmode chdir chmod chomp chop chown chr ' + 28 | 'chroot close closedir connect cos crypt defined delete each endgrent ' + 29 | 'endhostent endnetent endprotoent endpwent endservent eof exec exists ' + 30 | 'exp fcntl fileno flock fork format formline getc getgrent getgrgid ' + 31 | 'getgrnam gethostbyaddr gethostbyname gethostent getlogin getnetbyaddr ' + 32 | 'getnetbyname getnetent getpeername getpgrp getppid getpriority ' + 33 | 'getprotobyname getprotobynumber getprotoent getpwent getpwnam getpwuid ' + 34 | 'getservbyname getservbyport getservent getsockname getsockopt glob ' + 35 | 'gmtime grep hex index int ioctl join keys kill lc lcfirst length link ' + 36 | 'listen localtime lock log lstat map mkdir msgctl msgget msgrcv msgsnd ' + 37 | 'oct open opendir ord pack pipe pop pos print printf prototype push ' + 38 | 'quotemeta rand read readdir readline readlink readpipe recv rename ' + 39 | 'reset reverse rewinddir rindex rmdir scalar seek seekdir select semctl ' + 40 | 'semget semop send setgrent sethostent setnetent setpgrp setpriority ' + 41 | 'setprotoent setpwent setservent setsockopt shift shmctl shmget shmread ' + 42 | 'shmwrite shutdown sin sleep socket socketpair sort splice split sprintf ' + 43 | 'sqrt srand stat study substr symlink syscall sysopen sysread sysseek ' + 44 | 'system syswrite tell telldir time times tr truncate uc ucfirst umask ' + 45 | 'undef unlink unpack unshift utime values vec wait waitpid warn write'; 46 | 47 | var keywords = 48 | 'bless caller continue dbmclose dbmopen die do dump else elsif eval exit ' + 49 | 'for foreach goto if import last local my next no our package redo ref ' + 50 | 'require return sub tie tied unless untie until use wantarray while'; 51 | 52 | this.regexList = [ 53 | { regex: new RegExp('#[^!].*$', 'gm'), css: 'comments' }, 54 | { regex: new RegExp('^\\s*#!.*$', 'gm'), css: 'preprocessor' }, // shebang 55 | { regex: SyntaxHighlighter.regexLib.doubleQuotedString, css: 'string' }, 56 | { regex: SyntaxHighlighter.regexLib.singleQuotedString, css: 'string' }, 57 | { regex: new RegExp('(\\$|@|%)\\w+', 'g'), css: 'variable' }, 58 | { regex: new RegExp(this.getKeywords(funcs), 'gmi'), css: 'functions' }, 59 | { regex: new RegExp(this.getKeywords(keywords), 'gm'), css: 'keyword' } 60 | ]; 61 | 62 | this.forHtmlScript(SyntaxHighlighter.regexLib.phpScriptTags); 63 | } 64 | 65 | Brush.prototype = new SyntaxHighlighter.Highlighter(); 66 | Brush.aliases = ['perl', 'Perl', 'pl']; 67 | 68 | SyntaxHighlighter.brushes.Perl = Brush; 69 | 70 | // CommonJS 71 | typeof(exports) != 'undefined' ? exports.Brush = Brush : null; 72 | })(); 73 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Scripts/SyntaxHighlighter/scripts/shBrushPlain.js: -------------------------------------------------------------------------------- 1 | /** 2 | * SyntaxHighlighter 3 | * http://alexgorbatchev.com/SyntaxHighlighter 4 | * 5 | * SyntaxHighlighter is donationware. If you are using it, please donate. 6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html 7 | * 8 | * @version 9 | * 3.0.83 (July 02 2010) 10 | * 11 | * @copyright 12 | * Copyright (C) 2004-2010 Alex Gorbatchev. 13 | * 14 | * @license 15 | * Dual licensed under the MIT and GPL licenses. 16 | */ 17 | ;(function() 18 | { 19 | // CommonJS 20 | typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null; 21 | 22 | function Brush() 23 | { 24 | }; 25 | 26 | Brush.prototype = new SyntaxHighlighter.Highlighter(); 27 | Brush.aliases = ['text', 'plain']; 28 | 29 | SyntaxHighlighter.brushes.Plain = Brush; 30 | 31 | // CommonJS 32 | typeof(exports) != 'undefined' ? exports.Brush = Brush : null; 33 | })(); 34 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Scripts/SyntaxHighlighter/scripts/shBrushPython.js: -------------------------------------------------------------------------------- 1 | /** 2 | * SyntaxHighlighter 3 | * http://alexgorbatchev.com/SyntaxHighlighter 4 | * 5 | * SyntaxHighlighter is donationware. If you are using it, please donate. 6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html 7 | * 8 | * @version 9 | * 3.0.83 (July 02 2010) 10 | * 11 | * @copyright 12 | * Copyright (C) 2004-2010 Alex Gorbatchev. 13 | * 14 | * @license 15 | * Dual licensed under the MIT and GPL licenses. 16 | */ 17 | ;(function() 18 | { 19 | // CommonJS 20 | typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null; 21 | 22 | function Brush() 23 | { 24 | // Contributed by Gheorghe Milas and Ahmad Sherif 25 | 26 | var keywords = 'and assert break class continue def del elif else ' + 27 | 'except exec finally for from global if import in is ' + 28 | 'lambda not or pass print raise return try yield while'; 29 | 30 | var funcs = '__import__ abs all any apply basestring bin bool buffer callable ' + 31 | 'chr classmethod cmp coerce compile complex delattr dict dir ' + 32 | 'divmod enumerate eval execfile file filter float format frozenset ' + 33 | 'getattr globals hasattr hash help hex id input int intern ' + 34 | 'isinstance issubclass iter len list locals long map max min next ' + 35 | 'object oct open ord pow print property range raw_input reduce ' + 36 | 'reload repr reversed round set setattr slice sorted staticmethod ' + 37 | 'str sum super tuple type type unichr unicode vars xrange zip'; 38 | 39 | var special = 'None True False self cls class_'; 40 | 41 | this.regexList = [ 42 | { regex: SyntaxHighlighter.regexLib.singleLinePerlComments, css: 'comments' }, 43 | { regex: /^\s*@\w+/gm, css: 'decorator' }, 44 | { regex: /(['\"]{3})([^\1])*?\1/gm, css: 'comments' }, 45 | { regex: /"(?!")(?:\.|\\\"|[^\""\n])*"/gm, css: 'string' }, 46 | { regex: /'(?!')(?:\.|(\\\')|[^\''\n])*'/gm, css: 'string' }, 47 | { regex: /\+|\-|\*|\/|\%|=|==/gm, css: 'keyword' }, 48 | { regex: /\b\d+\.?\w*/g, css: 'value' }, 49 | { regex: new RegExp(this.getKeywords(funcs), 'gmi'), css: 'functions' }, 50 | { regex: new RegExp(this.getKeywords(keywords), 'gm'), css: 'keyword' }, 51 | { regex: new RegExp(this.getKeywords(special), 'gm'), css: 'color1' } 52 | ]; 53 | 54 | this.forHtmlScript(SyntaxHighlighter.regexLib.aspScriptTags); 55 | }; 56 | 57 | Brush.prototype = new SyntaxHighlighter.Highlighter(); 58 | Brush.aliases = ['py', 'python']; 59 | 60 | SyntaxHighlighter.brushes.Python = Brush; 61 | 62 | // CommonJS 63 | typeof(exports) != 'undefined' ? exports.Brush = Brush : null; 64 | })(); 65 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Scripts/SyntaxHighlighter/scripts/shBrushRuby.js: -------------------------------------------------------------------------------- 1 | /** 2 | * SyntaxHighlighter 3 | * http://alexgorbatchev.com/SyntaxHighlighter 4 | * 5 | * SyntaxHighlighter is donationware. If you are using it, please donate. 6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html 7 | * 8 | * @version 9 | * 3.0.83 (July 02 2010) 10 | * 11 | * @copyright 12 | * Copyright (C) 2004-2010 Alex Gorbatchev. 13 | * 14 | * @license 15 | * Dual licensed under the MIT and GPL licenses. 16 | */ 17 | ;(function() 18 | { 19 | // CommonJS 20 | typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null; 21 | 22 | function Brush() 23 | { 24 | // Contributed by Erik Peterson. 25 | 26 | var keywords = 'alias and BEGIN begin break case class def define_method defined do each else elsif ' + 27 | 'END end ensure false for if in module new next nil not or raise redo rescue retry return ' + 28 | 'self super then throw true undef unless until when while yield'; 29 | 30 | var builtins = 'Array Bignum Binding Class Continuation Dir Exception FalseClass File::Stat File Fixnum Fload ' + 31 | 'Hash Integer IO MatchData Method Module NilClass Numeric Object Proc Range Regexp String Struct::TMS Symbol ' + 32 | 'ThreadGroup Thread Time TrueClass'; 33 | 34 | this.regexList = [ 35 | { regex: SyntaxHighlighter.regexLib.singleLinePerlComments, css: 'comments' }, // one line comments 36 | { regex: SyntaxHighlighter.regexLib.doubleQuotedString, css: 'string' }, // double quoted strings 37 | { regex: SyntaxHighlighter.regexLib.singleQuotedString, css: 'string' }, // single quoted strings 38 | { regex: /\b[A-Z0-9_]+\b/g, css: 'constants' }, // constants 39 | { regex: /:[a-z][A-Za-z0-9_]*/g, css: 'color2' }, // symbols 40 | { regex: /(\$|@@|@)\w+/g, css: 'variable bold' }, // $global, @instance, and @@class variables 41 | { regex: new RegExp(this.getKeywords(keywords), 'gm'), css: 'keyword' }, // keywords 42 | { regex: new RegExp(this.getKeywords(builtins), 'gm'), css: 'color1' } // builtins 43 | ]; 44 | 45 | this.forHtmlScript(SyntaxHighlighter.regexLib.aspScriptTags); 46 | }; 47 | 48 | Brush.prototype = new SyntaxHighlighter.Highlighter(); 49 | Brush.aliases = ['ruby', 'rails', 'ror', 'rb']; 50 | 51 | SyntaxHighlighter.brushes.Ruby = Brush; 52 | 53 | // CommonJS 54 | typeof(exports) != 'undefined' ? exports.Brush = Brush : null; 55 | })(); 56 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Scripts/SyntaxHighlighter/scripts/shBrushScala.js: -------------------------------------------------------------------------------- 1 | /** 2 | * SyntaxHighlighter 3 | * http://alexgorbatchev.com/SyntaxHighlighter 4 | * 5 | * SyntaxHighlighter is donationware. If you are using it, please donate. 6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html 7 | * 8 | * @version 9 | * 3.0.83 (July 02 2010) 10 | * 11 | * @copyright 12 | * Copyright (C) 2004-2010 Alex Gorbatchev. 13 | * 14 | * @license 15 | * Dual licensed under the MIT and GPL licenses. 16 | */ 17 | ;(function() 18 | { 19 | // CommonJS 20 | typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null; 21 | 22 | function Brush() 23 | { 24 | // Contributed by Yegor Jbanov and David Bernard. 25 | 26 | var keywords = 'val sealed case def true trait implicit forSome import match object null finally super ' + 27 | 'override try lazy for var catch throw type extends class while with new final yield abstract ' + 28 | 'else do if return protected private this package false'; 29 | 30 | var keyops = '[_:=><%#@]+'; 31 | 32 | this.regexList = [ 33 | { regex: SyntaxHighlighter.regexLib.singleLineCComments, css: 'comments' }, // one line comments 34 | { regex: SyntaxHighlighter.regexLib.multiLineCComments, css: 'comments' }, // multiline comments 35 | { regex: SyntaxHighlighter.regexLib.multiLineSingleQuotedString, css: 'string' }, // multi-line strings 36 | { regex: SyntaxHighlighter.regexLib.multiLineDoubleQuotedString, css: 'string' }, // double-quoted string 37 | { regex: SyntaxHighlighter.regexLib.singleQuotedString, css: 'string' }, // strings 38 | { regex: /0x[a-f0-9]+|\d+(\.\d+)?/gi, css: 'value' }, // numbers 39 | { regex: new RegExp(this.getKeywords(keywords), 'gm'), css: 'keyword' }, // keywords 40 | { regex: new RegExp(keyops, 'gm'), css: 'keyword' } // scala keyword 41 | ]; 42 | } 43 | 44 | Brush.prototype = new SyntaxHighlighter.Highlighter(); 45 | Brush.aliases = ['scala']; 46 | 47 | SyntaxHighlighter.brushes.Scala = Brush; 48 | 49 | // CommonJS 50 | typeof(exports) != 'undefined' ? exports.Brush = Brush : null; 51 | })(); 52 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Scripts/SyntaxHighlighter/scripts/shBrushSql.js: -------------------------------------------------------------------------------- 1 | /** 2 | * SyntaxHighlighter 3 | * http://alexgorbatchev.com/SyntaxHighlighter 4 | * 5 | * SyntaxHighlighter is donationware. If you are using it, please donate. 6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html 7 | * 8 | * @version 9 | * 3.0.83 (July 02 2010) 10 | * 11 | * @copyright 12 | * Copyright (C) 2004-2010 Alex Gorbatchev. 13 | * 14 | * @license 15 | * Dual licensed under the MIT and GPL licenses. 16 | */ 17 | ;(function() 18 | { 19 | // CommonJS 20 | typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null; 21 | 22 | function Brush() 23 | { 24 | var funcs = 'abs avg case cast coalesce convert count current_timestamp ' + 25 | 'current_user day isnull left lower month nullif replace right ' + 26 | 'session_user space substring sum system_user upper user year'; 27 | 28 | var keywords = 'absolute action add after alter as asc at authorization begin bigint ' + 29 | 'binary bit by cascade char character check checkpoint close collate ' + 30 | 'column commit committed connect connection constraint contains continue ' + 31 | 'create cube current current_date current_time cursor database date ' + 32 | 'deallocate dec decimal declare default delete desc distinct double drop ' + 33 | 'dynamic else end end-exec escape except exec execute false fetch first ' + 34 | 'float for force foreign forward free from full function global goto grant ' + 35 | 'group grouping having hour ignore index inner insensitive insert instead ' + 36 | 'int integer intersect into is isolation key last level load local max min ' + 37 | 'minute modify move name national nchar next no numeric of off on only ' + 38 | 'open option order out output partial password precision prepare primary ' + 39 | 'prior privileges procedure public read real references relative repeatable ' + 40 | 'restrict return returns revoke rollback rollup rows rule schema scroll ' + 41 | 'second section select sequence serializable set size smallint static ' + 42 | 'statistics table temp temporary then time timestamp to top transaction ' + 43 | 'translation trigger true truncate uncommitted union unique update values ' + 44 | 'varchar varying view when where with work'; 45 | 46 | var operators = 'all and any between cross in join like not null or outer some'; 47 | 48 | this.regexList = [ 49 | { regex: /--(.*)$/gm, css: 'comments' }, // one line and multiline comments 50 | { regex: SyntaxHighlighter.regexLib.multiLineDoubleQuotedString, css: 'string' }, // double quoted strings 51 | { regex: SyntaxHighlighter.regexLib.multiLineSingleQuotedString, css: 'string' }, // single quoted strings 52 | { regex: new RegExp(this.getKeywords(funcs), 'gmi'), css: 'color2' }, // functions 53 | { regex: new RegExp(this.getKeywords(operators), 'gmi'), css: 'color1' }, // operators and such 54 | { regex: new RegExp(this.getKeywords(keywords), 'gmi'), css: 'keyword' } // keyword 55 | ]; 56 | }; 57 | 58 | Brush.prototype = new SyntaxHighlighter.Highlighter(); 59 | Brush.aliases = ['sql']; 60 | 61 | SyntaxHighlighter.brushes.Sql = Brush; 62 | 63 | // CommonJS 64 | typeof(exports) != 'undefined' ? exports.Brush = Brush : null; 65 | })(); 66 | 67 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Scripts/SyntaxHighlighter/scripts/shBrushVb.js: -------------------------------------------------------------------------------- 1 | /** 2 | * SyntaxHighlighter 3 | * http://alexgorbatchev.com/SyntaxHighlighter 4 | * 5 | * SyntaxHighlighter is donationware. If you are using it, please donate. 6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html 7 | * 8 | * @version 9 | * 3.0.83 (July 02 2010) 10 | * 11 | * @copyright 12 | * Copyright (C) 2004-2010 Alex Gorbatchev. 13 | * 14 | * @license 15 | * Dual licensed under the MIT and GPL licenses. 16 | */ 17 | ;(function() 18 | { 19 | // CommonJS 20 | typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null; 21 | 22 | function Brush() 23 | { 24 | var keywords = 'AddHandler AddressOf AndAlso Alias And Ansi As Assembly Auto ' + 25 | 'Boolean ByRef Byte ByVal Call Case Catch CBool CByte CChar CDate ' + 26 | 'CDec CDbl Char CInt Class CLng CObj Const CShort CSng CStr CType ' + 27 | 'Date Decimal Declare Default Delegate Dim DirectCast Do Double Each ' + 28 | 'Else ElseIf End Enum Erase Error Event Exit False Finally For Friend ' + 29 | 'Function Get GetType GoSub GoTo Handles If Implements Imports In ' + 30 | 'Inherits Integer Interface Is Let Lib Like Long Loop Me Mod Module ' + 31 | 'MustInherit MustOverride MyBase MyClass Namespace New Next Not Nothing ' + 32 | 'NotInheritable NotOverridable Object On Option Optional Or OrElse ' + 33 | 'Overloads Overridable Overrides ParamArray Preserve Private Property ' + 34 | 'Protected Public RaiseEvent ReadOnly ReDim REM RemoveHandler Resume ' + 35 | 'Return Select Set Shadows Shared Short Single Static Step Stop String ' + 36 | 'Structure Sub SyncLock Then Throw To True Try TypeOf Unicode Until ' + 37 | 'Variant When While With WithEvents WriteOnly Xor'; 38 | 39 | this.regexList = [ 40 | { regex: /'.*$/gm, css: 'comments' }, // one line comments 41 | { regex: SyntaxHighlighter.regexLib.doubleQuotedString, css: 'string' }, // strings 42 | { regex: /^\s*#.*$/gm, css: 'preprocessor' }, // preprocessor tags like #region and #endregion 43 | { regex: new RegExp(this.getKeywords(keywords), 'gm'), css: 'keyword' } // vb keyword 44 | ]; 45 | 46 | this.forHtmlScript(SyntaxHighlighter.regexLib.aspScriptTags); 47 | }; 48 | 49 | Brush.prototype = new SyntaxHighlighter.Highlighter(); 50 | Brush.aliases = ['vb', 'vbnet']; 51 | 52 | SyntaxHighlighter.brushes.Vb = Brush; 53 | 54 | // CommonJS 55 | typeof(exports) != 'undefined' ? exports.Brush = Brush : null; 56 | })(); 57 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Scripts/SyntaxHighlighter/scripts/shBrushXml.js: -------------------------------------------------------------------------------- 1 | /** 2 | * SyntaxHighlighter 3 | * http://alexgorbatchev.com/SyntaxHighlighter 4 | * 5 | * SyntaxHighlighter is donationware. If you are using it, please donate. 6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html 7 | * 8 | * @version 9 | * 3.0.83 (July 02 2010) 10 | * 11 | * @copyright 12 | * Copyright (C) 2004-2010 Alex Gorbatchev. 13 | * 14 | * @license 15 | * Dual licensed under the MIT and GPL licenses. 16 | */ 17 | ;(function() 18 | { 19 | // CommonJS 20 | typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null; 21 | 22 | function Brush() 23 | { 24 | function process(match, regexInfo) 25 | { 26 | var constructor = SyntaxHighlighter.Match, 27 | code = match[0], 28 | tag = new XRegExp('(<|<)[\\s\\/\\?]*(?[:\\w-\\.]+)', 'xg').exec(code), 29 | result = [] 30 | ; 31 | 32 | if (match.attributes != null) 33 | { 34 | var attributes, 35 | regex = new XRegExp('(? [\\w:\\-\\.]+)' + 36 | '\\s*=\\s*' + 37 | '(? ".*?"|\'.*?\'|\\w+)', 38 | 'xg'); 39 | 40 | while ((attributes = regex.exec(code)) != null) 41 | { 42 | result.push(new constructor(attributes.name, match.index + attributes.index, 'color1')); 43 | result.push(new constructor(attributes.value, match.index + attributes.index + attributes[0].indexOf(attributes.value), 'string')); 44 | } 45 | } 46 | 47 | if (tag != null) 48 | result.push( 49 | new constructor(tag.name, match.index + tag[0].indexOf(tag.name), 'keyword') 50 | ); 51 | 52 | return result; 53 | } 54 | 55 | this.regexList = [ 56 | { regex: new XRegExp('(\\<|<)\\!\\[[\\w\\s]*?\\[(.|\\s)*?\\]\\](\\>|>)', 'gm'), css: 'color2' }, // 57 | { regex: SyntaxHighlighter.regexLib.xmlComments, css: 'comments' }, // 58 | { regex: new XRegExp('(<|<)[\\s\\/\\?]*(\\w+)(?.*?)[\\s\\/\\?]*(>|>)', 'sg'), func: process } 59 | ]; 60 | }; 61 | 62 | Brush.prototype = new SyntaxHighlighter.Highlighter(); 63 | Brush.aliases = ['xml', 'xhtml', 'xslt', 'html']; 64 | 65 | SyntaxHighlighter.brushes.Xml = Brush; 66 | 67 | // CommonJS 68 | typeof(exports) != 'undefined' ? exports.Brush = Brush : null; 69 | })(); 70 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Scripts/SyntaxHighlighter/scripts/shLegacy.js: -------------------------------------------------------------------------------- 1 | /** 2 | * SyntaxHighlighter 3 | * http://alexgorbatchev.com/SyntaxHighlighter 4 | * 5 | * SyntaxHighlighter is donationware. If you are using it, please donate. 6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html 7 | * 8 | * @version 9 | * 3.0.83 (July 02 2010) 10 | * 11 | * @copyright 12 | * Copyright (C) 2004-2010 Alex Gorbatchev. 13 | * 14 | * @license 15 | * Dual licensed under the MIT and GPL licenses. 16 | */ 17 | eval(function(p,a,c,k,e,d){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('3 u={8:{}};u.8={A:4(c,k,l,m,n,o){4 d(a,b){2 a!=1?a:b}4 f(a){2 a!=1?a.E():1}c=c.I(":");3 g=c[0],e={};t={"r":K};M=1;5=8.5;9(3 j R c)e[c[j]]="r";k=f(d(k,5.C));l=f(d(l,5.D));m=f(d(m,5.s));o=f(d(o,5.Q));n=f(d(n,5["x-y"]));2{P:g,C:d(t[e.O],k),D:d(t[e.N],l),s:d({"r":r}[e.s],m),"x-y":d(4(a,b){9(3 h=T S("^"+b+"\\\\[(?\\\\w+)\\\\]$","U"),i=1,p=0;p tags to the document body 81 | for (i = 0; i < elements.length; i++) 82 | { 83 | var url = brushes[elements[i].params.brush]; 84 | 85 | if (!url) 86 | continue; 87 | 88 | scripts[url] = false; 89 | loadScript(url); 90 | } 91 | 92 | function loadScript(url) 93 | { 94 | var script = document.createElement('script'), 95 | done = false 96 | ; 97 | 98 | script.src = url; 99 | script.type = 'text/javascript'; 100 | script.language = 'javascript'; 101 | script.onload = script.onreadystatechange = function() 102 | { 103 | if (!done && (!this.readyState || this.readyState == 'loaded' || this.readyState == 'complete')) 104 | { 105 | done = true; 106 | scripts[url] = true; 107 | checkAll(); 108 | 109 | // Handle memory leak in IE 110 | script.onload = script.onreadystatechange = null; 111 | script.parentNode.removeChild(script); 112 | } 113 | }; 114 | 115 | // sync way of adding script tags to the page 116 | document.body.appendChild(script); 117 | }; 118 | 119 | function checkAll() 120 | { 121 | for(var url in scripts) 122 | if (scripts[url] == false) 123 | return; 124 | 125 | if (allCalled) 126 | SyntaxHighlighter.highlight(allParams); 127 | }; 128 | }; 129 | 130 | })(); 131 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Scripts/SyntaxHighlighter/styles/shThemeDefault.css: -------------------------------------------------------------------------------- 1 | /** 2 | * SyntaxHighlighter 3 | * http://alexgorbatchev.com/SyntaxHighlighter 4 | * 5 | * SyntaxHighlighter is donationware. If you are using it, please donate. 6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html 7 | * 8 | * @version 9 | * 3.0.83 (July 02 2010) 10 | * 11 | * @copyright 12 | * Copyright (C) 2004-2010 Alex Gorbatchev. 13 | * 14 | * @license 15 | * Dual licensed under the MIT and GPL licenses. 16 | */ 17 | .syntaxhighlighter { 18 | background-color: white !important; 19 | } 20 | .syntaxhighlighter .line.alt1 { 21 | background-color: white !important; 22 | } 23 | .syntaxhighlighter .line.alt2 { 24 | background-color: white !important; 25 | } 26 | .syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 { 27 | background-color: white !important; 28 | } 29 | .syntaxhighlighter .line.highlighted.number { 30 | color: black !important; 31 | } 32 | .syntaxhighlighter table caption { 33 | color: black !important; 34 | } 35 | .syntaxhighlighter .gutter { 36 | color: #afafaf !important; 37 | } 38 | .syntaxhighlighter .gutter .line { 39 | background-color: #E7E5DC !important; 40 | border-right: 3px solid #6ce26c !important; 41 | } 42 | .syntaxhighlighter .gutter .line.highlighted { 43 | background-color: #6ce26c !important; 44 | color: white !important; 45 | } 46 | .syntaxhighlighter.printing .line .content { 47 | border: none !important; 48 | } 49 | .syntaxhighlighter.collapsed { 50 | overflow: visible !important; 51 | } 52 | .syntaxhighlighter.collapsed .toolbar { 53 | color: blue !important; 54 | background: white !important; 55 | border: 1px solid #6ce26c !important; 56 | } 57 | .syntaxhighlighter.collapsed .toolbar a { 58 | color: blue !important; 59 | } 60 | .syntaxhighlighter.collapsed .toolbar a:hover { 61 | color: red !important; 62 | } 63 | .syntaxhighlighter .toolbar { 64 | color: white !important; 65 | display : none; 66 | background: #6ce26c !important; 67 | border: none !important; 68 | } 69 | .syntaxhighlighter .toolbar a { 70 | color: white !important; 71 | } 72 | .syntaxhighlighter .toolbar a:hover { 73 | color: black !important; 74 | } 75 | .syntaxhighlighter .plain, .syntaxhighlighter .plain a { 76 | color: black !important; 77 | } 78 | .syntaxhighlighter .comments, .syntaxhighlighter .comments a { 79 | color: #008200 !important; 80 | } 81 | .syntaxhighlighter .string, .syntaxhighlighter .string a { 82 | color: blue !important; 83 | } 84 | .syntaxhighlighter .keyword { 85 | color: #006699 !important; 86 | } 87 | .syntaxhighlighter .preprocessor { 88 | color: gray !important; 89 | } 90 | .syntaxhighlighter .variable { 91 | color: #aa7700 !important; 92 | } 93 | .syntaxhighlighter .value { 94 | color: #009900 !important; 95 | } 96 | .syntaxhighlighter .functions { 97 | color: #ff1493 !important; 98 | } 99 | .syntaxhighlighter .constants { 100 | color: #0066cc !important; 101 | } 102 | .syntaxhighlighter .script { 103 | font-weight: bold !important; 104 | color: #006699 !important; 105 | background-color: none !important; 106 | } 107 | .syntaxhighlighter .color1, .syntaxhighlighter .color1 a { 108 | color: gray !important; 109 | } 110 | .syntaxhighlighter .color2, .syntaxhighlighter .color2 a { 111 | color: #ff1493 !important; 112 | } 113 | .syntaxhighlighter .color3, .syntaxhighlighter .color3 a { 114 | color: red !important; 115 | } 116 | 117 | .syntaxhighlighter .keyword { 118 | font-weight: bold !important; 119 | } 120 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Scripts/SyntaxHighlighter/styles/shThemeDjango.css: -------------------------------------------------------------------------------- 1 | /** 2 | * SyntaxHighlighter 3 | * http://alexgorbatchev.com/SyntaxHighlighter 4 | * 5 | * SyntaxHighlighter is donationware. If you are using it, please donate. 6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html 7 | * 8 | * @version 9 | * 3.0.83 (July 02 2010) 10 | * 11 | * @copyright 12 | * Copyright (C) 2004-2010 Alex Gorbatchev. 13 | * 14 | * @license 15 | * Dual licensed under the MIT and GPL licenses. 16 | */ 17 | .syntaxhighlighter { 18 | background-color: #0a2b1d !important; 19 | } 20 | .syntaxhighlighter .line.alt1 { 21 | background-color: #0a2b1d !important; 22 | } 23 | .syntaxhighlighter .line.alt2 { 24 | background-color: #0a2b1d !important; 25 | } 26 | .syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 { 27 | background-color: #233729 !important; 28 | } 29 | .syntaxhighlighter .line.highlighted.number { 30 | color: white !important; 31 | } 32 | .syntaxhighlighter table caption { 33 | color: #f8f8f8 !important; 34 | } 35 | .syntaxhighlighter .gutter { 36 | color: #497958 !important; 37 | } 38 | .syntaxhighlighter .gutter .line { 39 | border-right: 3px solid #41a83e !important; 40 | } 41 | .syntaxhighlighter .gutter .line.highlighted { 42 | background-color: #41a83e !important; 43 | color: #0a2b1d !important; 44 | } 45 | .syntaxhighlighter.printing .line .content { 46 | border: none !important; 47 | } 48 | .syntaxhighlighter.collapsed { 49 | overflow: visible !important; 50 | } 51 | .syntaxhighlighter.collapsed .toolbar { 52 | color: #96dd3b !important; 53 | background: black !important; 54 | border: 1px solid #41a83e !important; 55 | } 56 | .syntaxhighlighter.collapsed .toolbar a { 57 | color: #96dd3b !important; 58 | } 59 | .syntaxhighlighter.collapsed .toolbar a:hover { 60 | color: white !important; 61 | } 62 | .syntaxhighlighter .toolbar { 63 | color: white !important; 64 | background: #41a83e !important; 65 | border: none !important; 66 | } 67 | .syntaxhighlighter .toolbar a { 68 | color: white !important; 69 | } 70 | .syntaxhighlighter .toolbar a:hover { 71 | color: #ffe862 !important; 72 | } 73 | .syntaxhighlighter .plain, .syntaxhighlighter .plain a { 74 | color: #f8f8f8 !important; 75 | } 76 | .syntaxhighlighter .comments, .syntaxhighlighter .comments a { 77 | color: #336442 !important; 78 | } 79 | .syntaxhighlighter .string, .syntaxhighlighter .string a { 80 | color: #9df39f !important; 81 | } 82 | .syntaxhighlighter .keyword { 83 | color: #96dd3b !important; 84 | } 85 | .syntaxhighlighter .preprocessor { 86 | color: #91bb9e !important; 87 | } 88 | .syntaxhighlighter .variable { 89 | color: #ffaa3e !important; 90 | } 91 | .syntaxhighlighter .value { 92 | color: #f7e741 !important; 93 | } 94 | .syntaxhighlighter .functions { 95 | color: #ffaa3e !important; 96 | } 97 | .syntaxhighlighter .constants { 98 | color: #e0e8ff !important; 99 | } 100 | .syntaxhighlighter .script { 101 | font-weight: bold !important; 102 | color: #96dd3b !important; 103 | background-color: none !important; 104 | } 105 | .syntaxhighlighter .color1, .syntaxhighlighter .color1 a { 106 | color: #eb939a !important; 107 | } 108 | .syntaxhighlighter .color2, .syntaxhighlighter .color2 a { 109 | color: #91bb9e !important; 110 | } 111 | .syntaxhighlighter .color3, .syntaxhighlighter .color3 a { 112 | color: #edef7d !important; 113 | } 114 | 115 | .syntaxhighlighter .comments { 116 | font-style: italic !important; 117 | } 118 | .syntaxhighlighter .keyword { 119 | font-weight: bold !important; 120 | } 121 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Scripts/SyntaxHighlighter/styles/shThemeEclipse.css: -------------------------------------------------------------------------------- 1 | /** 2 | * SyntaxHighlighter 3 | * http://alexgorbatchev.com/SyntaxHighlighter 4 | * 5 | * SyntaxHighlighter is donationware. If you are using it, please donate. 6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html 7 | * 8 | * @version 9 | * 3.0.83 (July 02 2010) 10 | * 11 | * @copyright 12 | * Copyright (C) 2004-2010 Alex Gorbatchev. 13 | * 14 | * @license 15 | * Dual licensed under the MIT and GPL licenses. 16 | */ 17 | .syntaxhighlighter { 18 | background-color: white !important; 19 | } 20 | .syntaxhighlighter .line.alt1 { 21 | background-color: white !important; 22 | } 23 | .syntaxhighlighter .line.alt2 { 24 | background-color: white !important; 25 | } 26 | .syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 { 27 | background-color: #c3defe !important; 28 | } 29 | .syntaxhighlighter .line.highlighted.number { 30 | color: white !important; 31 | } 32 | .syntaxhighlighter table caption { 33 | color: black !important; 34 | } 35 | .syntaxhighlighter .gutter { 36 | color: #787878 !important; 37 | } 38 | .syntaxhighlighter .gutter .line { 39 | border-right: 3px solid #d4d0c8 !important; 40 | } 41 | .syntaxhighlighter .gutter .line.highlighted { 42 | background-color: #d4d0c8 !important; 43 | color: white !important; 44 | } 45 | .syntaxhighlighter.printing .line .content { 46 | border: none !important; 47 | } 48 | .syntaxhighlighter.collapsed { 49 | overflow: visible !important; 50 | } 51 | .syntaxhighlighter.collapsed .toolbar { 52 | color: #3f5fbf !important; 53 | background: white !important; 54 | border: 1px solid #d4d0c8 !important; 55 | } 56 | .syntaxhighlighter.collapsed .toolbar a { 57 | color: #3f5fbf !important; 58 | } 59 | .syntaxhighlighter.collapsed .toolbar a:hover { 60 | color: #aa7700 !important; 61 | } 62 | .syntaxhighlighter .toolbar { 63 | color: #a0a0a0 !important; 64 | background: #d4d0c8 !important; 65 | border: none !important; 66 | } 67 | .syntaxhighlighter .toolbar a { 68 | color: #a0a0a0 !important; 69 | } 70 | .syntaxhighlighter .toolbar a:hover { 71 | color: red !important; 72 | } 73 | .syntaxhighlighter .plain, .syntaxhighlighter .plain a { 74 | color: black !important; 75 | } 76 | .syntaxhighlighter .comments, .syntaxhighlighter .comments a { 77 | color: #3f5fbf !important; 78 | } 79 | .syntaxhighlighter .string, .syntaxhighlighter .string a { 80 | color: #2a00ff !important; 81 | } 82 | .syntaxhighlighter .keyword { 83 | color: #7f0055 !important; 84 | } 85 | .syntaxhighlighter .preprocessor { 86 | color: #646464 !important; 87 | } 88 | .syntaxhighlighter .variable { 89 | color: #aa7700 !important; 90 | } 91 | .syntaxhighlighter .value { 92 | color: #009900 !important; 93 | } 94 | .syntaxhighlighter .functions { 95 | color: #ff1493 !important; 96 | } 97 | .syntaxhighlighter .constants { 98 | color: #0066cc !important; 99 | } 100 | .syntaxhighlighter .script { 101 | font-weight: bold !important; 102 | color: #7f0055 !important; 103 | background-color: none !important; 104 | } 105 | .syntaxhighlighter .color1, .syntaxhighlighter .color1 a { 106 | color: gray !important; 107 | } 108 | .syntaxhighlighter .color2, .syntaxhighlighter .color2 a { 109 | color: #ff1493 !important; 110 | } 111 | .syntaxhighlighter .color3, .syntaxhighlighter .color3 a { 112 | color: red !important; 113 | } 114 | 115 | .syntaxhighlighter .keyword { 116 | font-weight: bold !important; 117 | } 118 | .syntaxhighlighter .xml .keyword { 119 | color: #3f7f7f !important; 120 | font-weight: normal !important; 121 | } 122 | .syntaxhighlighter .xml .color1, .syntaxhighlighter .xml .color1 a { 123 | color: #7f007f !important; 124 | } 125 | .syntaxhighlighter .xml .string { 126 | font-style: italic !important; 127 | color: #2a00ff !important; 128 | } 129 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Scripts/SyntaxHighlighter/styles/shThemeEmacs.css: -------------------------------------------------------------------------------- 1 | /** 2 | * SyntaxHighlighter 3 | * http://alexgorbatchev.com/SyntaxHighlighter 4 | * 5 | * SyntaxHighlighter is donationware. If you are using it, please donate. 6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html 7 | * 8 | * @version 9 | * 3.0.83 (July 02 2010) 10 | * 11 | * @copyright 12 | * Copyright (C) 2004-2010 Alex Gorbatchev. 13 | * 14 | * @license 15 | * Dual licensed under the MIT and GPL licenses. 16 | */ 17 | .syntaxhighlighter { 18 | background-color: black !important; 19 | } 20 | .syntaxhighlighter .line.alt1 { 21 | background-color: black !important; 22 | } 23 | .syntaxhighlighter .line.alt2 { 24 | background-color: black !important; 25 | } 26 | .syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 { 27 | background-color: #2a3133 !important; 28 | } 29 | .syntaxhighlighter .line.highlighted.number { 30 | color: white !important; 31 | } 32 | .syntaxhighlighter table caption { 33 | color: #d3d3d3 !important; 34 | } 35 | .syntaxhighlighter .gutter { 36 | color: #d3d3d3 !important; 37 | } 38 | .syntaxhighlighter .gutter .line { 39 | border-right: 3px solid #990000 !important; 40 | } 41 | .syntaxhighlighter .gutter .line.highlighted { 42 | background-color: #990000 !important; 43 | color: black !important; 44 | } 45 | .syntaxhighlighter.printing .line .content { 46 | border: none !important; 47 | } 48 | .syntaxhighlighter.collapsed { 49 | overflow: visible !important; 50 | } 51 | .syntaxhighlighter.collapsed .toolbar { 52 | color: #ebdb8d !important; 53 | background: black !important; 54 | border: 1px solid #990000 !important; 55 | } 56 | .syntaxhighlighter.collapsed .toolbar a { 57 | color: #ebdb8d !important; 58 | } 59 | .syntaxhighlighter.collapsed .toolbar a:hover { 60 | color: #ff7d27 !important; 61 | } 62 | .syntaxhighlighter .toolbar { 63 | color: white !important; 64 | background: #990000 !important; 65 | border: none !important; 66 | } 67 | .syntaxhighlighter .toolbar a { 68 | color: white !important; 69 | } 70 | .syntaxhighlighter .toolbar a:hover { 71 | color: #9ccff4 !important; 72 | } 73 | .syntaxhighlighter .plain, .syntaxhighlighter .plain a { 74 | color: #d3d3d3 !important; 75 | } 76 | .syntaxhighlighter .comments, .syntaxhighlighter .comments a { 77 | color: #ff7d27 !important; 78 | } 79 | .syntaxhighlighter .string, .syntaxhighlighter .string a { 80 | color: #ff9e7b !important; 81 | } 82 | .syntaxhighlighter .keyword { 83 | color: aqua !important; 84 | } 85 | .syntaxhighlighter .preprocessor { 86 | color: #aec4de !important; 87 | } 88 | .syntaxhighlighter .variable { 89 | color: #ffaa3e !important; 90 | } 91 | .syntaxhighlighter .value { 92 | color: #009900 !important; 93 | } 94 | .syntaxhighlighter .functions { 95 | color: #81cef9 !important; 96 | } 97 | .syntaxhighlighter .constants { 98 | color: #ff9e7b !important; 99 | } 100 | .syntaxhighlighter .script { 101 | font-weight: bold !important; 102 | color: aqua !important; 103 | background-color: none !important; 104 | } 105 | .syntaxhighlighter .color1, .syntaxhighlighter .color1 a { 106 | color: #ebdb8d !important; 107 | } 108 | .syntaxhighlighter .color2, .syntaxhighlighter .color2 a { 109 | color: #ff7d27 !important; 110 | } 111 | .syntaxhighlighter .color3, .syntaxhighlighter .color3 a { 112 | color: #aec4de !important; 113 | } 114 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Scripts/SyntaxHighlighter/styles/shThemeFadeToGrey.css: -------------------------------------------------------------------------------- 1 | /** 2 | * SyntaxHighlighter 3 | * http://alexgorbatchev.com/SyntaxHighlighter 4 | * 5 | * SyntaxHighlighter is donationware. If you are using it, please donate. 6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html 7 | * 8 | * @version 9 | * 3.0.83 (July 02 2010) 10 | * 11 | * @copyright 12 | * Copyright (C) 2004-2010 Alex Gorbatchev. 13 | * 14 | * @license 15 | * Dual licensed under the MIT and GPL licenses. 16 | */ 17 | .syntaxhighlighter { 18 | background-color: #121212 !important; 19 | } 20 | .syntaxhighlighter .line.alt1 { 21 | background-color: #121212 !important; 22 | } 23 | .syntaxhighlighter .line.alt2 { 24 | background-color: #121212 !important; 25 | } 26 | .syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 { 27 | background-color: #2c2c29 !important; 28 | } 29 | .syntaxhighlighter .line.highlighted.number { 30 | color: white !important; 31 | } 32 | .syntaxhighlighter table caption { 33 | color: white !important; 34 | } 35 | .syntaxhighlighter .gutter { 36 | color: #afafaf !important; 37 | } 38 | .syntaxhighlighter .gutter .line { 39 | border-right: 3px solid #3185b9 !important; 40 | } 41 | .syntaxhighlighter .gutter .line.highlighted { 42 | background-color: #3185b9 !important; 43 | color: #121212 !important; 44 | } 45 | .syntaxhighlighter.printing .line .content { 46 | border: none !important; 47 | } 48 | .syntaxhighlighter.collapsed { 49 | overflow: visible !important; 50 | } 51 | .syntaxhighlighter.collapsed .toolbar { 52 | color: #3185b9 !important; 53 | background: black !important; 54 | border: 1px solid #3185b9 !important; 55 | } 56 | .syntaxhighlighter.collapsed .toolbar a { 57 | color: #3185b9 !important; 58 | } 59 | .syntaxhighlighter.collapsed .toolbar a:hover { 60 | color: #d01d33 !important; 61 | } 62 | .syntaxhighlighter .toolbar { 63 | color: white !important; 64 | background: #3185b9 !important; 65 | border: none !important; 66 | } 67 | .syntaxhighlighter .toolbar a { 68 | color: white !important; 69 | } 70 | .syntaxhighlighter .toolbar a:hover { 71 | color: #96daff !important; 72 | } 73 | .syntaxhighlighter .plain, .syntaxhighlighter .plain a { 74 | color: white !important; 75 | } 76 | .syntaxhighlighter .comments, .syntaxhighlighter .comments a { 77 | color: #696854 !important; 78 | } 79 | .syntaxhighlighter .string, .syntaxhighlighter .string a { 80 | color: #e3e658 !important; 81 | } 82 | .syntaxhighlighter .keyword { 83 | color: #d01d33 !important; 84 | } 85 | .syntaxhighlighter .preprocessor { 86 | color: #435a5f !important; 87 | } 88 | .syntaxhighlighter .variable { 89 | color: #898989 !important; 90 | } 91 | .syntaxhighlighter .value { 92 | color: #009900 !important; 93 | } 94 | .syntaxhighlighter .functions { 95 | color: #aaaaaa !important; 96 | } 97 | .syntaxhighlighter .constants { 98 | color: #96daff !important; 99 | } 100 | .syntaxhighlighter .script { 101 | font-weight: bold !important; 102 | color: #d01d33 !important; 103 | background-color: none !important; 104 | } 105 | .syntaxhighlighter .color1, .syntaxhighlighter .color1 a { 106 | color: #ffc074 !important; 107 | } 108 | .syntaxhighlighter .color2, .syntaxhighlighter .color2 a { 109 | color: #4a8cdb !important; 110 | } 111 | .syntaxhighlighter .color3, .syntaxhighlighter .color3 a { 112 | color: #96daff !important; 113 | } 114 | 115 | .syntaxhighlighter .functions { 116 | font-weight: bold !important; 117 | } 118 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Scripts/SyntaxHighlighter/styles/shThemeMDUltra.css: -------------------------------------------------------------------------------- 1 | /** 2 | * SyntaxHighlighter 3 | * http://alexgorbatchev.com/SyntaxHighlighter 4 | * 5 | * SyntaxHighlighter is donationware. If you are using it, please donate. 6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html 7 | * 8 | * @version 9 | * 3.0.83 (July 02 2010) 10 | * 11 | * @copyright 12 | * Copyright (C) 2004-2010 Alex Gorbatchev. 13 | * 14 | * @license 15 | * Dual licensed under the MIT and GPL licenses. 16 | */ 17 | .syntaxhighlighter { 18 | background-color: #222222 !important; 19 | } 20 | .syntaxhighlighter .line.alt1 { 21 | background-color: #222222 !important; 22 | } 23 | .syntaxhighlighter .line.alt2 { 24 | background-color: #222222 !important; 25 | } 26 | .syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 { 27 | background-color: #253e5a !important; 28 | } 29 | .syntaxhighlighter .line.highlighted.number { 30 | color: white !important; 31 | } 32 | .syntaxhighlighter table caption { 33 | color: lime !important; 34 | } 35 | .syntaxhighlighter .gutter { 36 | color: #38566f !important; 37 | } 38 | .syntaxhighlighter .gutter .line { 39 | border-right: 3px solid #435a5f !important; 40 | } 41 | .syntaxhighlighter .gutter .line.highlighted { 42 | background-color: #435a5f !important; 43 | color: #222222 !important; 44 | } 45 | .syntaxhighlighter.printing .line .content { 46 | border: none !important; 47 | } 48 | .syntaxhighlighter.collapsed { 49 | overflow: visible !important; 50 | } 51 | .syntaxhighlighter.collapsed .toolbar { 52 | color: #428bdd !important; 53 | background: black !important; 54 | border: 1px solid #435a5f !important; 55 | } 56 | .syntaxhighlighter.collapsed .toolbar a { 57 | color: #428bdd !important; 58 | } 59 | .syntaxhighlighter.collapsed .toolbar a:hover { 60 | color: lime !important; 61 | } 62 | .syntaxhighlighter .toolbar { 63 | color: #aaaaff !important; 64 | background: #435a5f !important; 65 | border: none !important; 66 | } 67 | .syntaxhighlighter .toolbar a { 68 | color: #aaaaff !important; 69 | } 70 | .syntaxhighlighter .toolbar a:hover { 71 | color: #9ccff4 !important; 72 | } 73 | .syntaxhighlighter .plain, .syntaxhighlighter .plain a { 74 | color: lime !important; 75 | } 76 | .syntaxhighlighter .comments, .syntaxhighlighter .comments a { 77 | color: #428bdd !important; 78 | } 79 | .syntaxhighlighter .string, .syntaxhighlighter .string a { 80 | color: lime !important; 81 | } 82 | .syntaxhighlighter .keyword { 83 | color: #aaaaff !important; 84 | } 85 | .syntaxhighlighter .preprocessor { 86 | color: #8aa6c1 !important; 87 | } 88 | .syntaxhighlighter .variable { 89 | color: aqua !important; 90 | } 91 | .syntaxhighlighter .value { 92 | color: #f7e741 !important; 93 | } 94 | .syntaxhighlighter .functions { 95 | color: #ff8000 !important; 96 | } 97 | .syntaxhighlighter .constants { 98 | color: yellow !important; 99 | } 100 | .syntaxhighlighter .script { 101 | font-weight: bold !important; 102 | color: #aaaaff !important; 103 | background-color: none !important; 104 | } 105 | .syntaxhighlighter .color1, .syntaxhighlighter .color1 a { 106 | color: red !important; 107 | } 108 | .syntaxhighlighter .color2, .syntaxhighlighter .color2 a { 109 | color: yellow !important; 110 | } 111 | .syntaxhighlighter .color3, .syntaxhighlighter .color3 a { 112 | color: #ffaa3e !important; 113 | } 114 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Scripts/SyntaxHighlighter/styles/shThemeMidnight.css: -------------------------------------------------------------------------------- 1 | /** 2 | * SyntaxHighlighter 3 | * http://alexgorbatchev.com/SyntaxHighlighter 4 | * 5 | * SyntaxHighlighter is donationware. If you are using it, please donate. 6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html 7 | * 8 | * @version 9 | * 3.0.83 (July 02 2010) 10 | * 11 | * @copyright 12 | * Copyright (C) 2004-2010 Alex Gorbatchev. 13 | * 14 | * @license 15 | * Dual licensed under the MIT and GPL licenses. 16 | */ 17 | .syntaxhighlighter { 18 | background-color: #0f192a !important; 19 | } 20 | .syntaxhighlighter .line.alt1 { 21 | background-color: #0f192a !important; 22 | } 23 | .syntaxhighlighter .line.alt2 { 24 | background-color: #0f192a !important; 25 | } 26 | .syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 { 27 | background-color: #253e5a !important; 28 | } 29 | .syntaxhighlighter .line.highlighted.number { 30 | color: #38566f !important; 31 | } 32 | .syntaxhighlighter table caption { 33 | color: #d1edff !important; 34 | } 35 | .syntaxhighlighter .gutter { 36 | color: #afafaf !important; 37 | } 38 | .syntaxhighlighter .gutter .line { 39 | border-right: 3px solid #435a5f !important; 40 | } 41 | .syntaxhighlighter .gutter .line.highlighted { 42 | background-color: #435a5f !important; 43 | color: #0f192a !important; 44 | } 45 | .syntaxhighlighter.printing .line .content { 46 | border: none !important; 47 | } 48 | .syntaxhighlighter.collapsed { 49 | overflow: visible !important; 50 | } 51 | .syntaxhighlighter.collapsed .toolbar { 52 | color: #428bdd !important; 53 | background: black !important; 54 | border: 1px solid #435a5f !important; 55 | } 56 | .syntaxhighlighter.collapsed .toolbar a { 57 | color: #428bdd !important; 58 | } 59 | .syntaxhighlighter.collapsed .toolbar a:hover { 60 | color: #1dc116 !important; 61 | } 62 | .syntaxhighlighter .toolbar { 63 | color: #d1edff !important; 64 | background: #435a5f !important; 65 | border: none !important; 66 | } 67 | .syntaxhighlighter .toolbar a { 68 | color: #d1edff !important; 69 | } 70 | .syntaxhighlighter .toolbar a:hover { 71 | color: #8aa6c1 !important; 72 | } 73 | .syntaxhighlighter .plain, .syntaxhighlighter .plain a { 74 | color: #d1edff !important; 75 | } 76 | .syntaxhighlighter .comments, .syntaxhighlighter .comments a { 77 | color: #428bdd !important; 78 | } 79 | .syntaxhighlighter .string, .syntaxhighlighter .string a { 80 | color: #1dc116 !important; 81 | } 82 | .syntaxhighlighter .keyword { 83 | color: #b43d3d !important; 84 | } 85 | .syntaxhighlighter .preprocessor { 86 | color: #8aa6c1 !important; 87 | } 88 | .syntaxhighlighter .variable { 89 | color: #ffaa3e !important; 90 | } 91 | .syntaxhighlighter .value { 92 | color: #f7e741 !important; 93 | } 94 | .syntaxhighlighter .functions { 95 | color: #ffaa3e !important; 96 | } 97 | .syntaxhighlighter .constants { 98 | color: #e0e8ff !important; 99 | } 100 | .syntaxhighlighter .script { 101 | font-weight: bold !important; 102 | color: #b43d3d !important; 103 | background-color: none !important; 104 | } 105 | .syntaxhighlighter .color1, .syntaxhighlighter .color1 a { 106 | color: #f8bb00 !important; 107 | } 108 | .syntaxhighlighter .color2, .syntaxhighlighter .color2 a { 109 | color: white !important; 110 | } 111 | .syntaxhighlighter .color3, .syntaxhighlighter .color3 a { 112 | color: #ffaa3e !important; 113 | } 114 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Scripts/SyntaxHighlighter/styles/shThemeRDark.css: -------------------------------------------------------------------------------- 1 | /** 2 | * SyntaxHighlighter 3 | * http://alexgorbatchev.com/SyntaxHighlighter 4 | * 5 | * SyntaxHighlighter is donationware. If you are using it, please donate. 6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html 7 | * 8 | * @version 9 | * 3.0.83 (July 02 2010) 10 | * 11 | * @copyright 12 | * Copyright (C) 2004-2010 Alex Gorbatchev. 13 | * 14 | * @license 15 | * Dual licensed under the MIT and GPL licenses. 16 | */ 17 | .syntaxhighlighter { 18 | background-color: #1b2426 !important; 19 | } 20 | .syntaxhighlighter .line.alt1 { 21 | background-color: #1b2426 !important; 22 | } 23 | .syntaxhighlighter .line.alt2 { 24 | background-color: #1b2426 !important; 25 | } 26 | .syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 { 27 | background-color: #323e41 !important; 28 | } 29 | .syntaxhighlighter .line.highlighted.number { 30 | color: #b9bdb6 !important; 31 | } 32 | .syntaxhighlighter table caption { 33 | color: #b9bdb6 !important; 34 | } 35 | .syntaxhighlighter .gutter { 36 | color: #afafaf !important; 37 | } 38 | .syntaxhighlighter .gutter .line { 39 | border-right: 3px solid #435a5f !important; 40 | } 41 | .syntaxhighlighter .gutter .line.highlighted { 42 | background-color: #435a5f !important; 43 | color: #1b2426 !important; 44 | } 45 | .syntaxhighlighter.printing .line .content { 46 | border: none !important; 47 | } 48 | .syntaxhighlighter.collapsed { 49 | overflow: visible !important; 50 | } 51 | .syntaxhighlighter.collapsed .toolbar { 52 | color: #5ba1cf !important; 53 | background: black !important; 54 | border: 1px solid #435a5f !important; 55 | } 56 | .syntaxhighlighter.collapsed .toolbar a { 57 | color: #5ba1cf !important; 58 | } 59 | .syntaxhighlighter.collapsed .toolbar a:hover { 60 | color: #5ce638 !important; 61 | } 62 | .syntaxhighlighter .toolbar { 63 | color: white !important; 64 | background: #435a5f !important; 65 | border: none !important; 66 | } 67 | .syntaxhighlighter .toolbar a { 68 | color: white !important; 69 | } 70 | .syntaxhighlighter .toolbar a:hover { 71 | color: #e0e8ff !important; 72 | } 73 | .syntaxhighlighter .plain, .syntaxhighlighter .plain a { 74 | color: #b9bdb6 !important; 75 | } 76 | .syntaxhighlighter .comments, .syntaxhighlighter .comments a { 77 | color: #878a85 !important; 78 | } 79 | .syntaxhighlighter .string, .syntaxhighlighter .string a { 80 | color: #5ce638 !important; 81 | } 82 | .syntaxhighlighter .keyword { 83 | color: #5ba1cf !important; 84 | } 85 | .syntaxhighlighter .preprocessor { 86 | color: #435a5f !important; 87 | } 88 | .syntaxhighlighter .variable { 89 | color: #ffaa3e !important; 90 | } 91 | .syntaxhighlighter .value { 92 | color: #009900 !important; 93 | } 94 | .syntaxhighlighter .functions { 95 | color: #ffaa3e !important; 96 | } 97 | .syntaxhighlighter .constants { 98 | color: #e0e8ff !important; 99 | } 100 | .syntaxhighlighter .script { 101 | font-weight: bold !important; 102 | color: #5ba1cf !important; 103 | background-color: none !important; 104 | } 105 | .syntaxhighlighter .color1, .syntaxhighlighter .color1 a { 106 | color: #e0e8ff !important; 107 | } 108 | .syntaxhighlighter .color2, .syntaxhighlighter .color2 a { 109 | color: white !important; 110 | } 111 | .syntaxhighlighter .color3, .syntaxhighlighter .color3 a { 112 | color: #ffaa3e !important; 113 | } 114 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Scripts/bootstrap.js: -------------------------------------------------------------------------------- 1 | // This file may be used to bootstrap the DOM via JavaScript... 2 | SyntaxHighlighter.all(); 3 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/Scripts/menu_data.js: -------------------------------------------------------------------------------- 1 | td_1 = "Overview" 2 | td_1_1 = "Library Overview" 3 | url_1_1 = "Overview/_Body.htm" 4 | td_1_2 = "Changes" 5 | url_1_2 = "Overview/Changes.htm" 6 | td_1_3 = "Example" 7 | url_1_3 = "Overview/Example.htm" 8 | td_1_4 = "FAQ" 9 | url_1_4 = "Overview/FAQ.htm" 10 | td_1_5 = "Rounding" 11 | url_1_5 = "Overview/Rounding.htm" 12 | td_1_6 = "Deprecated" 13 | url_1_6 = "Overview/Deprecated.htm" 14 | td_1_7 = "License" 15 | url_1_7 = "Overview/License.htm" 16 | 17 | td_2 = "Internet" 18 | td_2_1 = "Clipper at SourceForge" 19 | url_2_1 = "%http://sourceforge.net/projects/polyclipping/" 20 | td_2_2 = "Clipper at angusj.com" 21 | url_2_2 = "%http://www.angusj.com/delphi/clipper.php" 22 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/clipper.chm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/Documentation/clipper.chm -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Documentation/index.htm: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | Redirect 8 | 9 | 10 | If the documentation doesn't open automatically, click here. 11 | 12 | 13 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/License.txt: -------------------------------------------------------------------------------- 1 | Boost Software License - Version 1.0 - August 17th, 2003 2 | http://www.boost.org/LICENSE_1_0.txt 3 | 4 | Permission is hereby granted, free of charge, to any person or organization 5 | obtaining a copy of the software and accompanying documentation covered by 6 | this license (the "Software") to use, reproduce, display, distribute, 7 | execute, and transmit the Software, and to prepare derivative works of the 8 | Software, and to permit third-parties to whom the Software is furnished to 9 | do so, all subject to the following: 10 | 11 | The copyright notices in the Software and this entire statement, including 12 | the above license grant, this restriction and the following disclaimer, 13 | must be included in all copies of the Software, in whole or in part, and 14 | all derivative works of the Software, unless such copies or derivative 15 | works are solely in the form of machine-executable object code generated by 16 | a source language processor. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT 21 | SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE 22 | FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, 23 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 24 | DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Third Party/Flash/AS3_flash_readme.txt: -------------------------------------------------------------------------------- 1 | An AS3 Flash port written by Chris Denham: 2 | https://github.com/ChrisDenham/PolygonClipper.AS3 3 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Third Party/Go/Go_readme.txt: -------------------------------------------------------------------------------- 1 | An AS3 Flash port written by Chris Tessum: 2 | https://github.com/ctessum/go.clipper 3 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Third Party/Haskell/Haskell_readme.txt: -------------------------------------------------------------------------------- 1 | 2 | An Haskell module written by Chetan Taralekar 3 | that wraps the Clipper library can be downloaded from: 4 | http://hackage.haskell.org/package/clipper 5 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Third Party/Java/java_readme.txt: -------------------------------------------------------------------------------- 1 | 2 | Tobias Mahlmann < t.mahlmann@gmail.com > 3 | has written a java translation of Clipper 4 | 5 | http://www.lighti.de/projects/polygon-clipper-for-java/ -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Third Party/LuaJIT/LuaJIT_readme.txt: -------------------------------------------------------------------------------- 1 | http://www.freelists.org/post/luajit/binding-for-clipper-polygon-clipping-library -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Third Party/Matlab/#matlab_readme.txt#: -------------------------------------------------------------------------------- 1 | http://mathworks.com/matlabcentral/fileexchange/61329-new-polygon-clipping-and-offsetting -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Third Party/Matlab/matlab_readme.txt: -------------------------------------------------------------------------------- 1 | http://mathworks.com/matlabcentral/fileexchange/61329-new-polygon-clipping-and-offsetting -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Third Party/ObjectiveC/objectivec_readme.txt: -------------------------------------------------------------------------------- 1 | 2 | An Objective C wrapper for Clipper by John Swensen (http://www.swengames.com/) can be downloaded from: 3 | 4 | https://github.com/jpswensen/ClipperCocoa -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Third Party/perl/perl_readme.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/Third Party/perl/perl_readme.txt -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Third Party/python/python_readme.txt: -------------------------------------------------------------------------------- 1 | 2 | The clipper.py file included in this distribution contains a **very old** version of Clipper. 3 | 4 | clipper.py was really just an exercise to teach myself Python and I realised very quickly that it wouldn't be possible for me to maintain 4 parallel translations of Clipper while I continued to improve it. Also, given that the Python code is about 100 times slower than compiled versions of Clipper, I would recommend compiling Clipper and wrapping it in a Python extension (see below). 5 | 6 | Pyclipper: a Python package that provides an interface to the C++ compiled Clipper Library. 7 | https://pypi.python.org/pypi/pyclipper 8 | https://github.com/greginvm/pyclipper 9 | 10 | A much older Python package can be found here: 11 | https://sites.google.com/site/maxelsbackyard/home/pyclipper 12 | 13 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/Third Party/ruby/ruby_readme.txt: -------------------------------------------------------------------------------- 1 | A Ruby module written by Mike Owens 2 | that wraps the Clipper library can be downloaded from: 3 | 4 | http://github.com/mieko/rbclipper -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/cpp/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | CMAKE_MINIMUM_REQUIRED(VERSION 2.6.0) 2 | PROJECT(polyclipping) 3 | 4 | SET(CMAKE_BUILD_TYPE "Release" CACHE STRING "Release type") 5 | # The header name clipper.hpp is too generic, so install in a subdirectory 6 | SET(CMAKE_INSTALL_INCDIR "${CMAKE_INSTALL_PREFIX}/include/polyclipping") 7 | SET(CMAKE_INSTALL_LIBDIR "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}") 8 | SET(CMAKE_INSTALL_PKGCONFIGDIR "${CMAKE_INSTALL_PREFIX}/share/pkgconfig") 9 | SET(PCFILE "${CMAKE_CURRENT_BINARY_DIR}/polyclipping.pc") 10 | 11 | SET(BUILD_SHARED_LIBS ON CACHE BOOL 12 | "Build shared libraries (.dll/.so) instead of static ones (.lib/.a)") 13 | ADD_LIBRARY(polyclipping clipper.cpp) 14 | 15 | CONFIGURE_FILE (polyclipping.pc.cmakein "${PCFILE}" @ONLY) 16 | 17 | INSTALL (FILES clipper.hpp DESTINATION "${CMAKE_INSTALL_INCDIR}") 18 | INSTALL (TARGETS polyclipping LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}") 19 | INSTALL (FILES "${PCFILE}" DESTINATION "${CMAKE_INSTALL_PKGCONFIGDIR}") 20 | 21 | SET_TARGET_PROPERTIES(polyclipping PROPERTIES VERSION 22.0.0 SOVERSION 22 ) 22 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/cpp/clipper.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/cpp/clipper.cpp -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/cpp/cpp_agg/clipper_test.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/cpp/cpp_agg/clipper_test.exe -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/cpp/cpp_agg/clipper_test.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 11.00 3 | # Visual C++ Express 2010 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "clipper_test", "clipper_test.vcxproj", "{4DF13A7A-6137-E76C-8C62-F591D0E4B69F}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Win32 = Debug|Win32 9 | Release|Win32 = Release|Win32 10 | EndGlobalSection 11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 12 | {4DF13A7A-6137-E76C-8C62-F591D0E4B69F}.Debug|Win32.ActiveCfg = Debug|Win32 13 | {4DF13A7A-6137-E76C-8C62-F591D0E4B69F}.Debug|Win32.Build.0 = Debug|Win32 14 | {4DF13A7A-6137-E76C-8C62-F591D0E4B69F}.Release|Win32.ActiveCfg = Release|Win32 15 | {4DF13A7A-6137-E76C-8C62-F591D0E4B69F}.Release|Win32.Build.0 = Release|Win32 16 | EndGlobalSection 17 | GlobalSection(SolutionProperties) = preSolution 18 | HideSolutionNode = FALSE 19 | EndGlobalSection 20 | EndGlobal 21 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/cpp/cpp_agg/icon.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/cpp/cpp_agg/icon.res -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/cpp/cpp_cairo/Cairo Resources.txt: -------------------------------------------------------------------------------- 1 | http://cairographics.org/ 2 | 3 | The Windows dynamic linked libraries necessary to run Cairo can be downloaded from 4 | http://www.gtk.org/download/win32.php 5 | All the dlls listed under the heading "Required third party dependencies" are 6 | required except gettext-runtime.dll. 7 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/cpp/cpp_cairo/cairo.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 11.00 3 | # Visual C++ Express 2010 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cairo", "cairo.vcxproj", "{6AFBCA2B-9262-6D28-7506-E13747347388}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Win32 = Debug|Win32 9 | Release|Win32 = Release|Win32 10 | EndGlobalSection 11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 12 | {6AFBCA2B-9262-6D28-7506-E13747347388}.Debug|Win32.ActiveCfg = Debug|Win32 13 | {6AFBCA2B-9262-6D28-7506-E13747347388}.Debug|Win32.Build.0 = Debug|Win32 14 | {6AFBCA2B-9262-6D28-7506-E13747347388}.Release|Win32.ActiveCfg = Release|Win32 15 | {6AFBCA2B-9262-6D28-7506-E13747347388}.Release|Win32.Build.0 = Release|Win32 16 | EndGlobalSection 17 | GlobalSection(SolutionProperties) = preSolution 18 | HideSolutionNode = FALSE 19 | EndGlobalSection 20 | EndGlobal 21 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/cpp/cpp_cairo/cairo_clipper.hpp: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * * 3 | * Author : Angus Johnson * 4 | * Version : 1.1 * 5 | * Date : 4 April 2011 * 6 | * Copyright : Angus Johnson 2010-2011 * 7 | * * 8 | * License: * 9 | * Use, modification & distribution is subject to Boost Software License Ver 1. * 10 | * http://www.boost.org/LICENSE_1_0.txt * 11 | * * 12 | * Modified by Mike Owens to support coordinate transformation * 13 | *******************************************************************************/ 14 | 15 | #ifndef CLIPPER_CAIRO_CLIPPER_HPP 16 | #define CLIPPER_CAIRO_CLIPPER_HPP 17 | 18 | #include "clipper.hpp" 19 | 20 | typedef struct _cairo cairo_t; 21 | 22 | namespace ClipperLib { 23 | namespace cairo { 24 | 25 | enum Transform { 26 | tNone, 27 | tUserToDevice, 28 | tDeviceToUser 29 | }; 30 | 31 | //nb: Since Clipper only accepts integer coordinates, fractional values have to 32 | //be scaled up and down when being passed to and from Clipper. This is easily 33 | //accomplished by setting the scaling factor (10^x) in the following functions. 34 | //When scaling, remember that on most platforms, integer is only a 32bit value. 35 | void cairo_to_clipper(cairo_t* cr, 36 | ClipperLib::Paths &pg, 37 | int scaling_factor = 0, 38 | Transform transform = tNone); 39 | 40 | void clipper_to_cairo(const ClipperLib::Paths &pg, 41 | cairo_t* cr, 42 | int scaling_factor = 0, 43 | Transform transform = tNone); 44 | } 45 | 46 | class clipperCairoException : public std::exception 47 | { 48 | public: 49 | clipperCairoException(const char* description) 50 | throw(): std::exception(), m_description (description) {} 51 | virtual ~clipperCairoException() throw() {} 52 | virtual const char* what() const throw() {return m_description.c_str();} 53 | private: 54 | std::string m_description; 55 | }; 56 | } 57 | 58 | #endif 59 | 60 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/cpp/cpp_cairo/libcairo-2.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/cpp/cpp_cairo/libcairo-2.lib -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/cpp/cpp_console/clipper_console_demo.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/cpp/cpp_console/clipper_console_demo.exe -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/cpp/cpp_console/clipper_console_demo.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 11.00 3 | # Visual C++ Express 2010 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "clipper_console_demo", "clipper_console_demo.vcxproj", "{0710EFB8-6D8B-4DF1-9D14-907AE3857FE4}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Win32 = Debug|Win32 9 | Release|Win32 = Release|Win32 10 | EndGlobalSection 11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 12 | {0710EFB8-6D8B-4DF1-9D14-907AE3857FE4}.Debug|Win32.ActiveCfg = Debug|Win32 13 | {0710EFB8-6D8B-4DF1-9D14-907AE3857FE4}.Debug|Win32.Build.0 = Debug|Win32 14 | {0710EFB8-6D8B-4DF1-9D14-907AE3857FE4}.Release|Win32.ActiveCfg = Release|Win32 15 | {0710EFB8-6D8B-4DF1-9D14-907AE3857FE4}.Release|Win32.Build.0 = Release|Win32 16 | EndGlobalSection 17 | GlobalSection(SolutionProperties) = preSolution 18 | HideSolutionNode = FALSE 19 | EndGlobalSection 20 | EndGlobal 21 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/cpp/cpp_opengl/clipper_demo.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/cpp/cpp_opengl/clipper_demo.exe -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/cpp/cpp_opengl/clipper_demo.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 11.00 3 | # Visual C++ Express 2010 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "clipper_demo", "clipper_demo.vcxproj", "{4D48A928-F288-40F9-9FA0-4AC650602636}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Win32 = Debug|Win32 9 | Release|Win32 = Release|Win32 10 | EndGlobalSection 11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 12 | {4D48A928-F288-40F9-9FA0-4AC650602636}.Debug|Win32.ActiveCfg = Debug|Win32 13 | {4D48A928-F288-40F9-9FA0-4AC650602636}.Debug|Win32.Build.0 = Debug|Win32 14 | {4D48A928-F288-40F9-9FA0-4AC650602636}.Release|Win32.ActiveCfg = Release|Win32 15 | {4D48A928-F288-40F9-9FA0-4AC650602636}.Release|Win32.Build.0 = Release|Win32 16 | EndGlobalSection 17 | GlobalSection(SolutionProperties) = preSolution 18 | HideSolutionNode = FALSE 19 | EndGlobalSection 20 | EndGlobal 21 | -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/cpp/cpp_opengl/icon.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/cpp/cpp_opengl/icon.res -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/cpp/cpp_opengl/main.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/cpp/cpp_opengl/main.cpp -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/cpp/cpp_opengl/menu.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/private/clipper_ver6.4.2/cpp/cpp_opengl/menu.res -------------------------------------------------------------------------------- /private/clipper_ver6.4.2/cpp/polyclipping.pc.cmakein: -------------------------------------------------------------------------------- 1 | prefix=@CMAKE_INSTALL_PREFIX@ 2 | exec_prefix=@CMAKE_INSTALL_PREFIX@ 3 | libdir=@CMAKE_INSTALL_LIBDIR@ 4 | sharedlibdir=@CMAKE_INSTALL_LIBDIR@ 5 | includedir=@CMAKE_INSTALL_INCDIR@ 6 | 7 | Name: polyclipping 8 | Description: polygon clipping library 9 | Version: @VERSION@ 10 | 11 | Requires: 12 | Libs: -L${libdir} -L${sharedlibdir} -lpolyclipping 13 | Cflags: -I${includedir} 14 | -------------------------------------------------------------------------------- /test/conservation_test.m: -------------------------------------------------------------------------------- 1 | classdef conservation_test < matlab.unittest.TestCase 2 | % Creates tests for collisions to make sure energy is not created 3 | 4 | properties (TestParameter) 5 | x1 = [2 2 5 5]*1e4; y1 = [2 5 5 2]*1e4; 6 | x2 = [6 6 9 9]*1e4; y2 = [2 5 5 2]*1e4; 7 | x3 = [5.5 5.25 5.75]*1e4; y3 = [2 4 4]*1e4; 8 | end 9 | 10 | methods (Test) 11 | function testEnergyConservation(x1,y1,x2,y2,x3,y3) 12 | ConvexPoly(1) = polyshape(x1,y1); 13 | ConvexPoly(2) = polyshape(x2,y2); 14 | ConvexPoly(3) = polyshape(x3,y3); 15 | load('FloeShapes.mat') 16 | complex1 = poly(5); complex2 = poly(4); 17 | complex2 = translate(complex2,-[1e4 4e4]); 18 | height.mean = 0.25; 19 | height.delta = 0; 20 | 21 | %% Two blocks crashing head on - no rotation 22 | Floe1 = initialize_floe_values(ConvexPoly(1), height); Floe1.Ui = 0.15; Floe1.Vi = 0.02; 23 | Floe2 = initialize_floe_values(ConvexPoly(2), height); Floe2.Ui = -0.1; Floe2.Vi = 0.02; 24 | 25 | [K,~]=Subzero_conservation([Floe1;Floe2],0); 26 | assert(K(end)/K(1)<1) 27 | 28 | %% Two blocks crashing offset - rotation 29 | Floe1 = initialize_floe_values(translate(poly1,[0 1e4]), height); Floe1.Ui = 0.11; Floe1.Vi = 0.02; 30 | Floe2 = initialize_floe_values(poly2, height); Floe2.Ui = -0.1; Floe2.Vi = 0.02; 31 | 32 | [K,~]=Subzero_conservation([Floe1;Floe2],0); 33 | assert(K(end)/K(1)<1) 34 | 35 | %% Two rectangular boxes with a triangle inbetween causing rotation 36 | Floe1 = initialize_floe_values(poly1, height); Floe1.Ui = 0.11; Floe1.Vi = 0.001; 37 | Floe2 = initialize_floe_values(poly2, height); Floe2.Ui = -0.1; Floe2.Vi = 0.001; 38 | Floe3 = initialize_floe_values(poly3, height); Floe3.Ui = -0; Floe3.Vi = 0.001; 39 | 40 | [K,~]=Subzero_conservation([Floe1;Floe2;Floe3],0); 41 | assert(K(end)/K(1)<1) 42 | 43 | %% Two complex (many-sided, non-convex) floes hitting 44 | Floe1 = initialize_floe_values(complex1, height); Floe1.Ui = -0.11; Floe1.Vi = 0.02; 45 | Floe2 = initialize_floe_values(complex2, height); Floe2.Ui = 0.1; Floe2.Vi = 0.02; 46 | 47 | [K,~]=Subzero_conservation([Floe1;Floe2],0); 48 | assert(K(end)/K(1)<1) 49 | 50 | %% One non-convex block hits the wall 51 | Floe1 = initialize_floe_values(translate(complex1,[7.75e4 0]), height); Floe1.Ui = 0.11; Floe1.Vi = 0.02; 52 | 53 | [K,~]=Subzero_conservation(Floe1,0); 54 | assert(K(end)/K(1)<1) 55 | end 56 | end 57 | 58 | end -------------------------------------------------------------------------------- /test/test_conservation/FloeShapes.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/test/test_conservation/FloeShapes.mat -------------------------------------------------------------------------------- /test/test_conservation/Modulus.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/test/test_conservation/Modulus.mat -------------------------------------------------------------------------------- /validation_cases/Nares/large.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/validation_cases/Nares/large.tar.gz -------------------------------------------------------------------------------- /validation_cases/Nares/nares_10_islands.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/validation_cases/Nares/nares_10_islands.tar.gz -------------------------------------------------------------------------------- /validation_cases/Nares/nares_10_no_islands.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/validation_cases/Nares/nares_10_no_islands.tar.gz -------------------------------------------------------------------------------- /validation_cases/Nares/nares_15_islands.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/validation_cases/Nares/nares_15_islands.tar.gz -------------------------------------------------------------------------------- /validation_cases/Nares/nares_15_no_islands.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/validation_cases/Nares/nares_15_no_islands.tar.gz -------------------------------------------------------------------------------- /validation_cases/Nares/nares_5_islands.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/validation_cases/Nares/nares_5_islands.tar.gz -------------------------------------------------------------------------------- /validation_cases/Nares/nares_5_no_islands.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/validation_cases/Nares/nares_5_no_islands.tar.gz -------------------------------------------------------------------------------- /validation_cases/Nares/small.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/validation_cases/Nares/small.tar.gz -------------------------------------------------------------------------------- /validation_cases/nares.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/validation_cases/nares.tar.gz -------------------------------------------------------------------------------- /validation_cases/uniaxial.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/validation_cases/uniaxial.tar.gz -------------------------------------------------------------------------------- /validation_cases/winter.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeaIce-Math/SubZero/31aefe4cddde11cb124fd7dac6bc31379eb291fd/validation_cases/winter.tar.gz --------------------------------------------------------------------------------