Currently job artifacts in CI/CD pipelines on LRZ GitLab never expire. Starting from Wed 26.1.2022 the default expiration time will be 30 days (GitLab default). Currently existing artifacts in already completed jobs will not be affected by the change. The latest artifacts for all jobs in the latest successful pipelines will be kept. More information: https://gitlab.lrz.de/help/user/admin_area/settings/continuous_integration.html#default-artifacts-expiration

Commit 104b5322 authored by Christian Schulte zu Berge's avatar Christian Schulte zu Berge
Browse files

Removed a bunch of obsolete TODOs and FIXMEs.

parent 4d773a4f
......@@ -125,7 +125,6 @@ namespace campvis {
void CampVisPainter::init() {
try {
// TODO: Remove hardcoded paths, and use ShdrMgr.addPath() at some central location
_copyShader = ShdrMgr.load("core/glsl/passthrough.vert", "core/glsl/copyimage.frag", "");
_copyShader->setAttributeLocation(0, "in_Position");
_copyShader->setAttributeLocation(1, "in_TexCoords");
......
......@@ -240,7 +240,7 @@ namespace campvis {
_lblIntensityRight = new QLabel(QString::number(gtf->getIntensityDomain().y), this);
_layout->addWidget(_lblIntensityRight, 4, 3, 1, 1, Qt::AlignRight);
QVBoxLayout* buttonLayout = new QVBoxLayout(); // TODO: check whether buttonLayout will be deleted by Qt's GC!
QVBoxLayout* buttonLayout = new QVBoxLayout();
_layout->addLayout(buttonLayout, 1, 4, 1, 3, Qt::AlignTop);
_btnAddGeometry = new QPushButton(tr("Add Geometry"), this);
......
......@@ -57,8 +57,6 @@ namespace campvis {
/**
* Abstract base class for data handled by a DataHandle and stored in a DataContainer.
*
* \todo
*/
class CAMPVIS_CORE_API AbstractData {
friend class DataHandle;
......
......@@ -49,8 +49,6 @@ namespace campvis {
* also ensures (hopefully) that nobody can do messy things, such as changing the data while some other
* thread is reading it. Theoretically this should be possible, but a correct implementation would require
* some brain fuck.
*
* \todo Check thread-safety
*/
class CAMPVIS_CORE_API DataContainer {
public:
......
......@@ -28,11 +28,13 @@
#include "core/datastructures/abstractdata.h"
#include <string>
#include <memory>
namespace campvis {
/**
* Class that generically wraps around a pointer of the template type and takes ownership of it.
* Ownership is handled through shared pointers, as the clone() method only returns a shallow copy.
* \tparam T Type of the pointer this AbstractData wraps around.
*/
template<typename T>
......@@ -40,7 +42,7 @@ namespace campvis {
public:
/**
* Creates a new GenericPointerData and initializes its pointer with \a data.
* \param data The initial pointer for this data, may be 0, GenericPointerData takes ownerwhip.
* \param data The initial pointer for this data, may be 0, GenericPointerData takes ownership.
*/
explicit GenericPointerData(T* data)
: AbstractData()
......@@ -48,10 +50,19 @@ namespace campvis {
{};
/**
* Destructor, deletes the pointer.
* Creates a new GenericPointerData and initializes its pointer with \a data.
* \param data The initial pointer for this data, may be 0, GenericPointerData takes ownership.
*/
explicit GenericPointerData(std::shared_ptr<T> data)
: AbstractData()
, _data(data)
{};
/**
* Destructor
*/
virtual ~GenericPointerData() {
delete _data;
};
/**
......@@ -72,10 +83,10 @@ namespace campvis {
/**
* Sets the data to \a data.
* \param data The new pointer for this data, may be 0, GenericPointerData takes ownerwhip.
* \param data The new pointer for this data, may be 0, GenericPointerData takes ownership.
*/
void setData(T* data) {
_data = data;
_data = std::shared_ptr<T>(data);
};
......@@ -83,8 +94,7 @@ namespace campvis {
* Prototype - clone method, some people call this virtual constructor...
* \return A SHALLOW copy of this object.
*/
virtual AbstractData* clone() const {
// FIXME: This is only a shallow copy - not what you expect from clone!
virtual GenericPointerData<T>* clone() const {
return new GenericPointerData<T>(_data);
};
......@@ -105,7 +115,7 @@ namespace campvis {
};
protected:
T* _data; ///< Pointer to the data.
std::shared_ptr<T> _data; ///< Shared pointer to the data.
};
}
......
......@@ -33,8 +33,6 @@ namespace campvis {
/**
* Subclass of ImageData offering access to image data stored in binary form on the local harddisk.
*
* \todo Number of channels
*/
class CAMPVIS_CORE_API ImageRepresentationDisk : public GenericAbstractImageRepresentation<ImageRepresentationDisk> {
public:
......
......@@ -68,7 +68,6 @@ namespace campvis {
}
{
// TODO: there is probably a more elegant method...
tbb::spin_mutex::scoped_lock(mutex);
_normalizedIntensityRange.nibble(localMin);
_normalizedIntensityRange.nibble(localMax);
......
......@@ -37,8 +37,6 @@ namespace campvis {
/**
* Abstract base class for storing image data in the local memory.
*
* \todo implement padding, add some kind of cool iterators
*/
class CAMPVIS_CORE_API ImageRepresentationLocal : public GenericAbstractImageRepresentation<ImageRepresentationLocal> {
public:
......
......@@ -37,8 +37,6 @@ namespace campvis {
/**
* Abstract base class for data handled by a DataHandle and stored in a DataContainer.
*
* \todo
*/
class CAMPVIS_CORE_API LightSourceData : public AbstractData {
public:
......
......@@ -39,9 +39,6 @@
namespace campvis {
/**
* Abstract base class for CAMPVis Property.
*
* \todo Add PropertyWidgets, add clone()?
* Think about a reasonable locking mechanism and implement that
*/
class CAMPVIS_CORE_API AbstractProperty {
public:
......
......@@ -35,7 +35,6 @@ namespace campvis {
* Generic class for value-based properties.
*
* \tparam T Base type of the property's value.
* \todo Add PropertyWidgets, review use of mutex
*/
template<typename T>
class GenericProperty : public AbstractProperty {
......@@ -179,11 +178,9 @@ namespace campvis {
template<typename T>
void campvis::GenericProperty<T>::setFrontValue(const T& value) {
_value = value;
// TODO: think about the correct/reasonable order of observer notification
// thread-safety might play a role thereby...
for (std::set<AbstractProperty*>::iterator it = _sharedProperties.begin(); it != _sharedProperties.end(); ++it) {
// We ensure all shared properties to be of type GenericProperty<T> in the addSharedProperty overload.
// Hence, static_cast ist safe.
// Hence, static_cast is safe.
GenericProperty<T>* child = static_cast< GenericProperty<T>* >(*it);
child->setValue(value);
}
......
......@@ -39,8 +39,6 @@ namespace campvis {
* Collection of various helper methods for strings.
*
* \sa std::string
*
* \todo Test, test, test!
*/
class CAMPVIS_CORE_API StringUtils {
public:
......
......@@ -34,8 +34,6 @@
namespace tgt {
/// \todo Bounds
/**
This class is an abstract superclass for spacecurves. \n
It provides the virtual methods getPoint() and getDerivative(), which
......
......@@ -107,7 +107,6 @@ namespace campvis {
_quadView.p_outputImage.setValue("quadview.output");
// TODO: replace this hardcoded domain by automatically determined from image min/max values
Geometry1DTransferFunction* tf = new Geometry1DTransferFunction(128, tgt::vec2(0.f, 1.f));
tf->addGeometry(TFGeometry1D::createQuad(tgt::vec2(0.f, 1.f), tgt::col4(0, 0, 0, 255), tgt::col4(255, 255, 255, 255)));
_usFusion1.p_transferFunction.replaceTF(tf);
......
......@@ -109,7 +109,6 @@ namespace campvis {
_usBlurFilter.p_sigma.setValue(2.f);
// TODO: replace this hardcoded domain by automatically determined from image min/max values
Geometry1DTransferFunction* tf = new Geometry1DTransferFunction(128, tgt::vec2(0.f, 1.f));
tf->addGeometry(TFGeometry1D::createQuad(tgt::vec2(0.f, 1.f), tgt::col4(0, 0, 0, 255), tgt::col4(255, 255, 255, 255)));
_usFusion.p_transferFunction.replaceTF(tf);
......
......@@ -133,7 +133,6 @@ namespace campvis {
if (tfp.hasKey("ElementByteOrderMSB"))
e = (tfp.getBool("ElementByteOrderMSB") ? EndianHelper::IS_BIG_ENDIAN : EndianHelper::IS_LITTLE_ENDIAN);
// TODO: spacing, element size, etc.
if (tfp.hasKey("ElementSpacing")) {
if (dimensionality == 3)
voxelSize = tfp.getVec3("ElementSpacing");
......
......@@ -191,9 +191,6 @@ namespace campvis {
/// \see AbstractImageRepresentation::getVideoMemoryFootprint()
virtual size_t getVideoMemoryFootprint() const;
/// \see AbstractImageRepresentation::getSubImage
virtual ThisType* getSubImage(ImageData* parent, const tgt::svec3& llf, const tgt::svec3& urb) const;
/**
* Returns a WeaklyTypedPointer to the image data.
* \note The pointer is still owned by this ImageRepresentationLocal. If you want a copy, use clone().
......@@ -267,13 +264,6 @@ namespace campvis {
return 0;
}
template<typename BASETYPE, size_t NUMCHANNELS, size_t DIMENSIONALITY>
GenericImageRepresentationItk<BASETYPE, NUMCHANNELS, DIMENSIONALITY>* campvis::GenericImageRepresentationItk<BASETYPE, NUMCHANNELS, DIMENSIONALITY>::getSubImage(ImageData* parent, const tgt::svec3& llf, const tgt::svec3& urb) const {
tgtAssert(tgt::hand(tgt::lessThan(llf, urb)), "Coordinates in LLF must be component-wise smaller than the ones in URB!");
// TODO: implement - there certainly exists an ITK filter for this...
return 0;
}
template<typename BASETYPE, size_t NUMCHANNELS, size_t DIMENSIONALITY>
WeaklyTypedPointer campvis::GenericImageRepresentationItk<BASETYPE, NUMCHANNELS, DIMENSIONALITY>::getWeaklyTypedPointer() const {
return WeaklyTypedPointer(TypeTraits<BASETYPE, NUMCHANNELS>::weaklyTypedPointerBaseType, NUMCHANNELS, _itkImage->GetBufferPointer());
......
......@@ -57,7 +57,6 @@ namespace campvis {
_sliceExtractor.p_xSliceNumber.setValue(0);
// TODO: replace this hardcoded domain by automatically determined from image min/max values
Geometry1DTransferFunction* tf = new Geometry1DTransferFunction(128, tgt::vec2(0.f, .08f));
tf->addGeometry(TFGeometry1D::createQuad(tgt::vec2(0.f, 1.f), tgt::col4(0, 0, 0, 0), tgt::col4(255, 255, 255, 255)));
_sliceExtractor.p_transferFunction.replaceTF(tf);
......
......@@ -120,8 +120,6 @@ namespace campvis {
-2*n.x*n.y , 1 - 2*n.y*n.y, -2*n.z*n.y , 0,
-2*n.x*n.z , -2*n.y*n.z , 1 - 2*n.z*n.z, 0,
2*n.x*k , 2*n.y*k , 2*n.z*k , 1));
// TODO: double check, whether matrix transpose is necessary
}
else {
LERROR("No suitable virtual mirror geometry found.");
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment