chore: disable grid center sphere and fix priority
This commit is contained in:
@@ -44,7 +44,7 @@ public:
|
|||||||
size_t getInstanceCount() override { return _instances.size(); }
|
size_t getInstanceCount() override { return _instances.size(); }
|
||||||
SceneAsset* getInstanceByEntity(utils::Entity entity) override;
|
SceneAsset* getInstanceByEntity(utils::Entity entity) override;
|
||||||
SceneAsset* getInstanceAt(size_t index) override;
|
SceneAsset* getInstanceAt(size_t index) override;
|
||||||
size_t getChildEntityCount() override { return 2; }
|
size_t getChildEntityCount() override;
|
||||||
const Entity* getChildEntities() override;
|
const Entity* getChildEntities() override;
|
||||||
Entity findEntityByName(const char* name) override;
|
Entity findEntityByName(const char* name) override;
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ namespace thermion
|
|||||||
GridOverlay::GridOverlay(Engine &engine, Material *material) : _engine(engine), _material(material)
|
GridOverlay::GridOverlay(Engine &engine, Material *material) : _engine(engine), _material(material)
|
||||||
{
|
{
|
||||||
createGrid();
|
createGrid();
|
||||||
createSphere();
|
//createSphere();
|
||||||
}
|
}
|
||||||
|
|
||||||
GridOverlay::~GridOverlay()
|
GridOverlay::~GridOverlay()
|
||||||
@@ -16,12 +16,15 @@ namespace thermion
|
|||||||
auto &rm = _engine.getRenderableManager();
|
auto &rm = _engine.getRenderableManager();
|
||||||
auto &tm = _engine.getTransformManager();
|
auto &tm = _engine.getTransformManager();
|
||||||
|
|
||||||
rm.destroy(_sphereEntity);
|
|
||||||
rm.destroy(_gridEntity);
|
rm.destroy(_gridEntity);
|
||||||
tm.destroy(_sphereEntity);
|
|
||||||
tm.destroy(_gridEntity);
|
tm.destroy(_gridEntity);
|
||||||
_engine.destroy(_sphereEntity);
|
|
||||||
_engine.destroy(_gridEntity);
|
_engine.destroy(_gridEntity);
|
||||||
|
|
||||||
|
// rm.destroy(_sphereEntity);
|
||||||
|
// tm.destroy(_sphereEntity);
|
||||||
|
// _engine.destroy(_sphereEntity);
|
||||||
|
|
||||||
_engine.destroy(_materialInstance);
|
_engine.destroy(_materialInstance);
|
||||||
_engine.destroy(_material);
|
_engine.destroy(_material);
|
||||||
}
|
}
|
||||||
@@ -95,20 +98,20 @@ namespace thermion
|
|||||||
// Set material parameters to match Dart implementation
|
// Set material parameters to match Dart implementation
|
||||||
_materialInstance->setParameter("distance", 10000.0f);
|
_materialInstance->setParameter("distance", 10000.0f);
|
||||||
_materialInstance->setParameter("lineSize", 0.01f);
|
_materialInstance->setParameter("lineSize", 0.01f);
|
||||||
_materialInstance->setCullingMode(MaterialInstance::CullingMode::NONE);
|
|
||||||
|
|
||||||
RenderableManager::Builder(1)
|
RenderableManager::Builder(1)
|
||||||
.boundingBox({{-1.0f, -1.0f, -1.0f}, // Min point
|
.boundingBox({{-1.0f, -1.0f, -1.0f}, // Min point
|
||||||
{1.0f, 1.0f, 1.0f}}) // Max point
|
{1.0f, 1.0f, 1.0f}}) // Max point
|
||||||
.geometry(0, RenderableManager::PrimitiveType::TRIANGLES, vb, ib, 0, indices->size())
|
.geometry(0, RenderableManager::PrimitiveType::TRIANGLES, vb, ib, 0, indices->size())
|
||||||
.material(0, _materialInstance)
|
.material(0, _materialInstance)
|
||||||
.priority(1)
|
.priority(0x7)
|
||||||
.layerMask(0xFF, 1u << SceneManager::LAYERS::OVERLAY)
|
.layerMask(0xFF, 1u << SceneManager::LAYERS::OVERLAY)
|
||||||
/*
|
/*
|
||||||
We disable culling here because we calculate the quad's world-space coordinates
|
We disable culling here because we calculate the quad's world-space coordinates
|
||||||
manually in the shader (see grid.mat). Without this, the quad would be culled before
|
manually in the shader (see grid.mat). Without this, the quad would be culled before
|
||||||
rendered.
|
rendered.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
.culling(false)
|
.culling(false)
|
||||||
.receiveShadows(false)
|
.receiveShadows(false)
|
||||||
.castShadows(false)
|
.castShadows(false)
|
||||||
@@ -216,29 +219,29 @@ namespace thermion
|
|||||||
void GridOverlay::addAllEntities(Scene *scene)
|
void GridOverlay::addAllEntities(Scene *scene)
|
||||||
{
|
{
|
||||||
scene->addEntity(_gridEntity);
|
scene->addEntity(_gridEntity);
|
||||||
scene->addEntity(_sphereEntity);
|
// scene->addEntity(_sphereEntity);
|
||||||
}
|
}
|
||||||
|
|
||||||
void GridOverlay::removeAllEntities(Scene *scene)
|
void GridOverlay::removeAllEntities(Scene *scene)
|
||||||
{
|
{
|
||||||
scene->remove(_gridEntity);
|
scene->remove(_gridEntity);
|
||||||
scene->remove(_sphereEntity);
|
// scene->remove(_sphereEntity);
|
||||||
}
|
}
|
||||||
|
|
||||||
void GridOverlay::setPriority(RenderableManager &rm, int priority)
|
void GridOverlay::setPriority(RenderableManager &rm, int priority)
|
||||||
{
|
{
|
||||||
auto gridInstance = rm.getInstance(_gridEntity);
|
auto gridInstance = rm.getInstance(_gridEntity);
|
||||||
rm.setPriority(gridInstance, priority);
|
rm.setPriority(gridInstance, priority);
|
||||||
auto sphereInstance = rm.getInstance(_sphereEntity);
|
// auto sphereInstance = rm.getInstance(_sphereEntity);
|
||||||
rm.setPriority(sphereInstance, priority);
|
// rm.setPriority(sphereInstance, priority);
|
||||||
}
|
}
|
||||||
|
|
||||||
void GridOverlay::setLayer(RenderableManager &rm, int layer)
|
void GridOverlay::setLayer(RenderableManager &rm, int layer)
|
||||||
{
|
{
|
||||||
auto gridInstance = rm.getInstance(_gridEntity);
|
auto gridInstance = rm.getInstance(_gridEntity);
|
||||||
rm.setLayerMask(gridInstance, 0xFF, 1u << (uint8_t)layer);
|
rm.setLayerMask(gridInstance, 0xFF, 1u << (uint8_t)layer);
|
||||||
auto sphereInstance = rm.getInstance(_sphereEntity);
|
// auto sphereInstance = rm.getInstance(_sphereEntity);
|
||||||
rm.setLayerMask(sphereInstance, 0xFF, 1u << (uint8_t)layer);
|
// rm.setLayerMask(sphereInstance, 0xFF, 1u << (uint8_t)layer);
|
||||||
}
|
}
|
||||||
|
|
||||||
SceneAsset *GridOverlay::getInstanceByEntity(utils::Entity entity)
|
SceneAsset *GridOverlay::getInstanceByEntity(utils::Entity entity)
|
||||||
@@ -263,6 +266,10 @@ namespace thermion
|
|||||||
return _childEntities;
|
return _childEntities;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
size_t GridOverlay::getChildEntityCount() {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
Entity GridOverlay::findEntityByName(const char *name)
|
Entity GridOverlay::findEntityByName(const char *name)
|
||||||
{
|
{
|
||||||
return Entity(); // Not implemented
|
return Entity(); // Not implemented
|
||||||
|
|||||||
Reference in New Issue
Block a user