mirror of
https://github.com/lubosz/overte.git
synced 2025-08-07 19:01:09 +02:00
sam's feedback on shared pointers in master
This commit is contained in:
parent
c92e7bed87
commit
c4f96b09a2
4 changed files with 11 additions and 15 deletions
|
@ -521,8 +521,8 @@ const FBXGeometry* EntityTreeRenderer::getGeometryForEntity(EntityItemPointer en
|
||||||
const FBXGeometry* result = NULL;
|
const FBXGeometry* result = NULL;
|
||||||
|
|
||||||
if (entityItem->getType() == EntityTypes::Model) {
|
if (entityItem->getType() == EntityTypes::Model) {
|
||||||
const RenderableModelEntityItem* constModelEntityItem = dynamic_cast<const RenderableModelEntityItem*>(entityItem.get());
|
std::shared_ptr<RenderableModelEntityItem> modelEntityItem =
|
||||||
RenderableModelEntityItem* modelEntityItem = const_cast<RenderableModelEntityItem*>(constModelEntityItem);
|
std::dynamic_pointer_cast<RenderableModelEntityItem>(entityItem);
|
||||||
assert(modelEntityItem); // we need this!!!
|
assert(modelEntityItem); // we need this!!!
|
||||||
Model* model = modelEntityItem->getModel(this);
|
Model* model = modelEntityItem->getModel(this);
|
||||||
if (model) {
|
if (model) {
|
||||||
|
@ -535,8 +535,8 @@ const FBXGeometry* EntityTreeRenderer::getGeometryForEntity(EntityItemPointer en
|
||||||
const Model* EntityTreeRenderer::getModelForEntityItem(EntityItemPointer entityItem) {
|
const Model* EntityTreeRenderer::getModelForEntityItem(EntityItemPointer entityItem) {
|
||||||
const Model* result = NULL;
|
const Model* result = NULL;
|
||||||
if (entityItem->getType() == EntityTypes::Model) {
|
if (entityItem->getType() == EntityTypes::Model) {
|
||||||
const RenderableModelEntityItem* constModelEntityItem = dynamic_cast<const RenderableModelEntityItem*>(entityItem.get());
|
std::shared_ptr<RenderableModelEntityItem> modelEntityItem =
|
||||||
RenderableModelEntityItem* modelEntityItem = const_cast<RenderableModelEntityItem*>(constModelEntityItem);
|
std::dynamic_pointer_cast<RenderableModelEntityItem>(entityItem);
|
||||||
result = modelEntityItem->getModel(this);
|
result = modelEntityItem->getModel(this);
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
|
@ -546,9 +546,9 @@ const FBXGeometry* EntityTreeRenderer::getCollisionGeometryForEntity(EntityItemP
|
||||||
const FBXGeometry* result = NULL;
|
const FBXGeometry* result = NULL;
|
||||||
|
|
||||||
if (entityItem->getType() == EntityTypes::Model) {
|
if (entityItem->getType() == EntityTypes::Model) {
|
||||||
const RenderableModelEntityItem* constModelEntityItem = dynamic_cast<const RenderableModelEntityItem*>(entityItem.get());
|
std::shared_ptr<RenderableModelEntityItem> modelEntityItem =
|
||||||
if (constModelEntityItem->hasCompoundShapeURL()) {
|
std::dynamic_pointer_cast<RenderableModelEntityItem>(entityItem);
|
||||||
RenderableModelEntityItem* modelEntityItem = const_cast<RenderableModelEntityItem*>(constModelEntityItem);
|
if (modelEntityItem->hasCompoundShapeURL()) {
|
||||||
Model* model = modelEntityItem->getModel(this);
|
Model* model = modelEntityItem->getModel(this);
|
||||||
if (model) {
|
if (model) {
|
||||||
const QSharedPointer<NetworkGeometry> collisionNetworkGeometry = model->getCollisionGeometry();
|
const QSharedPointer<NetworkGeometry> collisionNetworkGeometry = model->getCollisionGeometry();
|
||||||
|
@ -696,17 +696,17 @@ void EntityTreeRenderer::renderElement(OctreeElement* element, RenderArgs* args)
|
||||||
float entityVolumeEstimate = entityItem->getVolumeEstimate();
|
float entityVolumeEstimate = entityItem->getVolumeEstimate();
|
||||||
if (entityVolumeEstimate < _bestZoneVolume) {
|
if (entityVolumeEstimate < _bestZoneVolume) {
|
||||||
_bestZoneVolume = entityVolumeEstimate;
|
_bestZoneVolume = entityVolumeEstimate;
|
||||||
_bestZone = dynamic_cast<const ZoneEntityItem*>(entityItem.get());
|
_bestZone = std::dynamic_pointer_cast<ZoneEntityItem>(entityItem);
|
||||||
} else if (entityVolumeEstimate == _bestZoneVolume) {
|
} else if (entityVolumeEstimate == _bestZoneVolume) {
|
||||||
if (!_bestZone) {
|
if (!_bestZone) {
|
||||||
_bestZoneVolume = entityVolumeEstimate;
|
_bestZoneVolume = entityVolumeEstimate;
|
||||||
_bestZone = dynamic_cast<const ZoneEntityItem*>(entityItem.get());
|
_bestZone = std::dynamic_pointer_cast<ZoneEntityItem>(entityItem);
|
||||||
} else {
|
} else {
|
||||||
// in the case of the volume being equal, we will use the
|
// in the case of the volume being equal, we will use the
|
||||||
// EntityItemID to deterministically pick one entity over the other
|
// EntityItemID to deterministically pick one entity over the other
|
||||||
if (entityItem->getEntityItemID() < _bestZone->getEntityItemID()) {
|
if (entityItem->getEntityItemID() < _bestZone->getEntityItemID()) {
|
||||||
_bestZoneVolume = entityVolumeEstimate;
|
_bestZoneVolume = entityVolumeEstimate;
|
||||||
_bestZone = dynamic_cast<const ZoneEntityItem*>(entityItem.get());
|
_bestZone = std::dynamic_pointer_cast<ZoneEntityItem>(entityItem);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -173,7 +173,7 @@ private:
|
||||||
QMultiMap<QUrl, EntityItemID> _waitingOnPreload;
|
QMultiMap<QUrl, EntityItemID> _waitingOnPreload;
|
||||||
|
|
||||||
bool _hasPreviousZone = false;
|
bool _hasPreviousZone = false;
|
||||||
const ZoneEntityItem* _bestZone;
|
std::shared_ptr<ZoneEntityItem> _bestZone;
|
||||||
float _bestZoneVolume;
|
float _bestZoneVolume;
|
||||||
|
|
||||||
glm::vec3 _previousKeyLightColor;
|
glm::vec3 _previousKeyLightColor;
|
||||||
|
|
|
@ -87,9 +87,6 @@ EntityItem::~EntityItem() {
|
||||||
assert(!_simulated);
|
assert(!_simulated);
|
||||||
assert(!_element);
|
assert(!_element);
|
||||||
assert(!_physicsInfo);
|
assert(!_physicsInfo);
|
||||||
|
|
||||||
qDebug() << "EntityItem::~EntityItem()";
|
|
||||||
debugDump();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
EntityPropertyFlags EntityItem::getEntityProperties(EncodeBitstreamParams& params) const {
|
EntityPropertyFlags EntityItem::getEntityProperties(EncodeBitstreamParams& params) const {
|
||||||
|
|
|
@ -21,7 +21,6 @@
|
||||||
|
|
||||||
class EntityItem;
|
class EntityItem;
|
||||||
typedef std::shared_ptr<EntityItem> EntityItemPointer;
|
typedef std::shared_ptr<EntityItem> EntityItemPointer;
|
||||||
//typedef EntityItem* EntityItemPointer;
|
|
||||||
|
|
||||||
inline uint qHash(const EntityItemPointer& a, uint seed) {
|
inline uint qHash(const EntityItemPointer& a, uint seed) {
|
||||||
return qHash(a.get(), seed);
|
return qHash(a.get(), seed);
|
||||||
|
|
Loading…
Reference in a new issue