Radium Engine  1.5.20
Loading...
Searching...
No Matches
Todo List
Page 3D objects (a.k.a. Meshes)

will be supported when TopologicalMesh will support PolyMesh.

make OpenMesh inheritance private.

Page [TODO] IO
write IO doc
Page _deprecated_ Component Messenger
check and update
Page _deprecated_ Event System
check and update
Page _deprecated_ Radium Engine programmer manual

pick relevant part, update and move to corresponding page

a nice class schema

Page How to write your own application
write application dev doc, merging ExampleApp and Apps docs.
Page Material management

update snippets that are not available anymore.

TO UPDATE

Page Plugin System
check and update
Member Ra::Core::Animation::Skeleton::Manipulation
also implement Inverse Kynematics.
Member Ra::Core::Geometry::AttribArrayGeometry::vertexAttribs ()
rename to getAttribManager ?
Class Ra::Core::Geometry::deprecated::TopologicalMesh

rename methods to respect Radium guideline (get/set/is, camelCase)

private inheritance from OpenMesh, and import relevant methods.

Member Ra::Core::Geometry::MultiIndexedGeometry::checkConsistency () const
Implement MultiIndexedGeometry::checkConsistency
Class Ra::Core::Geometry::TopologicalMesh

rename methods to respect Radium guideline (get/set/is, camelCase)

private inheritance from OpenMesh, and import relevant methods.

Member Ra::Core::Geometry::TopologicalMesh::initWithWedge (const Ra::Core::Geometry::MultiIndexedGeometry &mesh, const Ra::Core::Geometry::MultiIndexedGeometry::LayerKeyType &layerKey, NonManifoldFaceCommand command)
and "cross face ?"
Member Ra::Core::Geometry::TopologicalMesh::TopologicalMesh (const Ra::Core::Geometry::MultiIndexedGeometry &mesh, const Ra::Core::Geometry::MultiIndexedGeometry::LayerKeyType &layerKey)
, when MultiIndexedGeometry will be operational, will this replace the above ?
Member Ra::Core::Geometry::TopologicalMesh::TopologicalMesh (const Ra::Core::Geometry::MultiIndexedGeometry &mesh, const Ra::Core::Geometry::MultiIndexedGeometry::LayerKeyType &layerKey, NonManifoldFaceCommand command)
, when MultiIndexedGeometry will be operational, will this replace the above ?
Member Ra::Core::make_shared (Args &&... args)
Check if we still need that thing...
Member Ra::Core::Math::cos (const Vector_ &v1, const Vector_ &v2)
use dot instead
Member Ra::Core::Utils::AttribManager::copyAllAttributes (const AttribManager &m)
allow to copy all attributes, even those with non-standard type
Member Ra::Core::Utils::EnumConverter< EnumBaseType >::EnumConverter (std::initializer_list< std::pair< EnumBaseType, std::string > > pairs)
think of manage both EnumType and EnumUnderlyingType Eg using EnumUnderlyingType = std::underling_type_t<Enum>; getEnumeratorUnderlying ->EnumUnderlyingType getEnumerator -> Enum
Class Ra::Engine::Data::BlinnPhongMaterial
due to "Material.glsl" interface modification, must test this version with all plugins, apps, ... that uses Radium Renderer
Member Ra::Engine::Data::CoreGeometryDisplayable< T >::loadGeometry (CoreGeometry &&mesh)
add observer mecanism for indices.
Member Ra::Engine::Data::createCoreMeshFromGeometryData (const Ra::Core::Asset::GeometryData *data)
replace the copy of all geometry data by reference to original data.
Member Ra::Engine::Data::Displayable::getAbstractGeometry () const =0
not sure the displayable must have an abstract geometry ...
Member Ra::Engine::Data::DrawPrimitives::Circle (const Core::Vector3 &center, const Core::Vector3 &normal, Scalar radius, uint segments, const Core::Utils::Color &color)
refer to class typedef instaed of core types/
Member Ra::Engine::Data::DrawPrimitives::QuadStrip (const Core::Vector3 &a, const Core::Vector3 &x, const Core::Vector3 &y, uint quads, const Core::Utils::Color &color)
continue to convert mesh creation and remove call to deprecated Mesh::loadGeometry
Member Ra::Engine::Data::EnvironmentTexture::EnvironmentTexture (const std::string &mapName, bool isSkybox=false)
: if the file given to the constructor does not exist, generates a white envmap ?
Member Ra::Engine::Data::EnvironmentTexture::getEnvironmentTexture ()
Prefilter according to bsdf roughness values ? This will help for envmap lighting but might be wrong for skybox rendering
Member Ra::Engine::Data::Material::getPropertyList () const override

