HyperspaceExplorer 0.7.1
Todo List

Member AltSponge::MemRequired (unsigned)
uses hardcoded and experimentally found value for memory per hypercube

Member AltSponge::X_push_back (const VecMath::Vector< 4 > &x)
merge joined surfaces into one. not trivial, because the surfaces have holes.

Member C4DView::initializeGL (void)

trying to check for rendering to file, but this doesn't work yet.

clean up, check what is really needed - in particular it calls PreRedraw() twice, once via RenderScene()

Member C4DView::PreRedraw ()
either PreRedraw() or Draw() should call DrawCoordinates(), but not both

Member C4DView::RandomAnimation (bool)

make hardcoded duration of rotation change frequency adjustable

a menu entry for this

Member C4DView::resizeGL (int, int)
eliminate hardcoded constants

Member C4DView::setLighting (bool)
Decide whether to turn lighting off completely, if lighting is deselected, or whether to use flat, all-ambient, lighting. Another possibility would be to make a three-way switch between full lighting, flat lighting and no lighting at all.

Member C4DView::SetupDepthCue (float, float)
fill in the meaning of the parameters

Member ColorManager::setRGB (const Color &)
make the agorithm which computes the ambient and specular values variable

Class ColorManagerManager

implement a map<Function *, ColorManager *> to store one ColorManager per function - this will probably break the existing interface

Shouldn't htis class implement the ColorManager interface? It delegates all calls to a ColorManager and serves as one, doesn't it?

Member depth2RGBColorManager::computeColorFromW (double)
Rethink the transparence algorithm

Class Displayable

Rename other references to the name "Function"

Vector &normal (double, double, double); - or in derived classes?

operator () (double t, double u, double v) - ditto

Member Displayable::df (double, double, double)

this is not general enough. should take the number of arguments that are actually needed.

The h value is fixed and hardcoded. better approach, please!

I don't think calling operator() is right. Call f()!

Member Displayable::MemRequired (void)
uses hardcoded and experimentally found value for memory per cell

Member Displayable::operator() (double, double, double)
this is not general enough. should take the number of arguments that are actually needed.

Member Displayable::SetParameters (const ParameterMap &)
This function is only there to provide an interface, and it's not abstract so that Displayable s which don't have Parameters don't need to reimplement an unneeded method. But the present implementation does not make sense.

Member Extrude< D, Dmin, Dmax >::Extrude ()
Guard against bad template parameters:

Member Extrude< D, Dmin, Dmax >::Extrude (const VertexData< D > &v)
Guard against bad template parameters:

Member Extrude< D, Dmin, Dmin >::Extrude ()
Guard against bad template parameters:

Member Extrude< D, Dmin, Dmin >::Extrude (const VertexData< D > &v)
Guard against bad template parameters:

Member Fastxyz2RGBColorManager::depthCueColor (double wmax, double wmin, double w, const VecMath::Vector< 4 > &)
implement me!

Class FunctionHolder< N, P, NUM >
It provides functions to apply an arbitray Transform on the N - dimensional vertices, Project them into three-dimensional space and Draw the resulting three-dimensional image onto a View.

Member FunctionParameter::setDefaultValue (FunctionParameter::value_ptr_type defaultValue)
Can't I call createParameterWithDefault() from inside setDefaultValue()?

Member FunctionParameter::setValue (FunctionParameter::value_ptr_type value)
Can't I call createParameterWithValue() from inside setValue()?

Member FunctionValueGrid< N, P, NUM >::EPSILON
this should be somewhere global.

Member Gasket::MemRequired (void)
uses hardcoded and experimentally found value for memory per simplex

Member LightOpenGL::render () const
GL_LIGHT0 is hardcoded, make this variable. To quote from the OpenGL API docs: "It is always the case that GL_LIGHTi = GL_LIGHT0 + i."

Member LSystem_old::angle (double angle)
document me

Member LSystem_old::angle ()
document me

Member LSystem_old::axiom (string a)
document me

Member LSystem_old::axiom ()
document me

Member LSystem_old::Draw ()
document me

Member LSystem_old::Expand ()
document me

Member LSystem_old::Expand (string, unsigned)
document me

