changeset 586:97b9a0023d38 feature/grids

Add multiblock contour plot
author Jonatan Werpers <jonatan@werpers.com>
date Fri, 08 Sep 2017 14:47:13 +0200
parents 6e6da40091b7
children 25fdc7a625b6 4422c4476650 f6ada1719420
files +multiblock/Contour.m
diffstat 1 files changed, 65 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/+multiblock/Contour.m	Fri Sep 08 14:47:13 2017 +0200
@@ -0,0 +1,65 @@
+classdef Contour < handle
+    properties
+        grid
+        contours
+        nContours
+
+        ZData
+        CData
+
+    end
+
+    methods
+        function obj = Contour(g, gf, nContours)
+            obj.grid = g;
+            obj.nContours = nContours;
+
+            coords = obj.grid.points();
+            X = obj.grid.funcToPlotMatrices(coords(:,1));
+            Y = obj.grid.funcToPlotMatrices(coords(:,2));
+
+            V = obj.grid.funcToPlotMatrices(gf);
+
+
+            holdState = ishold();
+            hold on
+
+            contours = {1, obj.grid.nBlocks};
+            for i = 1:obj.grid.nBlocks
+                [~, contours{i}] = contour(X{i}, Y{i}, V{i},obj.nContours);
+                contours{i}.LevelList = contours{1}.LevelList;
+            end
+
+            if holdState == false
+                hold off
+            end
+
+            obj.contours = [contours{:}];
+
+            obj.ZData = gf;
+            obj.CData = gf;
+        end
+
+        function set(obj, propertyName, propertyValue)
+            set(obj.contours, propertyName, propertyValue);
+        end
+
+        function obj = set.ZData(obj, gf)
+            obj.ZData = gf;
+
+            V = obj.grid.funcToPlotMatrices(gf);
+            for i = 1:obj.grid.nBlocks
+                obj.contours(i).ZData = V{i};
+            end
+        end
+
+        function obj = set.CData(obj, gf)
+            obj.CData = gf;
+
+            V = obj.grid.funcToPlotMatrices(gf);
+            for i = 1:obj.grid.nBlocks
+                obj.contours(i).CData = V{i};
+            end
+        end
+    end
+end