Skip to content

Commit

Permalink
#5584: Remove old control point rendering code
Browse files Browse the repository at this point in the history
  • Loading branch information
codereader committed Jan 16, 2022
1 parent 9ad5f42 commit a3b428c
Show file tree
Hide file tree
Showing 5 changed files with 9 additions and 141 deletions.
28 changes: 1 addition & 27 deletions radiantcore/entity/curve/CurveControlPointFunctors.h
@@ -1,5 +1,4 @@
#ifndef CURVECONTROLPOINTFUNCTORS_H_
#define CURVECONTROLPOINTFUNCTORS_H_
#pragma once

#include "CurveEditInstance.h"

Expand Down Expand Up @@ -34,29 +33,6 @@ class ControlPointTransformator :
}
};

class ControlPointAdder :
public CurveEditInstance::ControlPointFunctor,
public CurveEditInstance::ControlPointConstFunctor
{
RenderablePointVector& _points;
Colour4b _colour;
public:
ControlPointAdder(RenderablePointVector& points, const Colour4b& colour = colour_vertex) :
_points(points),
_colour(colour)
{}

// Functor
void operator()(Vector3& point, const Vector3& original) {
_points.push_back(VertexCb(Vertex3f(point), _colour));
}

// ConstFunctor
void operator()(const Vector3& point, const Vector3& original) {
_points.push_back(VertexCb(Vertex3f(point), _colour));
}
};

class ControlPointBoundsAdder :
public CurveEditInstance::ControlPointConstFunctor
{
Expand All @@ -72,5 +48,3 @@ class ControlPointBoundsAdder :
};

} // namespace entity

#endif /*CURVECONTROLPOINTFUNCTORS_H_*/
52 changes: 2 additions & 50 deletions radiantcore/entity/curve/CurveEditInstance.cpp
Expand Up @@ -10,9 +10,7 @@ CurveEditInstance::CurveEditInstance(Curve& curve, const SelectionChangedSlot& s
_curve(curve),
_selectionChanged(selectionChanged),
_controlPointsTransformed(_curve.getTransformedControlPoints()),
_controlPoints(_curve.getControlPoints()),
m_controlsRender(GL_POINTS),
m_selectedRender(GL_POINTS)
_controlPoints(_curve.getControlPoints())
{}

void CurveEditInstance::testSelect(Selector& selector, SelectionTest& test)
Expand All @@ -32,20 +30,6 @@ void CurveEditInstance::testSelect(Selector& selector, SelectionTest& test)
}
}

void CurveEditInstance::setRenderSystem(const RenderSystemPtr& renderSystem)
{
if (renderSystem)
{
_shaders.controlsShader = renderSystem->capture("$POINT");
_shaders.selectedShader = renderSystem->capture("$SELPOINT");
}
else
{
_shaders.controlsShader.reset();
_shaders.selectedShader.reset();
}
}

