mirror of
https://github.com/overte-org/overte.git
synced 2025-08-09 13:28:09 +02:00
Replace pos/rot by a transform in Base3DOverlay
Also keep getBounds a pure virtual methods
This commit is contained in:
parent
c22f1aa7e1
commit
31a98c5b40
2 changed files with 16 additions and 24 deletions
|
@ -16,15 +16,12 @@
|
||||||
#include "Application.h"
|
#include "Application.h"
|
||||||
#include "Base3DOverlay.h"
|
#include "Base3DOverlay.h"
|
||||||
|
|
||||||
const glm::vec3 DEFAULT_POSITION = glm::vec3(0.0f, 0.0f, 0.0f);
|
|
||||||
const float DEFAULT_LINE_WIDTH = 1.0f;
|
const float DEFAULT_LINE_WIDTH = 1.0f;
|
||||||
const bool DEFAULT_IS_SOLID = false;
|
const bool DEFAULT_IS_SOLID = false;
|
||||||
const bool DEFAULT_IS_DASHED_LINE = false;
|
const bool DEFAULT_IS_DASHED_LINE = false;
|
||||||
|
|
||||||
Base3DOverlay::Base3DOverlay() :
|
Base3DOverlay::Base3DOverlay() :
|
||||||
_position(DEFAULT_POSITION),
|
|
||||||
_lineWidth(DEFAULT_LINE_WIDTH),
|
_lineWidth(DEFAULT_LINE_WIDTH),
|
||||||
_rotation(),
|
|
||||||
_isSolid(DEFAULT_IS_SOLID),
|
_isSolid(DEFAULT_IS_SOLID),
|
||||||
_isDashedLine(DEFAULT_IS_DASHED_LINE),
|
_isDashedLine(DEFAULT_IS_DASHED_LINE),
|
||||||
_ignoreRayIntersection(false),
|
_ignoreRayIntersection(false),
|
||||||
|
@ -35,9 +32,8 @@ Base3DOverlay::Base3DOverlay() :
|
||||||
|
|
||||||
Base3DOverlay::Base3DOverlay(const Base3DOverlay* base3DOverlay) :
|
Base3DOverlay::Base3DOverlay(const Base3DOverlay* base3DOverlay) :
|
||||||
Overlay(base3DOverlay),
|
Overlay(base3DOverlay),
|
||||||
_position(base3DOverlay->_position),
|
_transform(base3DOverlay->_transform),
|
||||||
_lineWidth(base3DOverlay->_lineWidth),
|
_lineWidth(base3DOverlay->_lineWidth),
|
||||||
_rotation(base3DOverlay->_rotation),
|
|
||||||
_isSolid(base3DOverlay->_isSolid),
|
_isSolid(base3DOverlay->_isSolid),
|
||||||
_isDashedLine(base3DOverlay->_isDashedLine),
|
_isDashedLine(base3DOverlay->_isDashedLine),
|
||||||
_ignoreRayIntersection(base3DOverlay->_ignoreRayIntersection),
|
_ignoreRayIntersection(base3DOverlay->_ignoreRayIntersection),
|
||||||
|
@ -46,14 +42,6 @@ Base3DOverlay::Base3DOverlay(const Base3DOverlay* base3DOverlay) :
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
Base3DOverlay::~Base3DOverlay() {
|
|
||||||
}
|
|
||||||
|
|
||||||
// TODO: Implement accurate getBounds() implementations
|
|
||||||
AABox Base3DOverlay::getBounds() const {
|
|
||||||
return AABox(_position, glm::vec3(1.0f));
|
|
||||||
}
|
|
||||||
|
|
||||||
void Base3DOverlay::setProperties(const QScriptValue& properties) {
|
void Base3DOverlay::setProperties(const QScriptValue& properties) {
|
||||||
Overlay::setProperties(properties);
|
Overlay::setProperties(properties);
|
||||||
|
|
||||||
|
@ -151,13 +139,13 @@ void Base3DOverlay::setProperties(const QScriptValue& properties) {
|
||||||
|
|
||||||
QScriptValue Base3DOverlay::getProperty(const QString& property) {
|
QScriptValue Base3DOverlay::getProperty(const QString& property) {
|
||||||
if (property == "position" || property == "start" || property == "p1" || property == "point") {
|
if (property == "position" || property == "start" || property == "p1" || property == "point") {
|
||||||
return vec3toScriptValue(_scriptEngine, _position);
|
return vec3toScriptValue(_scriptEngine, getPosition());
|
||||||
}
|
}
|
||||||
if (property == "lineWidth") {
|
if (property == "lineWidth") {
|
||||||
return _lineWidth;
|
return _lineWidth;
|
||||||
}
|
}
|
||||||
if (property == "rotation") {
|
if (property == "rotation") {
|
||||||
return quatToScriptValue(_scriptEngine, _rotation);
|
return quatToScriptValue(_scriptEngine, getRotation());
|
||||||
}
|
}
|
||||||
if (property == "isSolid" || property == "isFilled" || property == "solid" || property == "filed") {
|
if (property == "isSolid" || property == "isFilled" || property == "solid" || property == "filed") {
|
||||||
return _isSolid;
|
return _isSolid;
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
#include <glm/gtc/quaternion.hpp>
|
#include <glm/gtc/quaternion.hpp>
|
||||||
|
|
||||||
#include <BoxBase.h>
|
#include <BoxBase.h>
|
||||||
|
#include <Transform.h>
|
||||||
|
|
||||||
#include "Overlay.h"
|
#include "Overlay.h"
|
||||||
|
|
||||||
|
@ -24,32 +25,35 @@ class Base3DOverlay : public Overlay {
|
||||||
public:
|
public:
|
||||||
Base3DOverlay();
|
Base3DOverlay();
|
||||||
Base3DOverlay(const Base3DOverlay* base3DOverlay);
|
Base3DOverlay(const Base3DOverlay* base3DOverlay);
|
||||||
~Base3DOverlay();
|
|
||||||
|
|
||||||
// getters
|
// getters
|
||||||
virtual bool is3D() const { return true; }
|
virtual bool is3D() const { return true; }
|
||||||
const glm::vec3& getPosition() const { return _position; }
|
const glm::vec3& getPosition() const { return _transform.getTranslation(); }
|
||||||
const glm::vec3& getCenter() const { return _position; } // TODO: consider implementing registration points in this class
|
const glm::quat& getRotation() const { return _transform.getRotation(); }
|
||||||
|
|
||||||
|
// TODO: consider implementing registration points in this class
|
||||||
|
const glm::vec3& getCenter() const { return getPosition(); }
|
||||||
|
|
||||||
float getLineWidth() const { return _lineWidth; }
|
float getLineWidth() const { return _lineWidth; }
|
||||||
bool getIsSolid() const { return _isSolid; }
|
bool getIsSolid() const { return _isSolid; }
|
||||||
bool getIsDashedLine() const { return _isDashedLine; }
|
bool getIsDashedLine() const { return _isDashedLine; }
|
||||||
bool getIsSolidLine() const { return !_isDashedLine; }
|
bool getIsSolidLine() const { return !_isDashedLine; }
|
||||||
const glm::quat& getRotation() const { return _rotation; }
|
|
||||||
bool getIgnoreRayIntersection() const { return _ignoreRayIntersection; }
|
bool getIgnoreRayIntersection() const { return _ignoreRayIntersection; }
|
||||||
bool getDrawInFront() const { return _drawInFront; }
|
bool getDrawInFront() const { return _drawInFront; }
|
||||||
bool getDrawOnHUD() const { return _drawOnHUD; }
|
bool getDrawOnHUD() const { return _drawOnHUD; }
|
||||||
|
|
||||||
// setters
|
// setters
|
||||||
void setPosition(const glm::vec3& position) { _position = position; }
|
void setPosition(const glm::vec3& value) { _transform.setTranslation(value); }
|
||||||
|
void setRotation(const glm::quat& value) { _transform.setRotation(value); }
|
||||||
|
|
||||||
void setLineWidth(float lineWidth) { _lineWidth = lineWidth; }
|
void setLineWidth(float lineWidth) { _lineWidth = lineWidth; }
|
||||||
void setIsSolid(bool isSolid) { _isSolid = isSolid; }
|
void setIsSolid(bool isSolid) { _isSolid = isSolid; }
|
||||||
void setIsDashedLine(bool isDashedLine) { _isDashedLine = isDashedLine; }
|
void setIsDashedLine(bool isDashedLine) { _isDashedLine = isDashedLine; }
|
||||||
void setRotation(const glm::quat& value) { _rotation = value; }
|
|
||||||
void setIgnoreRayIntersection(bool value) { _ignoreRayIntersection = value; }
|
void setIgnoreRayIntersection(bool value) { _ignoreRayIntersection = value; }
|
||||||
void setDrawInFront(bool value) { _drawInFront = value; }
|
void setDrawInFront(bool value) { _drawInFront = value; }
|
||||||
void setDrawOnHUD(bool value) { _drawOnHUD = value; }
|
void setDrawOnHUD(bool value) { _drawOnHUD = value; }
|
||||||
|
|
||||||
virtual AABox getBounds() const;
|
virtual AABox getBounds() const = 0;
|
||||||
|
|
||||||
virtual void setProperties(const QScriptValue& properties);
|
virtual void setProperties(const QScriptValue& properties);
|
||||||
virtual QScriptValue getProperty(const QString& property);
|
virtual QScriptValue getProperty(const QString& property);
|
||||||
|
@ -62,9 +66,9 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
glm::vec3 _position;
|
Transform _transform;
|
||||||
|
|
||||||
float _lineWidth;
|
float _lineWidth;
|
||||||
glm::quat _rotation;
|
|
||||||
bool _isSolid;
|
bool _isSolid;
|
||||||
bool _isDashedLine;
|
bool _isDashedLine;
|
||||||
bool _ignoreRayIntersection;
|
bool _ignoreRayIntersection;
|
||||||
|
|
Loading…
Reference in a new issue