1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
#pragma once
#include "ManipulationPivot.h"
namespace selection
{
/**
* ManipulationPivot specialisation tailored to suit the needs
* of the main map selection manipulations.
*/
class SceneManipulationPivot final :
public ManipulationPivot
{
private:
// Whether to snap the pivot to grid after movement
bool _snapPivotToGrid;
// Use a single Entity's "origin" keyvalue as pivot
bool _entityPivotIsOrigin;
// Whether to consider light volumes when calculating the selection bounds
bool _defaultPivotLocationIgnoresLightVolumes;
public:
static const std::string RKEY_ENTITY_PIVOT_IS_ORIGIN;
static const std::string RKEY_SNAP_ROTATION_PIVOT_TO_GRID;
static const std::string RKEY_DEFAULT_PIVOT_LOCATION_IGNORES_LIGHT_VOLUMES;
SceneManipulationPivot();
void initialise();
void applyTranslation(const Vector3& translation) override;
void updateFromSelection() override;
private:
void onRegistryKeyChanged();
};
}
|