bool CurveEditInstance::isSelected() const {
for(Selectables::const_iterator i = _selectables.begin(); i != _selectables.end(); ++i)
{
Expand Down Expand Up @@ -161,41 +145,9 @@ void CurveEditInstance::snapto(float snap) {
forEachSelected(snapper);
}

void CurveEditInstance::updateSelected() const {
m_selectedRender.clear();
ControlPointAdder adder(m_selectedRender, colour_selected);
forEachSelected(adder);
}

void CurveEditInstance::renderComponents(IRenderableCollector& collector,
const VolumeTest& volume, const Matrix4& localToWorld) const
void CurveEditInstance::curveChanged()
{
#if 0
collector.addRenderable(*_shaders.controlsShader, m_controlsRender, localToWorld);
#endif
}

void CurveEditInstance::renderComponentsSelected(IRenderableCollector& collector,
const VolumeTest& volume, const Matrix4& localToWorld) const
{
#if 0
updateSelected();
if(!m_selectedRender.empty())
{
collector.addRenderable(*_shaders.selectedShader, m_selectedRender, localToWorld);
}
#endif
}

void CurveEditInstance::curveChanged() {
_selectables.resize(_controlPointsTransformed.size(), _selectionChanged);

m_controlsRender.clear();
m_controlsRender.reserve(_controlPointsTransformed.size());
ControlPointAdder adder(m_controlsRender);
forEach(adder);

m_selectedRender.reserve(_controlPointsTransformed.size());
}

void CurveEditInstance::forEachSelected(ControlPointFunctor& functor) {
Expand Down
32 changes: 4 additions & 28 deletions radiantcore/entity/curve/CurveEditInstance.h
Expand Up @@ -3,16 +3,12 @@
#include "Curve.h"
#include "ObservedSelectable.h"

namespace entity {

namespace
{
const Colour4b colour_vertex(0, 255, 0, 255);
const Colour4b colour_selected(0, 0, 255, 255);
}
namespace entity
{

/** greebo: This class is wrapped around a Curve class to manage
* all the selection and transformation operations.
* the selection and transformation operations.
* This should be merged with the Curve class.
*/
class CurveEditInstance: public sigc::trackable
{
Expand Down Expand Up @@ -41,24 +37,10 @@ class CurveEditInstance: public sigc::trackable
typedef std::vector<selection::ObservedSelectable> Selectables;
Selectables _selectables;

RenderablePointVector m_controlsRender;
mutable RenderablePointVector m_selectedRender;

struct CurveShaders
{
ShaderPtr controlsShader;
ShaderPtr selectedShader;
};

CurveShaders _shaders;

public:

// Constructor
CurveEditInstance(Curve& curve, const SelectionChangedSlot& selectionChanged);

void setRenderSystem(const RenderSystemPtr& renderSystem);

// Traversal functions, these cycle through all (selected) control points
void forEach(ControlPointFunctor& functor);

Expand All @@ -83,12 +65,6 @@ class CurveEditInstance: public sigc::trackable
// Snaps the selected control points to the grid
void snapto(float snap);

void updateSelected() const;

void renderComponents(IRenderableCollector& collector, const VolumeTest& volume, const Matrix4& localToWorld) const;

void renderComponentsSelected(IRenderableCollector& collector, const VolumeTest& volume, const Matrix4& localToWorld) const;

void curveChanged();

// As the name states, removes the selected control points
Expand Down
35 changes: 2 additions & 33 deletions radiantcore/entity/doom3group/StaticGeometryNode.cpp
Expand Up @@ -353,28 +353,6 @@ void StaticGeometryNode::onPreRender(const VolumeTest& volume)
}
}

void StaticGeometryNode::renderCommon(IRenderableCollector& collector, const VolumeTest& volume) const
{
// Render curves always relative to the absolute map origin
static Matrix4 identity = Matrix4::getIdentity();
_nurbsEditInstance.renderComponentsSelected(collector, volume, identity);
_catmullRomEditInstance.renderComponentsSelected(collector, volume, identity);
}

void StaticGeometryNode::renderSolid(IRenderableCollector& collector, const VolumeTest& volume) const
{
EntityNode::renderSolid(collector, volume);

renderCommon(collector, volume);
}

void StaticGeometryNode::renderWireframe(IRenderableCollector& collector, const VolumeTest& volume) const
{
EntityNode::renderWireframe(collector, volume);

renderCommon(collector, volume);
}

void StaticGeometryNode::renderHighlights(IRenderableCollector& collector, const VolumeTest& volume)
{
m_curveNURBS.renderHighlights(collector, volume);
Expand Down Expand Up @@ -404,24 +382,15 @@ void StaticGeometryNode::setRenderSystem(const RenderSystemPtr& renderSystem)
_curveCtrlPointShader.reset();
}

_nurbsEditInstance.setRenderSystem(renderSystem);
_catmullRomEditInstance.setRenderSystem(renderSystem);

_originInstance.setRenderSystem(renderSystem);
}

void StaticGeometryNode::renderComponents(IRenderableCollector& collector, const VolumeTest& volume) const
{
if (GlobalSelectionSystem().ComponentMode() == selection::ComponentSelectionMode::Vertex)
if (!isModel() && GlobalSelectionSystem().ComponentMode() == selection::ComponentSelectionMode::Vertex)
{
_nurbsEditInstance.renderComponents(collector, volume, Matrix4::getIdentity());

_catmullRomEditInstance.renderComponents(collector, volume, Matrix4::getIdentity());

// Register the renderable with OpenGL
if (!isModel()) {
_originInstance.render(collector, volume, localToWorld());
}
_originInstance.render(collector, volume, localToWorld());
}
}

Expand Down
3 changes: 0 additions & 3 deletions radiantcore/entity/doom3group/StaticGeometryNode.h
Expand Up @@ -132,8 +132,6 @@ class StaticGeometryNode :

// Renderable implementation
void onPreRender(const VolumeTest& volume) override;
void renderSolid(IRenderableCollector& collector, const VolumeTest& volume) const override;
void renderWireframe(IRenderableCollector& collector, const VolumeTest& volume) const override;
void renderHighlights(IRenderableCollector& collector, const VolumeTest& volume) override;
void setRenderSystem(const RenderSystemPtr& renderSystem) override;

Expand Down Expand Up @@ -171,7 +169,6 @@ class StaticGeometryNode :

void destroy();
void setIsModel(bool newValue);
void renderCommon(IRenderableCollector& collector, const VolumeTest& volume) const;

/** Determine if this Doom3Group is a model (func_static) or a
* brush-containing entity. If the "model" key is equal to the
Expand Down

0 comments on commit a3b428c

Please sign in to comment.