godot_voxel/voxel_tool_buffer.cpp

38 lines
1.0 KiB
C++
Raw Normal View History

2019-09-03 14:54:40 -07:00
#include "voxel_tool_buffer.h"
2019-09-05 11:43:25 -07:00
#include "voxel_buffer.h"
2019-09-03 14:54:40 -07:00
VoxelToolBuffer::VoxelToolBuffer(Ref<VoxelBuffer> vb) {
ERR_FAIL_COND(vb.is_null());
_buffer = vb;
}
bool VoxelToolBuffer::is_area_editable(const Rect3i &box) const {
2019-12-14 13:34:41 -08:00
ERR_FAIL_COND_V(_buffer.is_null(), false);
return Rect3i(Vector3i(), _buffer->get_size()).encloses(box);
2019-09-03 14:54:40 -07:00
}
int VoxelToolBuffer::_get_voxel(Vector3i pos) {
ERR_FAIL_COND_V(_buffer.is_null(), 0);
2019-12-14 13:34:41 -08:00
return _buffer->get_voxel(pos, _channel);
2019-09-03 14:54:40 -07:00
}
float VoxelToolBuffer::_get_voxel_f(Vector3i pos) {
ERR_FAIL_COND_V(_buffer.is_null(), 0);
2019-12-14 13:34:41 -08:00
return _buffer->get_voxel_f(pos.x, pos.y, pos.z, _channel);
2019-09-03 14:54:40 -07:00
}
void VoxelToolBuffer::_set_voxel(Vector3i pos, int v) {
ERR_FAIL_COND(_buffer.is_null());
2019-12-14 13:34:41 -08:00
return _buffer->set_voxel(v, pos, _channel);
2019-09-03 14:54:40 -07:00
}
void VoxelToolBuffer::_set_voxel_f(Vector3i pos, float v) {
ERR_FAIL_COND(_buffer.is_null());
2019-12-14 13:34:41 -08:00
return _buffer->set_voxel_f(v, pos.x, pos.y, pos.z, _channel);
2019-09-03 14:54:40 -07:00
}
void VoxelToolBuffer::_post_edit(const Rect3i &box) {
ERR_FAIL_COND(_buffer.is_null());
2019-12-14 13:34:41 -08:00
// Nothing special to do
2019-09-03 14:54:40 -07:00
}