mirror of
https://github.com/overte-org/overte.git
synced 2025-08-08 23:57:13 +02:00
remove RenderableZoneEntityItem class since zones don't render like other entities
This commit is contained in:
parent
4ce451f984
commit
8366dd02a0
3 changed files with 25 additions and 108 deletions
|
@ -34,7 +34,6 @@
|
||||||
#include "RenderableParticleEffectEntityItem.h"
|
#include "RenderableParticleEffectEntityItem.h"
|
||||||
#include "RenderableSphereEntityItem.h"
|
#include "RenderableSphereEntityItem.h"
|
||||||
#include "RenderableTextEntityItem.h"
|
#include "RenderableTextEntityItem.h"
|
||||||
#include "RenderableZoneEntityItem.h"
|
|
||||||
#include "EntitiesRendererLogging.h"
|
#include "EntitiesRendererLogging.h"
|
||||||
#include "ZoneEntityItem.h"
|
#include "ZoneEntityItem.h"
|
||||||
|
|
||||||
|
@ -58,7 +57,6 @@ EntityTreeRenderer::EntityTreeRenderer(bool wantScripts, AbstractViewStateInterf
|
||||||
REGISTER_ENTITY_TYPE_WITH_FACTORY(Light, RenderableLightEntityItem::factory)
|
REGISTER_ENTITY_TYPE_WITH_FACTORY(Light, RenderableLightEntityItem::factory)
|
||||||
REGISTER_ENTITY_TYPE_WITH_FACTORY(Text, RenderableTextEntityItem::factory)
|
REGISTER_ENTITY_TYPE_WITH_FACTORY(Text, RenderableTextEntityItem::factory)
|
||||||
REGISTER_ENTITY_TYPE_WITH_FACTORY(ParticleEffect, RenderableParticleEffectEntityItem::factory)
|
REGISTER_ENTITY_TYPE_WITH_FACTORY(ParticleEffect, RenderableParticleEffectEntityItem::factory)
|
||||||
REGISTER_ENTITY_TYPE_WITH_FACTORY(Zone, RenderableZoneEntityItem::factory)
|
|
||||||
|
|
||||||
_currentHoverOverEntityID = EntityItemID::createInvalidEntityID(); // makes it the unknown ID
|
_currentHoverOverEntityID = EntityItemID::createInvalidEntityID(); // makes it the unknown ID
|
||||||
_currentClickingOnEntityID = EntityItemID::createInvalidEntityID(); // makes it the unknown ID
|
_currentClickingOnEntityID = EntityItemID::createInvalidEntityID(); // makes it the unknown ID
|
||||||
|
@ -696,42 +694,42 @@ void EntityTreeRenderer::renderElement(OctreeElement* element, RenderArgs* args)
|
||||||
|
|
||||||
if (entityItem->isVisible()) {
|
if (entityItem->isVisible()) {
|
||||||
|
|
||||||
// Zone Entities are a special case we handle here...
|
// NOTE: Zone Entities are a special case we handle here... Zones don't render
|
||||||
|
// like other entity types. So we will skip the normal rendering tests
|
||||||
if (entityItem->getType() == EntityTypes::Zone) {
|
if (entityItem->getType() == EntityTypes::Zone) {
|
||||||
if (entityItem->contains(args->_viewFrustum->getPosition())) {
|
if (entityItem->contains(args->_viewFrustum->getPosition())) {
|
||||||
_currentZones << entityItem->getEntityItemID();
|
_currentZones << entityItem->getEntityItemID();
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
// NOTE: we might not want to render zones here...
|
// render entityItem
|
||||||
|
AABox entityBox = entityItem->getAABox();
|
||||||
// render entityItem
|
|
||||||
AABox entityBox = entityItem->getAABox();
|
|
||||||
|
|
||||||
// TODO: some entity types (like lights) might want to be rendered even
|
// TODO: some entity types (like lights) might want to be rendered even
|
||||||
// when they are outside of the view frustum...
|
// when they are outside of the view frustum...
|
||||||
float distance = args->_viewFrustum->distanceToCamera(entityBox.calcCenter());
|
float distance = args->_viewFrustum->distanceToCamera(entityBox.calcCenter());
|
||||||
|
|
||||||
bool outOfView = args->_viewFrustum->boxInFrustum(entityBox) == ViewFrustum::OUTSIDE;
|
bool outOfView = args->_viewFrustum->boxInFrustum(entityBox) == ViewFrustum::OUTSIDE;
|
||||||
if (!outOfView) {
|
if (!outOfView) {
|
||||||
bool bigEnoughToRender = _viewState->shouldRenderMesh(entityBox.getLargestDimension(), distance);
|
bool bigEnoughToRender = _viewState->shouldRenderMesh(entityBox.getLargestDimension(), distance);
|
||||||
|
|
||||||
if (bigEnoughToRender) {
|
if (bigEnoughToRender) {
|
||||||
renderProxies(entityItem, args);
|
renderProxies(entityItem, args);
|
||||||
|
|
||||||
Glower* glower = NULL;
|
Glower* glower = NULL;
|
||||||
if (entityItem->getGlowLevel() > 0.0f) {
|
if (entityItem->getGlowLevel() > 0.0f) {
|
||||||
glower = new Glower(entityItem->getGlowLevel());
|
glower = new Glower(entityItem->getGlowLevel());
|
||||||
}
|
}
|
||||||
entityItem->render(args);
|
entityItem->render(args);
|
||||||
args->_itemsRendered++;
|
args->_itemsRendered++;
|
||||||
if (glower) {
|
if (glower) {
|
||||||
delete glower;
|
delete glower;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
args->_itemsTooSmall++;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
args->_itemsTooSmall++;
|
args->_itemsOutOfView++;
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
args->_itemsOutOfView++;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,52 +0,0 @@
|
||||||
//
|
|
||||||
// RenderableZoneEntityItem.cpp
|
|
||||||
// interface/src
|
|
||||||
//
|
|
||||||
// Created by Brad Hefta-Gaub on 8/6/14.
|
|
||||||
// Copyright 2014 High Fidelity, Inc.
|
|
||||||
//
|
|
||||||
// Distributed under the Apache License, Version 2.0.
|
|
||||||
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
|
||||||
//
|
|
||||||
|
|
||||||
#include <glm/gtx/quaternion.hpp>
|
|
||||||
|
|
||||||
#include <gpu/GPUConfig.h>
|
|
||||||
|
|
||||||
#include <DeferredLightingEffect.h>
|
|
||||||
#include <PerfStat.h>
|
|
||||||
|
|
||||||
#include "RenderableZoneEntityItem.h"
|
|
||||||
|
|
||||||
EntityItem* RenderableZoneEntityItem::factory(const EntityItemID& entityID, const EntityItemProperties& properties) {
|
|
||||||
return new RenderableZoneEntityItem(entityID, properties);
|
|
||||||
}
|
|
||||||
|
|
||||||
void RenderableZoneEntityItem::render(RenderArgs* args) {
|
|
||||||
PerformanceTimer perfTimer("RenderableZoneEntityItem::render");
|
|
||||||
assert(getType() == EntityTypes::Zone);
|
|
||||||
glm::vec3 position = getPosition();
|
|
||||||
glm::vec3 center = getCenter();
|
|
||||||
glm::vec3 dimensions = getDimensions();
|
|
||||||
glm::quat rotation = getRotation();
|
|
||||||
|
|
||||||
const float MAX_COLOR = 255.0f;
|
|
||||||
|
|
||||||
glm::vec4 cubeColor(_keyLightColor[RED_INDEX] / MAX_COLOR, _keyLightColor[GREEN_INDEX] / MAX_COLOR,
|
|
||||||
_keyLightColor[BLUE_INDEX] / MAX_COLOR, getLocalRenderAlpha());
|
|
||||||
|
|
||||||
glPushMatrix();
|
|
||||||
glTranslatef(position.x, position.y, position.z);
|
|
||||||
glm::vec3 axis = glm::axis(rotation);
|
|
||||||
glRotatef(glm::degrees(glm::angle(rotation)), axis.x, axis.y, axis.z);
|
|
||||||
glPushMatrix();
|
|
||||||
glm::vec3 positionToCenter = center - position;
|
|
||||||
glTranslatef(positionToCenter.x, positionToCenter.y, positionToCenter.z);
|
|
||||||
glScalef(dimensions.x, dimensions.y, dimensions.z);
|
|
||||||
DependencyManager::get<DeferredLightingEffect>()->renderWireCube(1.0f, cubeColor);
|
|
||||||
glPopMatrix();
|
|
||||||
glPopMatrix();
|
|
||||||
|
|
||||||
//debugDump();
|
|
||||||
|
|
||||||
};
|
|
|
@ -1,29 +0,0 @@
|
||||||
//
|
|
||||||
// RenderableZoneEntityItem.h
|
|
||||||
// interface/src/entities
|
|
||||||
//
|
|
||||||
// Created by Brad Hefta-Gaub on 8/6/14.
|
|
||||||
// Copyright 2014 High Fidelity, Inc.
|
|
||||||
//
|
|
||||||
// Distributed under the Apache License, Version 2.0.
|
|
||||||
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
|
||||||
//
|
|
||||||
|
|
||||||
#ifndef hifi_RenderableZoneEntityItem_h
|
|
||||||
#define hifi_RenderableZoneEntityItem_h
|
|
||||||
|
|
||||||
#include <ZoneEntityItem.h>
|
|
||||||
|
|
||||||
class RenderableZoneEntityItem : public ZoneEntityItem {
|
|
||||||
public:
|
|
||||||
static EntityItem* factory(const EntityItemID& entityID, const EntityItemProperties& properties);
|
|
||||||
|
|
||||||
RenderableZoneEntityItem(const EntityItemID& entityItemID, const EntityItemProperties& properties) :
|
|
||||||
ZoneEntityItem(entityItemID, properties)
|
|
||||||
{ }
|
|
||||||
|
|
||||||
virtual void render(RenderArgs* args);
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
#endif // hifi_RenderableZoneEntityItem_h
|
|
Loading…
Reference in a new issue