mirror of
https://github.com/Armored-Dragon/overte.git
synced 2025-03-11 16:13:16 +01:00
moved writeToClone to copy constructor
This commit is contained in:
parent
fa4555a7a2
commit
ba5491bc8b
36 changed files with 201 additions and 182 deletions
|
@ -31,6 +31,17 @@ Base3DOverlay::Base3DOverlay() :
|
|||
{
|
||||
}
|
||||
|
||||
Base3DOverlay::Base3DOverlay(Base3DOverlay* base3DOverlay) :
|
||||
Overlay(base3DOverlay),
|
||||
_position(base3DOverlay->_position),
|
||||
_lineWidth(base3DOverlay->_lineWidth),
|
||||
_rotation(base3DOverlay->_rotation),
|
||||
_isSolid(base3DOverlay->_isSolid),
|
||||
_isDashedLine(base3DOverlay->_isDashedLine),
|
||||
_ignoreRayIntersection(base3DOverlay->_ignoreRayIntersection)
|
||||
{
|
||||
}
|
||||
|
||||
Base3DOverlay::~Base3DOverlay() {
|
||||
}
|
||||
|
||||
|
@ -178,15 +189,4 @@ void Base3DOverlay::drawDashedLine(const glm::vec3& start, const glm::vec3& end)
|
|||
glVertex3f(end.x, end.y, end.z);
|
||||
|
||||
glEnd();
|
||||
|
||||
}
|
||||
|
||||
void Base3DOverlay::writeToClone(Base3DOverlay* clone) {
|
||||
Overlay::writeToClone(clone);
|
||||
clone->setPosition(getPosition());
|
||||
clone->setLineWidth(getLineWidth());
|
||||
clone->setIsSolid(getIsSolid());
|
||||
clone->setIsDashedLine(getIsDashedLine());
|
||||
clone->setRotation(getRotation());
|
||||
clone->setIgnoreRayIntersection(getIgnoreRayIntersection());
|
||||
}
|
||||
|
|
|
@ -23,6 +23,7 @@ class Base3DOverlay : public Overlay {
|
|||
|
||||
public:
|
||||
Base3DOverlay();
|
||||
Base3DOverlay(Base3DOverlay* base3DOverlay);
|
||||
~Base3DOverlay();
|
||||
|
||||
// getters
|
||||
|
@ -55,7 +56,6 @@ public:
|
|||
}
|
||||
|
||||
protected:
|
||||
virtual void writeToClone(Base3DOverlay* clone);
|
||||
void drawDashedLine(const glm::vec3& start, const glm::vec3& end);
|
||||
|
||||
glm::vec3 _position;
|
||||
|
@ -65,6 +65,5 @@ protected:
|
|||
bool _isDashedLine;
|
||||
bool _ignoreRayIntersection;
|
||||
};
|
||||
|
||||
|
||||
#endif // hifi_Base3DOverlay_h
|
||||
|
|
|
@ -24,6 +24,17 @@ BillboardOverlay::BillboardOverlay() :
|
|||
_isLoaded = false;
|
||||
}
|
||||
|
||||
BillboardOverlay::BillboardOverlay(BillboardOverlay* billboardOverlay) :
|
||||
Base3DOverlay(billboardOverlay),
|
||||
_newTextureNeeded(true),
|
||||
_scale(billboardOverlay->_scale),
|
||||
_isFacingAvatar(billboardOverlay->_isFacingAvatar),
|
||||
_fromImage(billboardOverlay->_fromImage),
|
||||
_url(billboardOverlay->_url),
|
||||
_billboard(billboardOverlay->_billboard)
|
||||
{
|
||||
}
|
||||
|
||||
void BillboardOverlay::render(RenderArgs* args) {
|
||||
if (!_visible || !_isLoaded) {
|
||||
return;
|
||||
|
@ -216,16 +227,5 @@ bool BillboardOverlay::findRayIntersection(const glm::vec3& origin, const glm::v
|
|||
}
|
||||
|
||||
BillboardOverlay* BillboardOverlay::createClone() {
|
||||
BillboardOverlay* clone = new BillboardOverlay();
|
||||
writeToClone(clone);
|
||||
return clone;
|
||||
}
|
||||
|
||||
void BillboardOverlay::writeToClone(BillboardOverlay* clone) {
|
||||
Base3DOverlay::writeToClone(clone);
|
||||
clone->setScale(_scale);
|
||||
clone->setIsFacingAvatar(_isFacingAvatar);
|
||||
clone->setClipFromSource(_fromImage);
|
||||
clone->_url = _url;
|
||||
clone->_billboard = _billboard;
|
||||
return new BillboardOverlay(this);
|
||||
}
|
||||
|
|
|
@ -22,7 +22,8 @@ class BillboardOverlay : public Base3DOverlay {
|
|||
Q_OBJECT
|
||||
public:
|
||||
BillboardOverlay();
|
||||
|
||||
BillboardOverlay(BillboardOverlay* billboardOverlay);
|
||||
|
||||
virtual void render(RenderArgs* args);
|
||||
|
||||
// setters
|
||||
|
@ -42,8 +43,6 @@ private slots:
|
|||
void replyFinished();
|
||||
|
||||
private:
|
||||
virtual void writeToClone(BillboardOverlay* clone);
|
||||
|
||||
void setBillboardURL(const QString& url);
|
||||
|
||||
QString _url;
|
||||
|
|
|
@ -33,6 +33,22 @@ Circle3DOverlay::Circle3DOverlay() :
|
|||
_minorTickMarksColor.red = _minorTickMarksColor.green = _minorTickMarksColor.blue = (unsigned char)0;
|
||||
}
|
||||
|
||||
Circle3DOverlay::Circle3DOverlay(Circle3DOverlay* circle3DOverlay) :
|
||||
Planar3DOverlay(circle3DOverlay),
|
||||
_startAt(circle3DOverlay->_startAt),
|
||||
_endAt(circle3DOverlay->_endAt),
|
||||
_outerRadius(circle3DOverlay->_outerRadius),
|
||||
_innerRadius(circle3DOverlay->_innerRadius),
|
||||
_hasTickMarks(circle3DOverlay->_hasTickMarks),
|
||||
_majorTickMarksAngle(circle3DOverlay->_majorTickMarksAngle),
|
||||
_minorTickMarksAngle(circle3DOverlay->_minorTickMarksAngle),
|
||||
_majorTickMarksLength(circle3DOverlay->_majorTickMarksLength),
|
||||
_minorTickMarksLength(circle3DOverlay->_minorTickMarksLength),
|
||||
_majorTickMarksColor(circle3DOverlay->_majorTickMarksColor),
|
||||
_minorTickMarksColor(circle3DOverlay->_minorTickMarksColor)
|
||||
{
|
||||
}
|
||||
|
||||
Circle3DOverlay::~Circle3DOverlay() {
|
||||
}
|
||||
|
||||
|
@ -359,22 +375,5 @@ bool Circle3DOverlay::findRayIntersection(const glm::vec3& origin,
|
|||
}
|
||||
|
||||
Circle3DOverlay* Circle3DOverlay::createClone() {
|
||||
Circle3DOverlay* clone = new Circle3DOverlay();
|
||||
writeToClone(clone);
|
||||
return clone;
|
||||
}
|
||||
|
||||
void Circle3DOverlay::writeToClone(Circle3DOverlay* clone) {
|
||||
Planar3DOverlay::writeToClone(clone);
|
||||
clone->setStartAt(getStartAt());
|
||||
clone->setEndAt(getEndAt());
|
||||
clone->setOuterRadius(getOuterRadius());
|
||||
clone->setInnerRadius(getInnerRadius());
|
||||
clone->setHasTickMarks(getHasTickMarks());
|
||||
clone->setMajorTickMarksAngle(getMajorTickMarksAngle());
|
||||
clone->setMinorTickMarksAngle(getMinorTickMarksAngle());
|
||||
clone->setMajorTickMarksLength(getMajorTickMarksLength());
|
||||
clone->setMinorTickMarksLength(getMinorTickMarksLength());
|
||||
clone->setMajorTickMarksColor(getMajorTickMarksColor());
|
||||
clone->setMinorTickMarksColor(getMinorTickMarksColor());
|
||||
return new Circle3DOverlay(this);
|
||||
}
|
||||
|
|
|
@ -18,6 +18,7 @@ class Circle3DOverlay : public Planar3DOverlay {
|
|||
|
||||
public:
|
||||
Circle3DOverlay();
|
||||
Circle3DOverlay(Circle3DOverlay* circle3DOverlay);
|
||||
~Circle3DOverlay();
|
||||
virtual void render(RenderArgs* args);
|
||||
virtual void setProperties(const QScriptValue& properties);
|
||||
|
@ -52,8 +53,6 @@ public:
|
|||
virtual Circle3DOverlay* createClone();
|
||||
|
||||
protected:
|
||||
virtual void writeToClone(Circle3DOverlay* clone);
|
||||
|
||||
float _startAt;
|
||||
float _endAt;
|
||||
float _outerRadius;
|
||||
|
|
|
@ -22,6 +22,11 @@
|
|||
Cube3DOverlay::Cube3DOverlay() {
|
||||
}
|
||||
|
||||
Cube3DOverlay::Cube3DOverlay(Cube3DOverlay* cube3DOverlay) :
|
||||
Volume3DOverlay(cube3DOverlay)
|
||||
{
|
||||
}
|
||||
|
||||
Cube3DOverlay::~Cube3DOverlay() {
|
||||
}
|
||||
|
||||
|
@ -104,7 +109,5 @@ void Cube3DOverlay::render(RenderArgs* args) {
|
|||
}
|
||||
|
||||
Cube3DOverlay* Cube3DOverlay::createClone() {
|
||||
Cube3DOverlay* clone = new Cube3DOverlay();
|
||||
writeToClone(clone);
|
||||
return clone;
|
||||
return new Cube3DOverlay(this);
|
||||
}
|
||||
|
|
|
@ -18,6 +18,7 @@ class Cube3DOverlay : public Volume3DOverlay {
|
|||
|
||||
public:
|
||||
Cube3DOverlay();
|
||||
Cube3DOverlay(Cube3DOverlay* cube3DOverlay);
|
||||
~Cube3DOverlay();
|
||||
virtual void render(RenderArgs* args);
|
||||
|
||||
|
|
|
@ -20,6 +20,13 @@ Grid3DOverlay::Grid3DOverlay() : Base3DOverlay(),
|
|||
_majorGridEvery(5) {
|
||||
}
|
||||
|
||||
Grid3DOverlay::Grid3DOverlay(Grid3DOverlay* grid3DOverlay) :
|
||||
Base3DOverlay(grid3DOverlay),
|
||||
_minorGridWidth(grid3DOverlay->_minorGridWidth),
|
||||
_majorGridEvery(grid3DOverlay->_majorGridEvery)
|
||||
{
|
||||
}
|
||||
|
||||
Grid3DOverlay::~Grid3DOverlay() {
|
||||
}
|
||||
|
||||
|
@ -129,13 +136,5 @@ QScriptValue Grid3DOverlay::getProperty(const QString& property) {
|
|||
}
|
||||
|
||||
Grid3DOverlay* Grid3DOverlay::createClone() {
|
||||
Grid3DOverlay* clone = new Grid3DOverlay();
|
||||
writeToClone(clone);
|
||||
return clone;
|
||||
}
|
||||
|
||||
void Grid3DOverlay::writeToClone(Grid3DOverlay* clone) {
|
||||
Base3DOverlay::writeToClone(clone);
|
||||
clone->_minorGridWidth = _minorGridWidth;
|
||||
clone->_majorGridEvery = _majorGridEvery;
|
||||
return new Grid3DOverlay(this);
|
||||
}
|
||||
|
|
|
@ -29,6 +29,7 @@ class Grid3DOverlay : public Base3DOverlay {
|
|||
|
||||
public:
|
||||
Grid3DOverlay();
|
||||
Grid3DOverlay(Grid3DOverlay* grid3DOverlay);
|
||||
~Grid3DOverlay();
|
||||
|
||||
virtual void render(RenderArgs* args);
|
||||
|
@ -38,8 +39,6 @@ public:
|
|||
virtual Grid3DOverlay* createClone();
|
||||
|
||||
private:
|
||||
virtual void writeToClone(Grid3DOverlay* clone);
|
||||
|
||||
float _minorGridWidth;
|
||||
int _majorGridEvery;
|
||||
|
||||
|
|
|
@ -27,6 +27,17 @@ ImageOverlay::ImageOverlay() :
|
|||
_isLoaded = false;
|
||||
}
|
||||
|
||||
ImageOverlay::ImageOverlay(ImageOverlay* imageOverlay) :
|
||||
Overlay2D(imageOverlay),
|
||||
_textureID(0),
|
||||
_textureBound(false),
|
||||
_wantClipFromImage(false),
|
||||
_renderImage(imageOverlay->_renderImage),
|
||||
_imageURL(imageOverlay->_imageURL),
|
||||
_textureImage(imageOverlay->_textureImage)
|
||||
{
|
||||
}
|
||||
|
||||
ImageOverlay::~ImageOverlay() {
|
||||
if (_parent && _textureID) {
|
||||
// do we need to call this?
|
||||
|
@ -162,15 +173,5 @@ QScriptValue ImageOverlay::getProperty(const QString& property) {
|
|||
return Overlay2D::getProperty(property);
|
||||
}
|
||||
ImageOverlay* ImageOverlay::createClone() {
|
||||
ImageOverlay* clone = new ImageOverlay();
|
||||
writeToClone(clone);
|
||||
return clone;
|
||||
return new ImageOverlay(this);
|
||||
}
|
||||
|
||||
void ImageOverlay::writeToClone(ImageOverlay* clone) {
|
||||
Overlay2D::writeToClone(clone);
|
||||
clone->_imageURL = _imageURL;
|
||||
clone->_textureImage = _textureImage;
|
||||
clone->_renderImage = _renderImage;
|
||||
}
|
||||
|
||||
|
|
|
@ -33,6 +33,7 @@ class ImageOverlay : public Overlay2D {
|
|||
|
||||
public:
|
||||
ImageOverlay();
|
||||
ImageOverlay(ImageOverlay* imageOverlay);
|
||||
~ImageOverlay();
|
||||
virtual void render(RenderArgs* args);
|
||||
|
||||
|
@ -52,7 +53,6 @@ private slots:
|
|||
void replyFinished(); // we actually want to hide this...
|
||||
|
||||
private:
|
||||
virtual void writeToClone(ImageOverlay* clone);
|
||||
|
||||
QUrl _imageURL;
|
||||
QImage _textureImage;
|
||||
|
|
|
@ -18,6 +18,12 @@
|
|||
Line3DOverlay::Line3DOverlay() {
|
||||
}
|
||||
|
||||
Line3DOverlay::Line3DOverlay(Line3DOverlay* line3DOverlay) :
|
||||
Base3DOverlay(line3DOverlay),
|
||||
_end(line3DOverlay->_end)
|
||||
{
|
||||
}
|
||||
|
||||
Line3DOverlay::~Line3DOverlay() {
|
||||
}
|
||||
|
||||
|
@ -89,13 +95,5 @@ QScriptValue Line3DOverlay::getProperty(const QString& property) {
|
|||
}
|
||||
|
||||
Line3DOverlay* Line3DOverlay::createClone() {
|
||||
Line3DOverlay* clone = new Line3DOverlay();
|
||||
writeToClone(clone);
|
||||
return clone;
|
||||
return new Line3DOverlay(this);
|
||||
}
|
||||
|
||||
void Line3DOverlay::writeToClone(Line3DOverlay* clone) {
|
||||
Base3DOverlay::writeToClone(clone);
|
||||
clone->setEnd(getEnd());
|
||||
}
|
||||
|
||||
|
|
|
@ -18,6 +18,7 @@ class Line3DOverlay : public Base3DOverlay {
|
|||
|
||||
public:
|
||||
Line3DOverlay();
|
||||
Line3DOverlay(Line3DOverlay* line3DOverlay);
|
||||
~Line3DOverlay();
|
||||
virtual void render(RenderArgs* args);
|
||||
|
||||
|
@ -33,8 +34,6 @@ public:
|
|||
virtual Line3DOverlay* createClone();
|
||||
|
||||
protected:
|
||||
virtual void writeToClone(Line3DOverlay* clone);
|
||||
|
||||
glm::vec3 _end;
|
||||
};
|
||||
|
||||
|
|
|
@ -18,6 +18,13 @@ LocalModelsOverlay::LocalModelsOverlay(EntityTreeRenderer* entityTreeRenderer) :
|
|||
_entityTreeRenderer(entityTreeRenderer) {
|
||||
}
|
||||
|
||||
LocalModelsOverlay::LocalModelsOverlay(EntityTreeRenderer* entityTreeRenderer, LocalModelsOverlay* localModelsOverlay) :
|
||||
Volume3DOverlay(localModelsOverlay),
|
||||
_entityTreeRenderer(entityTreeRenderer)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
LocalModelsOverlay::~LocalModelsOverlay() {
|
||||
}
|
||||
|
||||
|
@ -50,7 +57,5 @@ void LocalModelsOverlay::render(RenderArgs* args) {
|
|||
}
|
||||
|
||||
LocalModelsOverlay* LocalModelsOverlay::createClone() {
|
||||
LocalModelsOverlay* clone = new LocalModelsOverlay(Application::getInstance()->getEntityClipboardRenderer());
|
||||
writeToClone(clone);
|
||||
return clone;
|
||||
return new LocalModelsOverlay(Application::getInstance()->getEntityClipboardRenderer(), this);
|
||||
}
|
||||
|
|
|
@ -20,6 +20,7 @@ class LocalModelsOverlay : public Volume3DOverlay {
|
|||
Q_OBJECT
|
||||
public:
|
||||
LocalModelsOverlay(EntityTreeRenderer* entityTreeRenderer);
|
||||
LocalModelsOverlay(EntityTreeRenderer* entityTreeRenderer, LocalModelsOverlay* localModelsOverlay);
|
||||
~LocalModelsOverlay();
|
||||
|
||||
virtual void update(float deltatime);
|
||||
|
|
|
@ -28,6 +28,12 @@ LocalVoxelsOverlay::LocalVoxelsOverlay() :
|
|||
{
|
||||
}
|
||||
|
||||
LocalVoxelsOverlay::LocalVoxelsOverlay(LocalVoxelsOverlay* localVoxelsOverlay) :
|
||||
Volume3DOverlay(localVoxelsOverlay),
|
||||
_voxelCount(localVoxelsOverlay->_voxelCount)
|
||||
{
|
||||
}
|
||||
|
||||
LocalVoxelsOverlay::~LocalVoxelsOverlay() {
|
||||
_voxelSystem->changeTree(new VoxelTree());
|
||||
_voxelSystem.clear();
|
||||
|
@ -104,9 +110,7 @@ void LocalVoxelsOverlay::setProperties(const QScriptValue &properties) {
|
|||
}
|
||||
|
||||
LocalVoxelsOverlay* LocalVoxelsOverlay::createClone() {
|
||||
LocalVoxelsOverlay* clone = new LocalVoxelsOverlay();
|
||||
writeToClone(clone);
|
||||
return clone;
|
||||
return new LocalVoxelsOverlay(this);
|
||||
}
|
||||
|
||||
QScriptValue LocalVoxelsOverlay::getProperty(const QString& property) {
|
||||
|
|
|
@ -32,6 +32,7 @@ class LocalVoxelsOverlay : public Volume3DOverlay {
|
|||
Q_OBJECT
|
||||
public:
|
||||
LocalVoxelsOverlay();
|
||||
LocalVoxelsOverlay(LocalVoxelsOverlay* localVoxelsOverlay);
|
||||
~LocalVoxelsOverlay();
|
||||
|
||||
virtual void update(float deltatime);
|
||||
|
|
|
@ -22,6 +22,22 @@ ModelOverlay::ModelOverlay()
|
|||
_isLoaded = false;
|
||||
}
|
||||
|
||||
ModelOverlay::ModelOverlay(ModelOverlay* modelOverlay) :
|
||||
Base3DOverlay(modelOverlay),
|
||||
_model(),
|
||||
_modelTextures(QVariantMap()),
|
||||
_scale(modelOverlay->_scale),
|
||||
_updateModel(false),
|
||||
_url(modelOverlay->_url),
|
||||
_rotation(modelOverlay->_rotation)
|
||||
{
|
||||
_model.init();
|
||||
if (_url.isValid()) {
|
||||
_updateModel = true;
|
||||
_isLoaded = false;
|
||||
}
|
||||
}
|
||||
|
||||
void ModelOverlay::update(float deltatime) {
|
||||
if (_updateModel) {
|
||||
_updateModel = false;
|
||||
|
@ -167,19 +183,5 @@ bool ModelOverlay::findRayIntersectionExtraInfo(const glm::vec3& origin, const g
|
|||
}
|
||||
|
||||
ModelOverlay* ModelOverlay::createClone() {
|
||||
ModelOverlay* clone = new ModelOverlay();
|
||||
writeToClone(clone);
|
||||
return clone;
|
||||
}
|
||||
|
||||
void ModelOverlay::writeToClone(ModelOverlay* clone) {
|
||||
Base3DOverlay::writeToClone(clone);
|
||||
clone->_url = _url;
|
||||
if (clone->_url.isValid()) {
|
||||
clone->_updateModel = true;
|
||||
clone->_isLoaded = false;
|
||||
}
|
||||
clone->_rotation = _rotation;
|
||||
clone->_scale = _scale;
|
||||
clone->_updateModel = _updateModel;
|
||||
return new ModelOverlay(this);
|
||||
}
|
||||
|
|
|
@ -20,7 +20,8 @@ class ModelOverlay : public Base3DOverlay {
|
|||
Q_OBJECT
|
||||
public:
|
||||
ModelOverlay();
|
||||
|
||||
ModelOverlay(ModelOverlay* modelOverlay);
|
||||
|
||||
virtual void update(float deltatime);
|
||||
virtual void render(RenderArgs* args);
|
||||
virtual void setProperties(const QScriptValue& properties);
|
||||
|
@ -32,7 +33,6 @@ public:
|
|||
virtual ModelOverlay* createClone();
|
||||
|
||||
private:
|
||||
virtual void writeToClone(ModelOverlay* clone);
|
||||
|
||||
Model _model;
|
||||
QVariantMap _modelTextures;
|
||||
|
|
|
@ -39,12 +39,30 @@ Overlay::Overlay() :
|
|||
{
|
||||
}
|
||||
|
||||
Overlay::Overlay(Overlay* overlay) :
|
||||
_parent(NULL),
|
||||
_alpha(overlay->_alpha),
|
||||
_lastPulseUpdate(usecTimestampNow()),
|
||||
_alphaPulse(overlay->_alphaPulse),
|
||||
_anchor(overlay->_anchor),
|
||||
_color(overlay->_color),
|
||||
_colorPulse(overlay->_colorPulse),
|
||||
_glowLevel(overlay->_glowLevel),
|
||||
_glowLevelPulse(overlay->_glowLevelPulse),
|
||||
_pulseDirection(overlay->_pulseDirection),
|
||||
_pulseMax(overlay->_pulseMax),
|
||||
_pulseMin(overlay->_pulseMin),
|
||||
_pulsePeriod(overlay->_pulsePeriod),
|
||||
_visible(overlay->_visible),
|
||||
_isLoaded(overlay->_isLoaded)
|
||||
{
|
||||
}
|
||||
|
||||
void Overlay::init(QGLWidget* parent, QScriptEngine* scriptEngine) {
|
||||
_parent = parent;
|
||||
_scriptEngine = scriptEngine;
|
||||
}
|
||||
|
||||
|
||||
Overlay::~Overlay() {
|
||||
}
|
||||
|
||||
|
@ -212,19 +230,3 @@ float Overlay::updatePulse() {
|
|||
|
||||
return _pulse;
|
||||
}
|
||||
|
||||
void Overlay::writeToClone(Overlay* clone) {
|
||||
clone->setAlpha(getAlpha());
|
||||
clone->setAlphaPulse(getAlphaPulse());
|
||||
clone->setAnchor(getAnchor());
|
||||
clone->setColor(getColor());
|
||||
clone->setColorPulse(getColorPulse());
|
||||
clone->setGlowLevel(getGlowLevel());
|
||||
clone->setGlowLevelPulse(getGlowLevelPulse());
|
||||
clone->setPulseDirection(getPulseDirection());
|
||||
clone->setPulseMax(getPulseMax());
|
||||
clone->setPulseMin(getPulseMin());
|
||||
clone->setPulsePeriod(getPulsePeriod());
|
||||
clone->setVisible(getVisible());
|
||||
clone->_isLoaded = _isLoaded;
|
||||
}
|
||||
|
|
|
@ -36,6 +36,7 @@ public:
|
|||
};
|
||||
|
||||
Overlay();
|
||||
Overlay(Overlay* overlay);
|
||||
~Overlay();
|
||||
void init(QGLWidget* parent, QScriptEngine* scriptEngine);
|
||||
virtual void update(float deltatime) {}
|
||||
|
@ -82,7 +83,6 @@ public:
|
|||
virtual QScriptValue getProperty(const QString& property);
|
||||
|
||||
protected:
|
||||
virtual void writeToClone(Overlay* clone);
|
||||
float updatePulse();
|
||||
|
||||
QGLWidget* _parent;
|
||||
|
|
|
@ -22,6 +22,12 @@
|
|||
Overlay2D::Overlay2D() {
|
||||
}
|
||||
|
||||
Overlay2D::Overlay2D(Overlay2D* overlay2D) :
|
||||
Overlay(overlay2D),
|
||||
_bounds(overlay2D->_bounds)
|
||||
{
|
||||
}
|
||||
|
||||
Overlay2D::~Overlay2D() {
|
||||
}
|
||||
|
||||
|
@ -84,9 +90,3 @@ QScriptValue Overlay2D::getProperty(const QString& property) {
|
|||
|
||||
return Overlay::getProperty(property);
|
||||
}
|
||||
|
||||
void Overlay2D::writeToClone(Overlay2D* clone) {
|
||||
Overlay::writeToClone(clone);
|
||||
clone->setBounds(getBounds());
|
||||
}
|
||||
|
||||
|
|
|
@ -28,6 +28,7 @@ class Overlay2D : public Overlay {
|
|||
|
||||
public:
|
||||
Overlay2D();
|
||||
Overlay2D(Overlay2D* overlay2D);
|
||||
~Overlay2D();
|
||||
|
||||
virtual bool is3D() const { return false; }
|
||||
|
@ -43,14 +44,13 @@ public:
|
|||
void setX(int x) { _bounds.setX(x); }
|
||||
void setY(int y) { _bounds.setY(y); }
|
||||
void setWidth(int width) { _bounds.setWidth(width); }
|
||||
void setHeight(int height) { _bounds.setHeight(height); }
|
||||
void setHeight(int height) { _bounds.setHeight(height); }
|
||||
void setBounds(const QRect& bounds) { _bounds = bounds; }
|
||||
|
||||
virtual void setProperties(const QScriptValue& properties);
|
||||
virtual QScriptValue getProperty(const QString& property);
|
||||
|
||||
protected:
|
||||
virtual void writeToClone(Overlay2D* clone);
|
||||
QRect _bounds; // where on the screen to draw
|
||||
};
|
||||
|
||||
|
|
|
@ -26,6 +26,12 @@ Planar3DOverlay::Planar3DOverlay() :
|
|||
{
|
||||
}
|
||||
|
||||
Planar3DOverlay::Planar3DOverlay(Planar3DOverlay* planar3DOverlay) :
|
||||
Base3DOverlay(planar3DOverlay),
|
||||
_dimensions(planar3DOverlay->_dimensions)
|
||||
{
|
||||
}
|
||||
|
||||
Planar3DOverlay::~Planar3DOverlay() {
|
||||
}
|
||||
|
||||
|
@ -110,8 +116,3 @@ bool Planar3DOverlay::findRayIntersection(const glm::vec3& origin, const glm::ve
|
|||
}
|
||||
return intersects;
|
||||
}
|
||||
|
||||
void Planar3DOverlay::writeToClone(Planar3DOverlay* clone) {
|
||||
Base3DOverlay::writeToClone(clone);
|
||||
clone->setDimensions(getDimensions());
|
||||
}
|
||||
|
|
|
@ -26,6 +26,7 @@ class Planar3DOverlay : public Base3DOverlay {
|
|||
|
||||
public:
|
||||
Planar3DOverlay();
|
||||
Planar3DOverlay(Planar3DOverlay* planar3DOverlay);
|
||||
~Planar3DOverlay();
|
||||
|
||||
// getters
|
||||
|
@ -41,7 +42,6 @@ public:
|
|||
virtual bool findRayIntersection(const glm::vec3& origin, const glm::vec3& direction, float& distance, BoxFace& face) const;
|
||||
|
||||
protected:
|
||||
virtual void writeToClone(Planar3DOverlay* clone);
|
||||
glm::vec2 _dimensions;
|
||||
};
|
||||
|
||||
|
|
|
@ -20,6 +20,11 @@
|
|||
Rectangle3DOverlay::Rectangle3DOverlay() {
|
||||
}
|
||||
|
||||
Rectangle3DOverlay::Rectangle3DOverlay(Rectangle3DOverlay* rectangle3DOverlay) :
|
||||
Planar3DOverlay(rectangle3DOverlay)
|
||||
{
|
||||
}
|
||||
|
||||
Rectangle3DOverlay::~Rectangle3DOverlay() {
|
||||
}
|
||||
|
||||
|
@ -107,7 +112,5 @@ void Rectangle3DOverlay::setProperties(const QScriptValue &properties) {
|
|||
}
|
||||
|
||||
Rectangle3DOverlay* Rectangle3DOverlay::createClone() {
|
||||
Rectangle3DOverlay* clone = new Rectangle3DOverlay();
|
||||
writeToClone(clone);
|
||||
return clone;
|
||||
return new Rectangle3DOverlay(this);
|
||||
}
|
||||
|
|
|
@ -18,6 +18,7 @@ class Rectangle3DOverlay : public Planar3DOverlay {
|
|||
|
||||
public:
|
||||
Rectangle3DOverlay();
|
||||
Rectangle3DOverlay(Rectangle3DOverlay* rectangle3DOverlay);
|
||||
~Rectangle3DOverlay();
|
||||
virtual void render(RenderArgs* args);
|
||||
virtual void setProperties(const QScriptValue& properties);
|
||||
|
|
|
@ -21,6 +21,11 @@
|
|||
Sphere3DOverlay::Sphere3DOverlay() {
|
||||
}
|
||||
|
||||
Sphere3DOverlay::Sphere3DOverlay(Sphere3DOverlay* Sphere3DOverlay) :
|
||||
Volume3DOverlay(Sphere3DOverlay)
|
||||
{
|
||||
}
|
||||
|
||||
Sphere3DOverlay::~Sphere3DOverlay() {
|
||||
}
|
||||
|
||||
|
@ -72,7 +77,5 @@ void Sphere3DOverlay::render(RenderArgs* args) {
|
|||
}
|
||||
|
||||
Sphere3DOverlay* Sphere3DOverlay::createClone() {
|
||||
Sphere3DOverlay* clone = new Sphere3DOverlay();
|
||||
writeToClone(clone);
|
||||
return clone;
|
||||
return new Sphere3DOverlay(this);
|
||||
}
|
||||
|
|
|
@ -18,6 +18,7 @@ class Sphere3DOverlay : public Volume3DOverlay {
|
|||
|
||||
public:
|
||||
Sphere3DOverlay();
|
||||
Sphere3DOverlay(Sphere3DOverlay* Sphere3DOverlay);
|
||||
~Sphere3DOverlay();
|
||||
virtual void render(RenderArgs* args);
|
||||
|
||||
|
|
|
@ -31,6 +31,19 @@ Text3DOverlay::Text3DOverlay() :
|
|||
{
|
||||
}
|
||||
|
||||
Text3DOverlay::Text3DOverlay(Text3DOverlay* text3DOverlay) :
|
||||
Planar3DOverlay(text3DOverlay),
|
||||
_text(text3DOverlay->_text),
|
||||
_backgroundColor(text3DOverlay->_backgroundColor),
|
||||
_lineHeight(text3DOverlay->_lineHeight),
|
||||
_leftMargin(text3DOverlay->_leftMargin),
|
||||
_topMargin(text3DOverlay->_topMargin),
|
||||
_rightMargin(text3DOverlay->_rightMargin),
|
||||
_bottomMargin(text3DOverlay->_bottomMargin),
|
||||
_isFacingAvatar(text3DOverlay->_isFacingAvatar)
|
||||
{
|
||||
}
|
||||
|
||||
Text3DOverlay::~Text3DOverlay() {
|
||||
}
|
||||
|
||||
|
@ -172,7 +185,6 @@ void Text3DOverlay::setProperties(const QScriptValue& properties) {
|
|||
setBottomMargin(properties.property("bottomMargin").toVariant().toFloat());
|
||||
}
|
||||
|
||||
|
||||
QScriptValue isFacingAvatarValue = properties.property("isFacingAvatar");
|
||||
if (isFacingAvatarValue.isValid()) {
|
||||
_isFacingAvatar = isFacingAvatarValue.toVariant().toBool();
|
||||
|
@ -207,10 +219,9 @@ QScriptValue Text3DOverlay::getProperty(const QString& property) {
|
|||
}
|
||||
return Planar3DOverlay::getProperty(property);
|
||||
}
|
||||
|
||||
Text3DOverlay* Text3DOverlay::createClone() {
|
||||
Text3DOverlay* clone = new Text3DOverlay();
|
||||
writeToClone(clone);
|
||||
return clone;
|
||||
return new Text3DOverlay(this);;
|
||||
}
|
||||
|
||||
float Text3DOverlay::textWidth(const QString& text) const {
|
||||
|
@ -220,15 +231,4 @@ float Text3DOverlay::textWidth(const QString& text) const {
|
|||
return scaleFactor * (float)fontMetrics.width(qPrintable(text));
|
||||
}
|
||||
|
||||
void Text3DOverlay::writeToClone(Text3DOverlay* clone) {
|
||||
Planar3DOverlay::writeToClone(clone);
|
||||
clone->setText(getText());
|
||||
clone->setLineHeight(getLineHeight());
|
||||
clone->setLeftMargin(getLeftMargin());
|
||||
clone->setTopMargin(getTopMargin());
|
||||
clone->setRightMargin(getRightMargin());
|
||||
clone->setBottomMargin(getBottomMargin());
|
||||
clone->setIsFacingAvatar(getIsFacingAvatar());
|
||||
clone->_backgroundColor = getBackgroundColor();
|
||||
}
|
||||
|
||||
|
|
|
@ -24,6 +24,7 @@ class Text3DOverlay : public Planar3DOverlay {
|
|||
|
||||
public:
|
||||
Text3DOverlay();
|
||||
Text3DOverlay(Text3DOverlay* text3DOverlay);
|
||||
~Text3DOverlay();
|
||||
virtual void render(RenderArgs* args);
|
||||
|
||||
|
@ -54,7 +55,6 @@ public:
|
|||
virtual Text3DOverlay* createClone();
|
||||
|
||||
private:
|
||||
virtual void writeToClone(Text3DOverlay* clone);
|
||||
void enableClipPlane(GLenum plane, float x, float y, float z, float w);
|
||||
|
||||
QString _text;
|
||||
|
|
|
@ -25,6 +25,16 @@ TextOverlay::TextOverlay() :
|
|||
{
|
||||
}
|
||||
|
||||
TextOverlay::TextOverlay(TextOverlay* textOverlay) :
|
||||
Overlay2D(textOverlay),
|
||||
_text(textOverlay->_text),
|
||||
_backgroundColor(textOverlay->_backgroundColor),
|
||||
_leftMargin(textOverlay->_leftMargin),
|
||||
_topMargin(textOverlay->_topMargin),
|
||||
_fontSize(textOverlay->_fontSize)
|
||||
{
|
||||
}
|
||||
|
||||
TextOverlay::~TextOverlay() {
|
||||
}
|
||||
|
||||
|
@ -125,9 +135,7 @@ void TextOverlay::setProperties(const QScriptValue& properties) {
|
|||
}
|
||||
|
||||
TextOverlay* TextOverlay::createClone() {
|
||||
TextOverlay* clone = new TextOverlay();
|
||||
writeToClone(clone);
|
||||
return clone;
|
||||
return new TextOverlay(this);;
|
||||
}
|
||||
|
||||
QScriptValue TextOverlay::getProperty(const QString& property) {
|
||||
|
@ -152,18 +160,8 @@ QScriptValue TextOverlay::getProperty(const QString& property) {
|
|||
return Overlay2D::getProperty(property);
|
||||
}
|
||||
|
||||
void TextOverlay::writeToClone(TextOverlay* clone) {
|
||||
Overlay2D::writeToClone(clone);
|
||||
clone->_text = _text;
|
||||
clone->_backgroundColor = _backgroundColor;
|
||||
clone->_leftMargin = _leftMargin;
|
||||
clone->_topMargin = _topMargin;
|
||||
clone->_fontSize = _fontSize;
|
||||
}
|
||||
|
||||
float TextOverlay::textWidth(const QString& text) const {
|
||||
QFont font(SANS_FONT_FAMILY, _fontSize, DEFAULT_FONT_WEIGHT); // Same font properties as render()
|
||||
QFontMetrics fontMetrics(font);
|
||||
return fontMetrics.width(qPrintable(text));
|
||||
}
|
||||
|
||||
|
|
|
@ -37,6 +37,7 @@ class TextOverlay : public Overlay2D {
|
|||
|
||||
public:
|
||||
TextOverlay();
|
||||
TextOverlay(TextOverlay* textOverlay);
|
||||
~TextOverlay();
|
||||
virtual void render(RenderArgs* args);
|
||||
|
||||
|
@ -59,8 +60,6 @@ public:
|
|||
float textWidth(const QString& text) const; // Pixels
|
||||
|
||||
private:
|
||||
virtual void writeToClone(TextOverlay* clone);
|
||||
|
||||
QString _text;
|
||||
xColor _backgroundColor;
|
||||
int _leftMargin;
|
||||
|
|
|
@ -28,6 +28,12 @@ Volume3DOverlay::Volume3DOverlay() :
|
|||
{
|
||||
}
|
||||
|
||||
Volume3DOverlay::Volume3DOverlay(Volume3DOverlay* volume3DOverlay) :
|
||||
Base3DOverlay(volume3DOverlay),
|
||||
_dimensions(volume3DOverlay->_dimensions)
|
||||
{
|
||||
}
|
||||
|
||||
Volume3DOverlay::~Volume3DOverlay() {
|
||||
}
|
||||
|
||||
|
@ -116,7 +122,3 @@ bool Volume3DOverlay::findRayIntersection(const glm::vec3& origin, const glm::ve
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void Volume3DOverlay::writeToClone(Volume3DOverlay* clone) {
|
||||
Base3DOverlay::writeToClone(clone);
|
||||
}
|
||||
|
|
|
@ -26,6 +26,7 @@ class Volume3DOverlay : public Base3DOverlay {
|
|||
|
||||
public:
|
||||
Volume3DOverlay();
|
||||
Volume3DOverlay(Volume3DOverlay* volume3DOverlay);
|
||||
~Volume3DOverlay();
|
||||
|
||||
// getters
|
||||
|
@ -43,7 +44,6 @@ public:
|
|||
virtual bool findRayIntersection(const glm::vec3& origin, const glm::vec3& direction, float& distance, BoxFace& face) const;
|
||||
|
||||
protected:
|
||||
virtual void writeToClone(Volume3DOverlay* clone);
|
||||
glm::vec3 _dimensions;
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue