sam's feedback on shared pointers in master

This commit is contained in:
ZappoMan 2015-05-26 09:55:28 -07:00
parent c92e7bed87
commit c4f96b09a2
4 changed files with 11 additions and 15 deletions

View file

@ -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);
} }
} }
} }

View file

@ -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;

View file

@ -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 {

View file

@ -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);