Fixed scale up amount calculations
This commit is contained in:
parent
85cc0c2457
commit
976c71215b
5 changed files with 6 additions and 6 deletions
|
|
@ -34,7 +34,7 @@ void BookmarkListItem::scale_up(const WorldScalar& scaleUpAmount) {
|
|||
i.obj->scale_up(scaleUpAmount);
|
||||
}
|
||||
else
|
||||
bookmarkData->coords.inverseScale *= scaleUpAmount;
|
||||
bookmarkData->coords.scale_about(WorldVec{0, 0}, scaleUpAmount, true);
|
||||
}
|
||||
|
||||
bool BookmarkListItem::is_folder() const {
|
||||
|
|
|
|||
|
|
@ -144,7 +144,7 @@ CanvasComponentContainer::TransformDrawData CanvasComponentContainer::calculate_
|
|||
}
|
||||
|
||||
void CanvasComponentContainer::scale_up(const WorldScalar& scaleUpAmount) {
|
||||
coords.inverseScale *= scaleUpAmount;
|
||||
coords.scale_about(WorldVec{0, 0}, scaleUpAmount, true);
|
||||
calculate_world_bounds();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@ void ClientData::register_class(World& world) {
|
|||
uint32_t oldGridSize = o->gridSize;
|
||||
a(o->gridSize);
|
||||
if(oldGridSize < o->gridSize)
|
||||
world.scale_up(WorldScalar(o->gridSize - oldGridSize) * CANVAS_SCALE_UP_STEP);
|
||||
world.scale_up(get_canvas_scale_up_amount(o->gridSize, oldGridSize));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -101,7 +101,7 @@ void ClientData::register_class(World& world) {
|
|||
uint32_t oldGridSize = o->gridSize;
|
||||
a(o->gridSize);
|
||||
if(oldGridSize < o->gridSize)
|
||||
world.scale_up(WorldScalar(o->gridSize - oldGridSize) * CANVAS_SCALE_UP_STEP);
|
||||
world.scale_up(get_canvas_scale_up_amount(o->gridSize, oldGridSize));
|
||||
o.send_server_update_to_all_clients(RELIABLE_COMMAND_CHANNEL, [](const NetObjTemporaryPtr<ClientData>& o, cereal::PortableBinaryOutputArchive & a) {
|
||||
a(ClientDataCommand::SET_GRID_SIZE, o->gridSize);
|
||||
});
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@ void DrawingProgram::init_server_callbacks() {
|
|||
if(clientData->get_grid_size() < world.ownClientData->get_grid_size()) {
|
||||
WorldScalar scaleUpAmount = get_canvas_scale_up_amount(world.ownClientData->get_grid_size(), clientData->get_grid_size());
|
||||
for(auto& [netID, coord] : transforms)
|
||||
coord.inverseScale *= scaleUpAmount;
|
||||
coord.scale_about(WorldVec{0, 0}, scaleUpAmount, true);
|
||||
}
|
||||
|
||||
process_transform_message(transforms);
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
#include "ScaleUpCanvas.hpp"
|
||||
|
||||
WorldScalar get_canvas_scale_up_amount(uint32_t newGridSize, uint32_t oldGridSize) {
|
||||
return WorldScalar(newGridSize - oldGridSize) * CANVAS_SCALE_UP_STEP;
|
||||
return FixedPoint::pow_int(CANVAS_SCALE_UP_STEP, newGridSize - oldGridSize);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue