My Project
 All Classes Files Functions Variables Enumerations Pages
triangle_mesh_cloud.h
Go to the documentation of this file.
1 /**************************************************************************/
2 /* Copyright 2009 Tim Day */
3 /* */
4 /* This file is part of Fracplanet */
5 /* */
6 /* Fracplanet is free software: you can redistribute it and/or modify */
7 /* it under the terms of the GNU General Public License as published by */
8 /* the Free Software Foundation, either version 3 of the License, or */
9 /* (at your option) any later version. */
10 /* */
11 /* Fracplanet is distributed in the hope that it will be useful, */
12 /* but WITHOUT ANY WARRANTY; without even the implied warranty of */
13 /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
14 /* GNU General Public License for more details. */
15 /* */
16 /* You should have received a copy of the GNU General Public License */
17 /* along with Fracplanet. If not, see <http://www.gnu.org/licenses/>. */
18 /**************************************************************************/
19 
24 #ifndef _triangle_mesh_cloud_h_
25 #define _triangle_mesh_cloud_h_
26 
27 #include "image.h"
28 #include "parameters_cloud.h"
29 #include "triangle_mesh.h"
30 
32 
36 class TriangleMeshCloud : virtual public TriangleMesh
37 {
38  public:
39 
41  TriangleMeshCloud(Progress* progress);
42 
45 
47  void write_povray(std::ofstream& out,const ParametersSave&,const ParametersCloud&) const;
48 
50  void write_blender(std::ofstream& out,const ParametersSave&,const ParametersCloud&,const std::string& mesh_name) const;
51 
53 
55  void render_texture(Raster<uchar>&) const;
56 
57  protected:
58 
59  void do_cloud(const ParametersCloud& parameters);
60 };
61 
64 {
65  public:
67  TriangleMeshCloudPlanet(const ParametersCloud& param,Progress* progress);
68 
71  {}
72 };
73 
76 {
77  public:
79  TriangleMeshCloudFlat(const ParametersCloud& parameters,Progress* progress);
80 
83  {}
84 };
85 
86 #endif
void do_cloud(const ParametersCloud &parameters)
Definition: triangle_mesh_cloud.cpp:103
TriangleMeshCloudFlat(const ParametersCloud &parameters, Progress *progress)
Constructor.
Definition: triangle_mesh_cloud.cpp:187
Interface for class TriangleMesh.
void render_texture(Raster< uchar > &) const
Render the mesh onto a raster image.
Definition: triangle_mesh_cloud.cpp:74
void write_blender(std::ofstream &out, const ParametersSave &, const ParametersCloud &, const std::string &mesh_name) const
Dump mesh to file for Blender.
Definition: triangle_mesh_cloud.cpp:42
Contains vertices and triangles of a triangle mesh.
Definition: triangle_mesh.h:49
void write_povray(std::ofstream &out, const ParametersSave &, const ParametersCloud &) const
Dump mesh to file for POV-Ray.
Definition: triangle_mesh_cloud.cpp:35
Aggregates controllable parameters for all things related to save.
Definition: parameters_save.h:30
A subdivided icosahedron.
Definition: triangle_mesh.h:292
~TriangleMeshCloudPlanet()
Destructor.
Definition: triangle_mesh_cloud.h:70
Class for 2D raster images of a specified type.
Definition: image.h:75
This class holds all the cloud-related methods.
Definition: triangle_mesh_cloud.h:36
TriangleMeshCloud(Progress *progress)
Constructor.
Definition: triangle_mesh_cloud.cpp:28
This class aggregates the controllable parameters for all things related to cloud generation...
Definition: parameters_cloud.h:32
Interface for class ParametersCloud.
Interface (and implementation) for templated Image class.
Mix-in class for call-backs from long operations.
Definition: progress.h:30
TriangleMeshCloudPlanet(const ParametersCloud &param, Progress *progress)
Constructor.
Definition: triangle_mesh_cloud.cpp:179
~TriangleMeshCloudFlat()
Destructor.
Definition: triangle_mesh_cloud.h:82
Class constructing specific case of a flat-base terrain area.
Definition: triangle_mesh_cloud.h:75
~TriangleMeshCloud()
Destructor.
Definition: triangle_mesh_cloud.cpp:32
Class constructing specific case of a planetary cloud.
Definition: triangle_mesh_cloud.h:63
A single triangle lying in the z-plane.
Definition: triangle_mesh.h:244