: Validate this proposal

: make the property list modifiable as well

Member Ra::Engine::Data::Mesh::getNumFaces () const override
fix this once we have explicit triangle fan and strip management.
Member Ra::Engine::Data::Mesh::loadGeometry (const Core::Vector3Array &vertices, const std::vector< uint > &indices)

find an alternative

check line vs triangle here is a bug

Class Ra::Engine::Data::MultiIndexedGeometry< T >
Work in progress.
Member Ra::Engine::Data::MultiIndexedGeometry< T >::loadGeometry (T &&mesh) override
HERE
Member Ra::Engine::Data::MultiIndexedGeometry< T >::render (const ShaderProgram *prog) override
implement !
Member Ra::Engine::Data::MultiIndexedGeometry< T >::updateGL_specific_impl () override
implement !
Class Ra::Engine::Data::ShaderConfiguration
: make configuration and program (in the OpenGL sense) be packed. A shader configuration might contains a ShaderProgram after compiling. This will remove the need for ShaderConfigurationFactory as ShaderManager will offer the same services. Actually, there is redundancy between ShaderConfigurationFactory and ShaderProgramManager
Member Ra::Engine::Data::ShaderParameterProvider::getPropertyList () const
: Validate this proposal
Member Ra::Engine::Data::ShaderProgram::addShaderFromSource (Data::ShaderType type, std::unique_ptr< globjects::StaticStringSource > &&source, const std::string &name="", bool fromFile=true)
go private, and update ShaderConfiguration to add from source !
Member Ra::Engine::Data::ShaderProgram::link ()
add other sampler type (or manage all type of sampler automatically)
Struct Ra::Engine::Data::TextureParameters
allow to use another mipmap building function than glGenerateMipmap
Class Ra::Engine::Data::VaoIndices::IndicesObserver
Add test for Indices observer
Class Ra::Engine::Data::VolumeObject
Right now, a volumeObject define both the geometry (a parallelepiped) and the material (a density grid) This should be modified to handle density grids deleimited by a general geometry.
Member Ra::Engine::Data::VolumeObject::loadGeometry (Core::Geometry::AbstractVolume *volume, const Core::Aabb &aabb)
clean tmp hack
Class Ra::Engine::Data::VolumetricMaterial
This material does not implement the MaterialGLSL interface. Shader compositing is not allowed.
Class Ra::Engine::Rendering::DebugRender
: port this to a more Radium-style code
Member Ra::Engine::Rendering::DebugRender::initialize ()
FIXED but not tested
Member Ra::Engine::Rendering::ForwardRenderer::renderInternal (const Data::ViewingParameters &renderData) override

make offset relative to wireframe line width

use globjects.

Member Ra::Engine::Rendering::Renderer::doPickingNow (const PickingQuery &query, const Data::ViewingParameters &renderData)
Fixup prepare picking to take pixel position and rendering window, and read depth in it.
Member Ra::Engine::Rendering::Renderer::PickingResult::getDepth () const

fixup for all picking query,

improve picking.

