From 7c3082e934b79f26afaa53c8b72cfbaaa76bdae4 Mon Sep 17 00:00:00 2001
From: David Phillips <dbphillipsnz@gmail.com>
Date: Tue, 31 May 2016 12:53:40 +1200
Subject: Push position+scale changes to burning ship and as a result, remove
 specific algorithm for lattice bship

---
 algorithms/burning-ship-lattice.c | 65 ---------------------------------------
 algorithms/burning-ship.c         | 16 +++++-----
 2 files changed, 9 insertions(+), 72 deletions(-)
 delete mode 100644 algorithms/burning-ship-lattice.c

(limited to 'algorithms')

diff --git a/algorithms/burning-ship-lattice.c b/algorithms/burning-ship-lattice.c
deleted file mode 100644
index 6a7241e..0000000
--- a/algorithms/burning-ship-lattice.c
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Part of fractal-gen - Generate iteration-based fractals in PNM format
- * Copyright (c) 2016 David Phillips <dbphillipsnz@gmail.com>
- * All rights reserved
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
- */
-
-#include "common.h"
-
-void
-*generate_burning_ship_lattice_section(void *section)
-{
-	data_section *d = (data_section*)section;
-	unsigned int x = 0;
-	unsigned int y = 0;
-	unsigned int i = 0;;
-	double a = 0;
-	double b = 0;
-	double complex z = 0;
-	double complex c = 0;
-	double size_units = 0.09f;
-	double top = -0.082f;
-	double left = -1.8f;
-
-	/* FIXME document this */
-	b = clust_id*(size_units/size)+top; /* FIXME document this */
-
-	for (y = clust_id; y < size; y+=clust_total) {
-		a = d->core*(size_units/size)+left;
-		for (x = d->core; x < size; x += cores) {
-			z = 0;
-			c = a+I*b;
-			for (i = 0; i < iterat; i++) {
-				if (cabs(z) >= 2)
-					break;
-
-				z = cpow( fabs(creal(z)) + I*fabs(cimag(z)) , power) + c;
-			}
-			d->data[d->idx++] = (255*i)/iterat;
-			a += cores*(size_units/size);
-		}
-		b += clust_total*(size_units/size);
-	}
-	return NULL;
-}
diff --git a/algorithms/burning-ship.c b/algorithms/burning-ship.c
index 56323ac..7e27e4b 100644
--- a/algorithms/burning-ship.c
+++ b/algorithms/burning-ship.c
@@ -31,18 +31,20 @@ void
 *generate_burning_ship_section(void *section)
 {
 	data_section *d = (data_section*)section;
+	struct frame *f = &(d->parent_frame);
 	unsigned int x,y,i;
 	double a,b;
 	double complex z,c;
-	double size_units = 3.5f;
-	double top = -2.2f;
-	double left = -2.2f;
+
+	defaultsd(&d->parent_frame.scale, 3.5f);
+	defaultsd(&d->parent_frame.top, -2.2f);
+	defaultsd(&d->parent_frame.left, -2.2f);
 
 	/* FIXME document this */
-	b = clust_id*(size_units/size)+top; /* FIXME document this */
+	b = clust_id*(f->scale/size)+f->top; /* FIXME document this */
 
 	for (y = clust_id; y < size; y += clust_total) {
-		a = d->core*(size_units/size)+left;
+		a = d->core*(f->scale/size)+f->left;
 		for (x = d->core; x < size; x += cores) {
 			z = 0;
 			c = a+I*b;
@@ -53,9 +55,9 @@ void
 				z = cpow( fabs(creal(z)) + I*fabs(cimag(z)) , power) + c;
 			}
 			d->data[d->idx++] = (255*i)/iterat;
-			a += cores*(size_units/size);
+			a += cores*(f->scale/size);
 		}
-		b += clust_total*(size_units/size);
+		b += clust_total*(f->scale/size);
 	}
 	return NULL;
 }
-- 
cgit v1.1