mirror of
https://github.com/Relintai/voxelman.git
synced 2024-11-12 10:15:12 +01:00
Moved the transvoxel mesher into a folder.
This commit is contained in:
parent
01bb492760
commit
4a8ed25544
7
SCsub
7
SCsub
@ -26,9 +26,10 @@ sources = [
|
||||
"data/voxel_light.cpp",
|
||||
|
||||
"meshers/voxel_mesher.cpp",
|
||||
"meshers/transvoxel_cell_data.cpp",
|
||||
"meshers/voxel_mesher_transvoxel.cpp",
|
||||
"meshers/transvoxel_tables.cpp",
|
||||
|
||||
"meshers/transvoxel_uv_mesher/transvoxel_cell_data.cpp",
|
||||
"meshers/transvoxel_uv_mesher/voxel_mesher_transvoxel.cpp",
|
||||
"meshers/transvoxel_uv_mesher/transvoxel_tables.cpp",
|
||||
|
||||
"world/voxel_world.cpp",
|
||||
"world/voxel_chunk.cpp",
|
||||
|
@ -1,8 +1,8 @@
|
||||
#ifndef VOXEL_MESHER_TRANSVOXEL_H
|
||||
#define VOXEL_MESHER_TRANSVOXEL_H
|
||||
|
||||
#include "../voxel_mesher.h"
|
||||
#include "core/reference.h"
|
||||
#include "voxel_mesher.h"
|
||||
|
||||
#include "transvoxel_cell_data.h"
|
||||
|
@ -1,81 +0,0 @@
|
||||
#include "voxel_mesh_data.h"
|
||||
|
||||
Ref<Material> VoxelMeshData::get_material() {
|
||||
return _material;
|
||||
}
|
||||
|
||||
void VoxelMeshData::set_material(Ref<Material> material) {
|
||||
_material = material;
|
||||
}
|
||||
|
||||
Ref<ArrayMesh> VoxelMeshData::create_mesh() {
|
||||
_surface_tool->begin(Mesh::PRIMITIVE_TRIANGLES);
|
||||
_surface_tool->set_material(_material);
|
||||
|
||||
int len = _vertices->size();
|
||||
|
||||
for (int i = 0; i < len; ++i) {
|
||||
_surface_tool->add_normal(_normals->get(i));
|
||||
//_surface_tool->add_color(_colors->get(i));
|
||||
//_surface_tool->add_uv(_uvs->get(i));
|
||||
|
||||
_surface_tool->add_vertex(_vertices->get(i));
|
||||
}
|
||||
|
||||
for (int i = 0; i < _indices->size(); ++i) {
|
||||
_surface_tool->add_index(_indices->get(i));
|
||||
}
|
||||
|
||||
Ref<ArrayMesh> m = _surface_tool->commit();
|
||||
|
||||
return m;
|
||||
}
|
||||
|
||||
void VoxelMeshData::add_vertices_from(Vector<Vector3> &vertices) {
|
||||
_vertices->append_array(vertices);
|
||||
}
|
||||
|
||||
void VoxelMeshData::add_normals_from(Vector<Vector3> &normals) {
|
||||
_normals->append_array(normals);
|
||||
}
|
||||
|
||||
void VoxelMeshData::add_indices_from(Vector<int> &indices) {
|
||||
_indices->append_array(indices);
|
||||
}
|
||||
|
||||
void VoxelMeshData::add_vertex(Vector3 vertex) {
|
||||
_vertices->push_back(vertex);
|
||||
}
|
||||
|
||||
void VoxelMeshData::add_normal(Vector3 normal) {
|
||||
_normals->push_back(normal);
|
||||
}
|
||||
|
||||
void VoxelMeshData::add_index(int iundex) {
|
||||
_indices->push_back(iundex);
|
||||
}
|
||||
|
||||
void VoxelMeshData::clear() {
|
||||
_vertices->clear();
|
||||
_normals->clear();
|
||||
_indices->clear();
|
||||
}
|
||||
|
||||
VoxelMeshData::VoxelMeshData() {
|
||||
_vertices = memnew(Vector<Vector3>());
|
||||
_normals = memnew(Vector<Vector3>());
|
||||
_indices = memnew(Vector<int>());
|
||||
|
||||
_surface_tool.instance();
|
||||
}
|
||||
|
||||
VoxelMeshData::~VoxelMeshData() {
|
||||
memdelete(_vertices);
|
||||
memdelete(_normals);
|
||||
memdelete(_indices);
|
||||
|
||||
_surface_tool.unref();
|
||||
}
|
||||
|
||||
void VoxelMeshData::_bind_methods() {
|
||||
}
|
@ -1,45 +0,0 @@
|
||||
#ifndef VOXEL_MESH_DATA_H
|
||||
#define VOXEL_MESH_DATA_H
|
||||
|
||||
#include "core/reference.h"
|
||||
#include "core/vector.h"
|
||||
#include "scene/resources/material.h"
|
||||
#include "scene/resources/mesh.h"
|
||||
#include "scene/resources/surface_tool.h"
|
||||
|
||||
class VoxelMeshData : public Reference {
|
||||
GDCLASS(VoxelMeshData, Reference)
|
||||
|
||||
public:
|
||||
Ref<Material> get_material();
|
||||
void set_material(Ref<Material> material);
|
||||
|
||||
Ref<ArrayMesh> create_mesh();
|
||||
|
||||
void add_vertex(Vector3 vertex);
|
||||
void add_normal(Vector3 normal);
|
||||
void add_index(int iundex);
|
||||
|
||||
void add_vertices_from(Vector<Vector3> &vertices);
|
||||
void add_normals_from(Vector<Vector3> &normals);
|
||||
void add_indices_from(Vector<int> &indices);
|
||||
|
||||
void clear();
|
||||
|
||||
VoxelMeshData();
|
||||
~VoxelMeshData();
|
||||
|
||||
protected:
|
||||
static void _bind_methods();
|
||||
|
||||
private:
|
||||
Ref<Material> _material;
|
||||
|
||||
Vector<Vector3> *_vertices;
|
||||
Vector<Vector3> *_normals;
|
||||
Vector<int> *_indices;
|
||||
|
||||
Ref<SurfaceTool> _surface_tool;
|
||||
};
|
||||
|
||||
#endif
|
@ -12,9 +12,9 @@
|
||||
#include "library/voxelman_library_simple.h"
|
||||
|
||||
#include "data/voxel_light.h"
|
||||
#include "meshers/transvoxel_cell_data.h"
|
||||
#include "meshers/transvoxel_uv_mesher/transvoxel_cell_data.h"
|
||||
#include "meshers/transvoxel_uv_mesher/voxel_mesher_transvoxel.h"
|
||||
#include "meshers/voxel_mesher.h"
|
||||
#include "meshers/voxel_mesher_transvoxel.h"
|
||||
|
||||
#include "world/environment_data.h"
|
||||
#include "world/voxel_chunk.h"
|
||||
|
Loading…
Reference in New Issue
Block a user