Program Listing for File polyhedron_noise_processor.h

Return to documentation for file (src/polyhedron/polyhedron_noise_processor.h)

#pragma once

#include <map>      // for map
#include <utility>  // for pair
#include <vector>   // for vector

#include "core/tile_mesh.h"
#include "misc/types.h"                            // for Biome
#include "polyhedron/polyhedron_mesh_processor.h"  // for PolyhedronProcessor
#include "tal/material.h"                          // for ShaderMaterial
#include "tal/reference.h"                         // for Ref
#include "tal/vector3i.h"

namespace sota {
class Hexagon;
class Pentagon;
class Polyhedron;
class TileMesh;

class PolyhedronNoiseProcessor : public PolyhedronProcessor {
 public:
  void configure_hexagon(PolygonWrapper &wrapper, Biome biome, int &id, Ref<ShaderMaterial> mat,
                         Polyhedron &polyhedron_mesh) override;
  void configure_pentagon(PolygonWrapper &wrapper, Biome biome, int &id, Ref<ShaderMaterial> mat,
                          Polyhedron &polyhedron_mesh) override;
  void process(Polyhedron &polyhedron_mesh) override;

 private:
  void process_meshes(Polyhedron &polyhedron_mesh, std::vector<Ref<TileMesh>> &meshes);

  DiscreteVertexToDistance _distance_map;
};
}  // namespace sota