[Orxonox-commit 5757] r10417 - in code/branches/core7/src: modules/objects/collisionshapes orxonox/collisionshapes
landauf at orxonox.net
landauf at orxonox.net
Sun May 3 13:31:18 CEST 2015
Author: landauf
Date: 2015-05-03 13:31:18 +0200 (Sun, 03 May 2015)
New Revision: 10417
Modified:
code/branches/core7/src/modules/objects/collisionshapes/BoxCollisionShape.cc
code/branches/core7/src/modules/objects/collisionshapes/BoxCollisionShape.h
code/branches/core7/src/modules/objects/collisionshapes/ConeCollisionShape.cc
code/branches/core7/src/modules/objects/collisionshapes/ConeCollisionShape.h
code/branches/core7/src/modules/objects/collisionshapes/CylinderCollisionShape.cc
code/branches/core7/src/modules/objects/collisionshapes/CylinderCollisionShape.h
code/branches/core7/src/modules/objects/collisionshapes/PlaneCollisionShape.cc
code/branches/core7/src/modules/objects/collisionshapes/PlaneCollisionShape.h
code/branches/core7/src/modules/objects/collisionshapes/SphereCollisionShape.cc
code/branches/core7/src/modules/objects/collisionshapes/SphereCollisionShape.h
code/branches/core7/src/orxonox/collisionshapes/CollisionShape.cc
code/branches/core7/src/orxonox/collisionshapes/CompoundCollisionShape.cc
code/branches/core7/src/orxonox/collisionshapes/WorldEntityCollisionShape.cc
code/branches/core7/src/orxonox/collisionshapes/WorldEntityCollisionShape.h
Log:
moved destruction of bullet collision shape to ~CollisionShape(). CompoundCollisionShape needs some trickery to avoid that a shape gets deleted twice because it does some magic (i.e. assignments) in CompoundCollisionShape::updatePublicShape()
Modified: code/branches/core7/src/modules/objects/collisionshapes/BoxCollisionShape.cc
===================================================================
--- code/branches/core7/src/modules/objects/collisionshapes/BoxCollisionShape.cc 2015-05-03 10:22:22 UTC (rev 10416)
+++ code/branches/core7/src/modules/objects/collisionshapes/BoxCollisionShape.cc 2015-05-03 11:31:18 UTC (rev 10417)
@@ -57,13 +57,6 @@
this->registerVariables();
}
- BoxCollisionShape::~BoxCollisionShape()
- {
- // TODO: Move to CollisionShape?
- if (this->isInitialized())
- delete this->collisionShape_;
- }
-
void BoxCollisionShape::registerVariables()
{
registerVariable(this->halfExtents_, VariableDirection::ToClient, new NetworkCallback<CollisionShape>(this, &CollisionShape::updateShape));
Modified: code/branches/core7/src/modules/objects/collisionshapes/BoxCollisionShape.h
===================================================================
--- code/branches/core7/src/modules/objects/collisionshapes/BoxCollisionShape.h 2015-05-03 10:22:22 UTC (rev 10416)
+++ code/branches/core7/src/modules/objects/collisionshapes/BoxCollisionShape.h 2015-05-03 11:31:18 UTC (rev 10417)
@@ -57,7 +57,6 @@
{
public:
BoxCollisionShape(Context* context);
- virtual ~BoxCollisionShape();
virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
Modified: code/branches/core7/src/modules/objects/collisionshapes/ConeCollisionShape.cc
===================================================================
--- code/branches/core7/src/modules/objects/collisionshapes/ConeCollisionShape.cc 2015-05-03 10:22:22 UTC (rev 10416)
+++ code/branches/core7/src/modules/objects/collisionshapes/ConeCollisionShape.cc 2015-05-03 11:31:18 UTC (rev 10417)
@@ -53,12 +53,6 @@
updateShape();
}
- ConeCollisionShape::~ConeCollisionShape()
- {
- if (this->isInitialized())
- delete this->collisionShape_;
- }
-
/**
@brief
Creates a new internal collision shape for the ConeCollisionShape.
Modified: code/branches/core7/src/modules/objects/collisionshapes/ConeCollisionShape.h
===================================================================
--- code/branches/core7/src/modules/objects/collisionshapes/ConeCollisionShape.h 2015-05-03 10:22:22 UTC (rev 10416)
+++ code/branches/core7/src/modules/objects/collisionshapes/ConeCollisionShape.h 2015-05-03 11:31:18 UTC (rev 10417)
@@ -55,7 +55,6 @@
{
public:
ConeCollisionShape(Context* context);
- virtual ~ConeCollisionShape();
private:
btCollisionShape* createNewShape() const; // Creates a new internal collision shape for the ConeCollisionShape.
Modified: code/branches/core7/src/modules/objects/collisionshapes/CylinderCollisionShape.cc
===================================================================
--- code/branches/core7/src/modules/objects/collisionshapes/CylinderCollisionShape.cc 2015-05-03 10:22:22 UTC (rev 10416)
+++ code/branches/core7/src/modules/objects/collisionshapes/CylinderCollisionShape.cc 2015-05-03 11:31:18 UTC (rev 10417)
@@ -53,12 +53,6 @@
updateShape();
}
- CylinderCollisionShape::~CylinderCollisionShape()
- {
- if (this->isInitialized())
- delete this->collisionShape_;
- }
-
/**
@brief
Creates a new internal collision shape for the CylinderCollisionShape.
Modified: code/branches/core7/src/modules/objects/collisionshapes/CylinderCollisionShape.h
===================================================================
--- code/branches/core7/src/modules/objects/collisionshapes/CylinderCollisionShape.h 2015-05-03 10:22:22 UTC (rev 10416)
+++ code/branches/core7/src/modules/objects/collisionshapes/CylinderCollisionShape.h 2015-05-03 11:31:18 UTC (rev 10417)
@@ -52,7 +52,6 @@
{
public:
CylinderCollisionShape(Context* context);
- virtual ~CylinderCollisionShape();
private:
btCollisionShape* createNewShape() const; // Creates a new internal collision shape for the CylinderCollisionShape.
Modified: code/branches/core7/src/modules/objects/collisionshapes/PlaneCollisionShape.cc
===================================================================
--- code/branches/core7/src/modules/objects/collisionshapes/PlaneCollisionShape.cc 2015-05-03 10:22:22 UTC (rev 10416)
+++ code/branches/core7/src/modules/objects/collisionshapes/PlaneCollisionShape.cc 2015-05-03 11:31:18 UTC (rev 10417)
@@ -58,12 +58,6 @@
this->registerVariables();
}
- PlaneCollisionShape::~PlaneCollisionShape()
- {
- if (this->isInitialized())
- delete this->collisionShape_;
- }
-
void PlaneCollisionShape::registerVariables()
{
registerVariable(this->normal_, VariableDirection::ToClient, new NetworkCallback<CollisionShape>(this, &CollisionShape::updateShape));
Modified: code/branches/core7/src/modules/objects/collisionshapes/PlaneCollisionShape.h
===================================================================
--- code/branches/core7/src/modules/objects/collisionshapes/PlaneCollisionShape.h 2015-05-03 10:22:22 UTC (rev 10416)
+++ code/branches/core7/src/modules/objects/collisionshapes/PlaneCollisionShape.h 2015-05-03 11:31:18 UTC (rev 10417)
@@ -57,7 +57,6 @@
{
public:
PlaneCollisionShape(Context* context);
- virtual ~PlaneCollisionShape();
virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
Modified: code/branches/core7/src/modules/objects/collisionshapes/SphereCollisionShape.cc
===================================================================
--- code/branches/core7/src/modules/objects/collisionshapes/SphereCollisionShape.cc 2015-05-03 10:22:22 UTC (rev 10416)
+++ code/branches/core7/src/modules/objects/collisionshapes/SphereCollisionShape.cc 2015-05-03 11:31:18 UTC (rev 10417)
@@ -57,12 +57,6 @@
this->registerVariables();
}
- SphereCollisionShape::~SphereCollisionShape()
- {
- if (this->isInitialized())
- delete this->collisionShape_;
- }
-
void SphereCollisionShape::registerVariables()
{
registerVariable(this->radius_, VariableDirection::ToClient, new NetworkCallback<CollisionShape>(this, &CollisionShape::updateShape));
Modified: code/branches/core7/src/modules/objects/collisionshapes/SphereCollisionShape.h
===================================================================
--- code/branches/core7/src/modules/objects/collisionshapes/SphereCollisionShape.h 2015-05-03 10:22:22 UTC (rev 10416)
+++ code/branches/core7/src/modules/objects/collisionshapes/SphereCollisionShape.h 2015-05-03 11:31:18 UTC (rev 10417)
@@ -55,7 +55,6 @@
{
public:
SphereCollisionShape(Context* context);
- virtual ~SphereCollisionShape();
virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
Modified: code/branches/core7/src/orxonox/collisionshapes/CollisionShape.cc
===================================================================
--- code/branches/core7/src/orxonox/collisionshapes/CollisionShape.cc 2015-05-03 10:22:22 UTC (rev 10416)
+++ code/branches/core7/src/orxonox/collisionshapes/CollisionShape.cc 2015-05-03 11:31:18 UTC (rev 10417)
@@ -81,6 +81,9 @@
if (this->parent_)
this->parent_->detach(this);
+
+ if (this->collisionShape_)
+ delete this->collisionShape_;
}
}
Modified: code/branches/core7/src/orxonox/collisionshapes/CompoundCollisionShape.cc
===================================================================
--- code/branches/core7/src/orxonox/collisionshapes/CompoundCollisionShape.cc 2015-05-03 10:22:22 UTC (rev 10416)
+++ code/branches/core7/src/orxonox/collisionshapes/CompoundCollisionShape.cc 2015-05-03 11:31:18 UTC (rev 10417)
@@ -70,9 +70,13 @@
// make sure that the child doesn't want to detach itself --> speedup because of the missing update
it->first->notifyDetached();
it->first->destroy();
+ if (this->collisionShape_ == it->second)
+ this->collisionShape_ = NULL; // don't destroy it twice
}
delete this->compoundShape_;
+ if (this->collisionShape_ == this->compoundShape_)
+ this->collisionShape_ = NULL; // don't destroy it twice
}
}
Modified: code/branches/core7/src/orxonox/collisionshapes/WorldEntityCollisionShape.cc
===================================================================
--- code/branches/core7/src/orxonox/collisionshapes/WorldEntityCollisionShape.cc 2015-05-03 10:22:22 UTC (rev 10416)
+++ code/branches/core7/src/orxonox/collisionshapes/WorldEntityCollisionShape.cc 2015-05-03 11:31:18 UTC (rev 10417)
@@ -47,11 +47,6 @@
this->setSyncMode(ObjectDirection::None);
}
- WorldEntityCollisionShape::~WorldEntityCollisionShape()
- {
- // Called always by WE destructor
- }
-
void WorldEntityCollisionShape::updateParent()
{
// Note: This shape may also be attached to a CompoundCollisionShape because it's hosting
Modified: code/branches/core7/src/orxonox/collisionshapes/WorldEntityCollisionShape.h
===================================================================
--- code/branches/core7/src/orxonox/collisionshapes/WorldEntityCollisionShape.h 2015-05-03 10:22:22 UTC (rev 10416)
+++ code/branches/core7/src/orxonox/collisionshapes/WorldEntityCollisionShape.h 2015-05-03 11:31:18 UTC (rev 10417)
@@ -38,7 +38,6 @@
{
public:
WorldEntityCollisionShape(Context* context);
- virtual ~WorldEntityCollisionShape();
inline void setWorldEntityOwner(WorldEntity* worldEntityOwner)
{ this->worldEntityOwner_ = worldEntityOwner; }
More information about the Orxonox-commit
mailing list