Member LSystem_old::level (unsigned n)
document me

Member LSystem_old::level ()
document me

Member LSystem_old::LSystem_old (unsigned=2)
document me

Member LSystem_old::LSystem_old (string, map< string, string >, unsigned=2)
document me

Member LSystem_old::m_angle
document me

Member LSystem_old::m_axiom
document me

Member LSystem_old::m_level
document me

Member LSystem_old::m_object
document me

Member LSystem_old::m_rules
document me

Member LSystem_old::m_scale
document me

Member LSystem_old::object (string key, string object)
document me

Member LSystem_old::object (map< string, string > object)
document me

Member LSystem_old::object ()
document me

Member LSystem_old::object (string key)
document me

Member LSystem_old::POV_Atom (const string &, const string &)
document me

Member LSystem_old::POV_Footer (const Vector &, const Vector &)
document me

Member LSystem_old::POV_Header (const string &)
document me

Member LSystem_old::POV_Source ()
document me

Member LSystem_old::rules (map< string, string > rules)
document me

Member LSystem_old::rules (void)
document me

Member LSystem_old::set_rule (string key, string rule)
document me

Member LSystem_old::~LSystem_old ()
document me

Namespace Multithreading
Also provide an abstraction layer for the threading model that is used to execute threads (currently only QThread and QtConcurrent, but C++11's std::thread is also feasible).

Class Multithreading::Private::Kernel< RandomAccessContainer, Function >

Adapt to the "correct" version of using QThread; see http://labs.qt.nokia.com/2010/06/17/youre-doing-it-wrong/ and http://mayaposch.wordpress.com/2011/11/01/how-to-really-truly-use-qthreads-the-full-explanation/

possibility to transparently use different backends (QThread and std::thread)

Member Projection< N, Nnew, P, NUM, Policy >::checkConsistency ()
check view points, eye points and distances.

Member Projection< N, Nnew, P, NUM, Policy >::checkDimensions ()
I would prefer a compilation error to throwing an exception when N equals Nnew, but I don't see how to achieve this.

Class Projector< D, D_ >

make scrW and camW vectors for consecutive operations

add possibility to transform before projecting - or make a process separate from projection

Member Projector< D, D_ >::operator() (const std::vector< VecMath::Vector< D > > &x, const std::vector< double > &scrW, const std::vector< double > &camW)
implement this!

Member RealFunction::getNumParameters ()
get rid of this function.

Member RealFunction::RealFunction ()
don't initialize the grid!

Class Realm

fully understand and document rotating polygons

add caps for polygons

It looks as if it would make sense for Realm to manage the vertex array too. Look into this.

refactor to have shorter functions.

Member Realm::addOffset (unsigned delta)
find a better way.

Member Realm::generateStripBetweenGreatCircles (unsigned base, unsigned delta) const

Split into smaller functions.

Fix for triangles.

Member Realm::operator== (const Realm &other) const
rewrite to make independent of realm_container_type::operator[]

Member Realm::rotated (unsigned num_segments, unsigned size) const
more documentation

Member Realm::rotatedPolygon (unsigned num_segments, unsigned size) const
Add the caps.

Member Realm::rotatedPolygonCap (const realm_container_type &temp_subrealms) const
achieve the desired effect for any polygon

Member Realm::rotateStep (unsigned index, unsigned base, unsigned delta) const
clarify this documentation.

Member Rotate< D, Dmin, Dmax >::Rotate (const VertexData< D > &v)
Guard against bad template parameters:

Member Rotate< D, Dmin, Dmin >::Rotate (const VertexData< D > &v)
Guard against bad template parameters:

Member rotate_base< D >::checkRotationArguments (unsigned d)
rename check_argument()

Member Rotope::drawRealm (const Realm &realm, UI::View *view) const
Actually, this function belongs more into the Realm realm...

Member Rotope::Impl::generateDefaultRotope (const std::logic_error &e)
Show the warning in a QMessageBox. Currently that does not work because C4DView::RenderScene() is called before the object has been fully initialized:

Member Script::ObjectStmt::execute ()
make a map (or something like that) to call the right function for the string supplied as argument

Member Script::Parser::Parser (const std::string &file)
lines must not be longer than 4095 characters. Everything after that is discarded. This is a limitation of std::ifstream::getline().

Class Script::RotDeltaStmt
implement

Class Script::RotStmt
implement

Class Script::XformStmt
add support for translations and 3D rotation

Member Sponge::List
Use smart pointers instead of a simple pointer-to-object

Member Sponge::MemRequired (unsigned)
uses hardcoded and experimentally found value for memory per hypercube

Member Taper< D, Dmin, Dmax >::Taper (const VertexData< D > &v)
Guard against bad template parameters:

Member Taper< D, Dmin, Dmin >::Taper (const VertexData< D > &v)
Guard against bad template parameters:

Member Torate< D, Dmin, Dmax >::Torate (const VertexData< D > &v)
Guard against bad template parameters:

Member Torate< D, Dmin, Dmin >::Torate (const VertexData< D > &v)
Guard against bad template parameters:

Member torate_base< D >::setRotationSegments (unsigned numSegments)
regenerate after setting _numSegments

Member UI::Dialogs::ParameterRotationControl::setValue (const QString &)
Implement!

Member UI::Dialogs::ParameterRotationControl::value () const
Implement!

Class UI::Dialogs::PluginCreator

set the function name to symbolic() in the descendants' constructors

Member UI::Dialogs::PluginCreator::compile (QString)
Might tweak the compilation flags a little, or make them variable

Class UI::Dialogs::PolarDialogImpl

Make the above definition mathematically correct

Class UI::Dialogs::ValuesDialogImpl

The switching on and off of input fields, depending on which function is selected, is done from C4DView. This is of course unfortunate and will be changed.

Member UI::Dialogs::ValuesDialogImpl::accept ()
remove those fields instead of catching the exception

Member UI::View::drawCube (const VecMath::MultiDimensionalVector< VecMath::Vector< 4 >, 3 > &X, unsigned t, unsigned u, unsigned v, const VecMath::Vector< 3 > &v0, const VecMath::Vector< 3 > &v1, const VecMath::Vector< 3 > &v2, const VecMath::Vector< 3 > &v3, const VecMath::Vector< 3 > &v4, const VecMath::Vector< 3 > &v5, const VecMath::Vector< 3 > &v6, const VecMath::Vector< 3 > &v7)=0
Eeew! Thisis only temporary, until I have a better idea; i just copied this signature from the old RealFunction implementation.

Member UI::View::drawLine (const VecMath::Vector< 4 > &x0, const VecMath::Vector< 4 > &x1, const VecMath::Vector< 3 > &xscr0, const VecMath::Vector< 3 > &xscr1)=0
Limit the number of arguments...

Member UI::View::drawVertex (const VecMath::Vector< 4 > &x, const VecMath::Vector< 3 > &xscr)=0

Should it draw a point or just define one, e.g. for polygons?

Abstract from the original vertex and only use the projected one?

Member UI::View::getLights ()=0
Abstract from std::vector and use a generic container

Member UI::ViewImpl::getLights ()
Abstract from std::vector and use a generic container

Member UI::ViewImpl::Impl::_lights
Abstract from std::vector and use a generic container

Member VecMath::Rotation< D, N >::operator bool () const
move out of the class

Member VecMath::Rotation< D, N >::operator Matrix< D, N > () const

default implementation does not work correctly yet

move out of the class

Class VecMath::RotationAxes< D >
Find a generic algorithm for D dimensions

Class VertexData< D >
transforming rotopes, allowing for rotation in D dimensions and scaling.

Member VertexData< D >::projected_vertices ()
This is hardcoded! Ugh!

Member VertexData< D >::PROJECTION_CAMERA_W
un-hardcode this (configure from Rotope)

Member VertexData< D >::PROJECTION_SCREEN_W
un-hardcode this (configure from Rotope)

Class VertexData< D >::VertexDataPrinter
This class is still a little chaotic.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Friends

Generated on Mon Apr 9 2012 20:25:16 for HyperspaceExplorer 0.7.1 by doxygen 1.7.4  -  Hosted bySourceForge.net Logo