VOXEDIT: limit the fillplane modifier to the selection

master
Martin Gerhardy 2022-05-11 23:18:07 +02:00
parent 700abb4a38
commit 8d48266d85
2 changed files with 10 additions and 1 deletions

View File

@ -52,6 +52,11 @@ public:
_volume(volume), _region(volume->region()) {
}
RawVolumeWrapper(voxel::RawVolume* volume, const voxel::Region &region) :
_volume(volume), _region(region) {
_region.cropTo(volume->region());
}
inline operator RawVolume& () const {
return *_volume;
}

View File

@ -350,7 +350,11 @@ bool Modifier::aabbAction(voxel::RawVolume* volume, const std::function<void(con
return false;
}
if ((_modifierType & ModifierType::FillPlane) == ModifierType::FillPlane) {
voxel::RawVolumeWrapper wrapper(volume);
voxel::Region region = volume->region();
if (_selectionValid) {
region = _selection;
}
voxel::RawVolumeWrapper wrapper(volume, region);
voxelutil::fillPlane(wrapper, cursorVoxel(), voxel::Voxel(), cursorPosition(), cursorFace());
const voxel::Region& modifiedRegion = wrapper.dirtyRegion();
if (modifiedRegion.isValid()) {