Fixed quick ui camera to stay above ground and water
This commit is contained in:
parent
2c877953e7
commit
2de920e091
3 changed files with 6 additions and 4 deletions
|
@ -43,7 +43,7 @@ void Scenery::validate()
|
|||
{
|
||||
BaseDefinition::validate();
|
||||
|
||||
checkCameraAboveGround();
|
||||
keepCameraAboveGround(camera);
|
||||
}
|
||||
|
||||
Scenery::FileOperationResult Scenery::saveGlobal(const std::string &filepath) const
|
||||
|
@ -131,7 +131,7 @@ void Scenery::getAtmosphere(AtmosphereDefinition* atmosphere)
|
|||
void Scenery::setCamera(CameraDefinition* camera)
|
||||
{
|
||||
camera->copy(this->camera);
|
||||
checkCameraAboveGround();
|
||||
keepCameraAboveGround(this->camera);
|
||||
}
|
||||
|
||||
void Scenery::getCamera(CameraDefinition* camera)
|
||||
|
@ -179,7 +179,7 @@ void Scenery::getWater(WaterDefinition* water)
|
|||
this->water->copy(water);
|
||||
}
|
||||
|
||||
void Scenery::checkCameraAboveGround()
|
||||
void Scenery::keepCameraAboveGround(CameraDefinition* camera)
|
||||
{
|
||||
Vector3 camera_location = camera->getLocation();
|
||||
double terrain_height = terrain->getInterpolatedHeight(camera_location.x, camera_location.z, true, true) + 2.0;
|
||||
|
|
|
@ -62,7 +62,7 @@ public:
|
|||
inline WaterDefinition* getWater() const {return water;}
|
||||
void getWater(WaterDefinition* water);
|
||||
|
||||
void checkCameraAboveGround();
|
||||
void keepCameraAboveGround(CameraDefinition* camera);
|
||||
|
||||
private:
|
||||
AtmosphereDefinition* atmosphere;
|
||||
|
|
|
@ -65,6 +65,8 @@ void ModelerCameras::timerEvent(QTimerEvent *)
|
|||
|
||||
void ModelerCameras::validate()
|
||||
{
|
||||
parent->getScenery()->keepCameraAboveGround(active);
|
||||
|
||||
if (active == render) {
|
||||
parent->getScenery()->setCamera(active);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue