From 56cc59cf44ec64440ba4d1c0d005196195c758e6 Mon Sep 17 00:00:00 2001 From: hugues Date: Sat, 25 Mar 2006 15:07:51 +0000 Subject: Nettoyage du repository glagen git-svn-id: file:///usr/local/opt/svn/repos/glagen@12 0f7e0d06-a6f9-0310-a55f-d5f984f55e4c --- trunk/glagen/3d/isosahedron.cc | 220 ----------------------------------------- 1 file changed, 220 deletions(-) delete mode 100644 trunk/glagen/3d/isosahedron.cc (limited to 'trunk/glagen/3d/isosahedron.cc') diff --git a/trunk/glagen/3d/isosahedron.cc b/trunk/glagen/3d/isosahedron.cc deleted file mode 100644 index 1f3fc71..0000000 --- a/trunk/glagen/3d/isosahedron.cc +++ /dev/null @@ -1,220 +0,0 @@ -//============================================================================= -// -// Glagen : a planet sized landscape generator -// Copyright (C) 2002 Julien Guertault, Hugues Hiegel, Meng-Tih Lam -// -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 -// of the License, or (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -// -//============================================================================= -// -// Glagen : GPL LAndscape GENerator -// -// isosahedron.cc for Glagen : made by Zavie (Julien Guertault) -// -// www.glagen.org -// -//============================================================================= - -#include -#include "data_glagen.hh" -#include "dot.hh" -#include "triangle.hh" - -// The regular polyhedron we use to create the planet is an isosahedron : -// 20 triangular faces, 12 vertex and 30 edges -// -// Vertex coordinates : -// -// { 0, 1, 0 } = P0 -// { sqrtf((5 - sqrtf(5)) / 10), (sqrtf(5)) / 5, -(5 + sqrtf(5)) / 10 } = P1 -// { -sqrtf((5 - sqrtf(5)) / 10), (sqrtf(5)) / 5, -(5 + sqrtf(5)) / 10 } = P2 -// { -sqrtf((5 + sqrtf(5)) / 10), (sqrtf(5)) / 5, (5 - sqrtf(5)) / 10 } = P3 -// { 0, (sqrtf(5)) / 5, 2 x ((sqrtf(5)) / 5) } = P4 -// { sqrtf((5 + sqrtf(5)) / 10), (sqrtf(5)) / 5, (5 - sqrtf(5)) / 10 } = P5 -// { sqrtf((5 - sqrtf(5)) / 10), -(sqrtf(5)) / 5, (5 + sqrtf(5)) / 10 } = P6 -// { -sqrtf((5 - sqrtf(5)) / 10), -(sqrtf(5)) / 5, (5 + sqrtf(5)) / 10 } = P7 -// { -sqrtf((5 + sqrtf(5)) / 10), -(sqrtf(5)) / 5, -(5 - sqrtf(5)) / 10 } = P8 -// { 0, -(sqrtf(5)) / 5, -2 x ((sqrtf(5)) / 5) } = P9 -// { sqrtf((5 + sqrtf(5)) / 10), -(sqrtf(5)) / 5, -(5 + sqrtf(5)) / 10 } = P10 -// { 0, -1, 0 } = P11 -// -// Faces : -// -// F0 = P0, P1, P2 -// F1 = P0, P2, P3 -// F2 = P0, P3, P4 -// F3 = P0, P4, P5 -// F4 = P0, P5, P1 -// F5 = P2, P1, P9 -// F6 = P8, P2, P9 -// F7 = P3, P2, P8 -// F8 = P7, P3, P8 -// F9 = P4, P3, P7 -// F10 = P6, P4, P7 -// F11 = P5, P4, P6 -// F12 = P10, P5, P6 -// F13 = P10, P1, P5 -// F14 = P9, P1, P10 -// F15 = P11, P8, P9 -// F16 = P11, P7, P8 -// F17 = P11, P6, P7 -// F18 = P11, P10, P6 -// F19 = P11, P9, P10 - -Triangle *isosahedron (float size) -{ - Dot *vertex[12]; - Triangle *face[20]; - float expr_1 = size * sqrtf((5 + sqrtf(5)) / 10); - float expr_2 = size * sqrtf((5 - sqrtf(5)) / 10); - float expr_3 = size * (5 + sqrtf(5)) / 10; - float expr_4 = size * (5 - sqrtf(5)) / 10; - float expr_5 = size * (sqrtf(5)) / 5; - - // Creation of the vertex - vertex[0] = new Dot ( 0, 1, 0); - vertex[1] = new Dot ( expr_2, expr_5, -expr_3); - vertex[2] = new Dot (-expr_2, expr_5, -expr_3); - vertex[3] = new Dot (-expr_1, expr_5, expr_4); - vertex[4] = new Dot ( 0, expr_5, 2 * expr_5); - vertex[5] = new Dot ( expr_1, expr_5, expr_4); - vertex[6] = new Dot ( expr_2, -expr_5, expr_3); - vertex[7] = new Dot (-expr_2, -expr_5, expr_3); - vertex[8] = new Dot (-expr_1, -expr_5, -expr_4); - vertex[9] = new Dot ( 0, -expr_5, -2 * expr_5); - vertex[10] = new Dot ( expr_1, -expr_5, -expr_4); - vertex[11] = new Dot ( 0, -1, 0); - - // Creation of the triangles - face[0] = new Triangle (vertex[0], vertex[1], vertex[2], NULL); - face[1] = new Triangle (vertex[0], vertex[2], vertex[3], NULL); - face[2] = new Triangle (vertex[0], vertex[3], vertex[4], NULL); - face[3] = new Triangle (vertex[0], vertex[4], vertex[5], NULL); - face[4] = new Triangle (vertex[0], vertex[5], vertex[1], NULL); - face[5] = new Triangle (vertex[2], vertex[1], vertex[9], NULL); - face[6] = new Triangle (vertex[8], vertex[2], vertex[9], NULL); - face[7] = new Triangle (vertex[3], vertex[2], vertex[8], NULL); - face[8] = new Triangle (vertex[7], vertex[3], vertex[8], NULL); - face[9] = new Triangle (vertex[4], vertex[3], vertex[7], NULL); - face[10] = new Triangle (vertex[6], vertex[4], vertex[7], NULL); - face[11] = new Triangle (vertex[5], vertex[4], vertex[6], NULL); - face[12] = new Triangle (vertex[10], vertex[5], vertex[6], NULL); - face[13] = new Triangle (vertex[10], vertex[1], vertex[5], NULL); - face[14] = new Triangle (vertex[9], vertex[1], vertex[10], NULL); - face[15] = new Triangle (vertex[11], vertex[8], vertex[9], NULL); - face[16] = new Triangle (vertex[11], vertex[7], vertex[8], NULL); - face[17] = new Triangle (vertex[11], vertex[6], vertex[7], NULL); - face[18] = new Triangle (vertex[11], vertex[10], vertex[6], NULL); - face[19] = new Triangle (vertex[11], vertex[9], vertex[10], NULL); - - // Setting up of the connexity - face[0]->Make_connexity (face[1]); - face[0]->Make_connexity (face[4]); - face[0]->Make_connexity (face[5]); - - face[1]->Make_connexity (face[0]); - face[1]->Make_connexity (face[2]); - face[1]->Make_connexity (face[7]); - - face[2]->Make_connexity (face[1]); - face[2]->Make_connexity (face[3]); - face[2]->Make_connexity (face[9]); - - face[3]->Make_connexity (face[2]); - face[3]->Make_connexity (face[4]); - face[3]->Make_connexity (face[11]); - - face[4]->Make_connexity (face[0]); - face[4]->Make_connexity (face[3]); - face[4]->Make_connexity (face[13]); - - face[5]->Make_connexity (face[0]); - face[5]->Make_connexity (face[6]); - face[5]->Make_connexity (face[14]); - - face[6]->Make_connexity (face[5]); - face[6]->Make_connexity (face[7]); - face[6]->Make_connexity (face[15]); - - face[7]->Make_connexity (face[1]); - face[7]->Make_connexity (face[6]); - face[7]->Make_connexity (face[8]); - - face[8]->Make_connexity (face[7]); - face[8]->Make_connexity (face[9]); - face[8]->Make_connexity (face[16]); - - face[9]->Make_connexity (face[2]); - face[9]->Make_connexity (face[8]); - face[9]->Make_connexity (face[10]); - - face[10]->Make_connexity (face[9]); - face[10]->Make_connexity (face[11]); - face[10]->Make_connexity (face[17]); - - face[11]->Make_connexity (face[3]); - face[11]->Make_connexity (face[10]); - face[11]->Make_connexity (face[12]); - - face[12]->Make_connexity (face[11]); - face[12]->Make_connexity (face[13]); - face[12]->Make_connexity (face[18]); - - face[13]->Make_connexity (face[4]); - face[13]->Make_connexity (face[12]); - face[13]->Make_connexity (face[14]); - - face[14]->Make_connexity (face[5]); - face[14]->Make_connexity (face[13]); - face[14]->Make_connexity (face[19]); - - face[15]->Make_connexity (face[6]); - face[15]->Make_connexity (face[16]); - face[15]->Make_connexity (face[19]); - - face[16]->Make_connexity (face[8]); - face[16]->Make_connexity (face[15]); - face[16]->Make_connexity (face[17]); - - face[17]->Make_connexity (face[10]); - face[17]->Make_connexity (face[16]); - face[17]->Make_connexity (face[18]); - - face[18]->Make_connexity (face[12]); - face[18]->Make_connexity (face[17]); - face[18]->Make_connexity (face[19]); - - face[19]->Make_connexity (face[14]); - face[19]->Make_connexity (face[15]); - face[19]->Make_connexity (face[18]); - - return face[0]; -} - -void split_all (Triangle *triangle) -{ - if (triangle->Is_checked ()) - return; - triangle->Checked (); - - triangle->Split (); - - if (triangle->Neighbor_ab () != 0) - split_all (triangle->Neighbor_ab ()); - if (triangle->Neighbor_bc () != 0) - split_all (triangle->Neighbor_bc ()); - if (triangle->Neighbor_ca () != 0) - split_all (triangle->Neighbor_ca ()); -} -- cgit v1.2.3