Class Ra::Engine::Scene::CameraComponent
attached camera do not take entity's transformation into account. This prevents, for now, keyframed animation of the Camera from its entity ...
Struct Ra::Engine::Scene::Light::Attenuation
for the moment, the attenuation is non physically coherent. make attenuation be quadratic by default
Member Ra::Engine::Scene::Light::LightType
: replace this enum by something extensible as we plan to add new light type by plugins
Member Ra::Engine::Scene::Light::setDirection (const Eigen::Matrix< Scalar, 3, 1 > &)
put this only on directional and spot light sources
Member Ra::Engine::Scene::Light::setPosition (const Eigen::Matrix< Scalar, 3, 1 > &)
put this only on point and spot light sources
Class Ra::Engine::Scene::PointCloudComponent
doc.
Member Ra::Engine::Scene::SkeletonComponent::setXray (bool on) const
the way skeletons will be displayed will be changed.
Member Ra::Gui::BaseApplication::BaseApplication (int &argc, char **argv, QString applicationName="RadiumEngine", QString organizationName="STORM-IRIT")
check optional
Member Ra::Gui::BaseApplication::editSettings ()
implement the editor
Member Ra::Gui::BaseApplication::initialize (const WindowFactory &factory, const glbinding::Version &glVersion={ 4, 1 })

Code updated wrt camera manager, TEST IT !

allow the user to ask for some "standard" systems to be added to the initialized Engine.

Member Ra::Gui::BaseApplication::radiumFrame ()
make rendering one gpu task.
Member Ra::Gui::FlightCameraManipulator::handleWheelEvent (QWheelEvent *event, const Qt::MouseButtons &buttons, const Qt::KeyboardModifiers &modifiers, int key) override
use action.
Class Ra::Gui::Gizmo
There is a lot of duplicated code shared between the different Gizmos (rotate, translate, scale). This is due to the fact that they all have Render Objects in xyz directions, and which can be selected with the same logic. An alternative would be to have an intermediate class , e.g. XYZGizmo which performs all the generic operations (e.g. render object coloring in selectConstraint and mouseMove).
Member Ra::Gui::GizmoManager::handleMouseMoveEvent (QMouseEvent *event, const Qt::MouseButtons &buttons, const Qt::KeyboardModifiers &modifiers, int key, const Core::Asset::Camera &cam)
what about if someone start a motion with a key, and then release it while moving the mouse ?
Member Ra::Gui::TimelineScrollArea::stepChanged (Scalar step)
use keymapping manager here Emitted when zoomed in/out or resized.
Member Ra::Gui::TrackballCameraManipulator::resetCamera () override
get rid of these light stuff
Member Ra::Gui::Viewer::handleMousePressEvent (QMouseEvent *event, Ra::Engine::Rendering::Renderer::PickingResult &result)
something like explained here if under mouse objects grabs the action, just send it to the object so we need to have something like grabber = renderobject(ro id)->getMouseManipulator if(grabber && grabber->handleEvent(event, buttons, modifiers, key){ context = grabber->getContext currentGrabber = grabber (we need to store it for mouse move)
Member Ra::Gui::Viewer::initializeGL () override
who deletes this light ?
Member Ra::Gui::Viewer::m_renderers
make the following private: Owning pointer to the renderers.
Member Ra::Gui::Viewer::mouseMoveEvent (QMouseEvent *event) override
propagateToParent
Member Ra::Gui::Viewer::mouseReleaseEvent (QMouseEvent *event) override
propagateToParent
Member Ra::Gui::Viewer::startRendering (const Scalar dt)
FIXME : move this outside of the rendering loop. must be done once per renderer ... if there is no light on the renderer, add the head light attached to the camera ...
Member Ra::Gui::Viewer::wheelEvent (QWheelEvent *event) override
propagateToParent
Member Ra::Headless::CLIRadiumEngineApp::m_glContext
make privaet and check access
Member Ra::IO::AssimpCameraDataLoader::loadData (const aiScene *scene, std::vector< std::unique_ptr< Core::Asset::Camera > > &data) override
process camera name to feed component name
Class Ra::IO::FileManager< DATA, Binary >

reimplement in IO

Class Ra::IO::OBJFileManager

reimplement in IO

Class Ra::IO::OFFFileManager

reimplement in IO

Member Ra::Plugins::RadiumPluginInterface::getMenu ()=0
Find a better name ?
Member Ra::Plugins::RadiumPluginInterface::getWidget ()=0
Find a better name for this ?