Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

Todo List

Member sheep::AABB3::Include (const BS &bs)
Implement.

Member sheep::ASELoader::parse_error ()
Close files and free resources.

Member sheep::ASELoader::parse_map_diffuse ()
Close files and free resources.

Member toxic::BSDF::ComputeScatteringProbability (const sheep::Vector3 &incoming, const sheep::Vector3 &outgoing) const
Precompute the division.

Member toxic::BSDF::EvaluateSpecular (const Context &context, const sheep::Vector3 &incoming, sheep::Vector3 *outgoing) const
Sample according to the albedo or the weight of the component.

Member toxic::BSDF::Sample (const Context &context, const sheep::Vector3 &incoming, sheep::Vector3 *outgoing, sheep::Real *prob, sheep::Real *value) const
Sample according to the albedo or the weight of the component.

Precompute the division.

Member toxic::Camera::EnableAutoFocus (const sheep::Point2 &p)
Create a new camera class for thin lens camera.

Member toxic::Camera::EnableDepthOfField (sheep::Real fstop, sheep::Real focal_length, sheep::Real focal_distance)
Create a new camera class for thin lens camera.

Member toxic::Collection::Intersect (const Context &context, const Ray &ray, Hit *hit=0) const
Handle collection transformation.

Member sheep::Contact::CancelNormalVelocity ()
Remove this line, this is just to test.

Member sheep::Contact::GetNormalDerivative () const
Raise an exception instead of just using assert().

Member sheep::Contact::GetType ()
Remove this line, this is just to test.

Member sheep::Contact::GetType ()
Remove this line, this is just to test.

Member sheep::Contact::Update ()
Optimize the code of this method.

Raise an exception instead of just using assert().

Member sheep::ContactHandler::resolve_col_contact (Contact &c)
Remove this line, this is just to test.

Member toxic::Cube::ComputeSurfaceArea () const
Implement.

Member toxic::Cube::EvaluateSurface (const sheep::Point2 &input, sheep::Point3 *point, sheep::Vector3 *geometric_normal) const
Implement.

Member toxic::DummyObject::DummyObject (const sheep::Matrix4 &m, const ISurfaceShader *surface_shader, IntersectionMask intersection_mask=INTERSECT_ALL_RAYS)
Is it really necessary, since this object won't be rendered?

Member toxic::DummyObject::EvaluateSurface (const sheep::Point2 &input, sheep::Point3 *point, sheep::Vector3 *geometric_normal) const
Implement.

Class sheep::FixedPathJoint
Modify to allow use of any piecewise curve.

Member sheep::FixedPathJoint::GetError ()
Implement?

Member toxic::Framebuffer::Framebuffer (int width, int height, Format format)
Throw an exception if memory allocation failed.

Member toxic::Framebuffer::CorrectGamma (sheep::Real target_gamma)
Implement a complete tone mapping architecture.

Member toxic::Framebuffer::WriteToDisk (const std::string &filename) const
Use ilEnable(IL_ORIGIN_SET) followed by ilOriginFunc(IL_ORIGIN_UPPER_LEFT) to place the origin at the upper left corner.

Member sheep::GLMesh::SubMesh::DisplayNormals () const
Make normals independant of the model scale.

Member sheep::GLMeshBuilder::~GLMeshBuilder ()
Delete the materials somewhere.

Member sheep::GLMeshBuilder::SetTexture (int w, int h, const unsigned char *texels)
Delete the texture somewhere.

Member toxic::GlobalPhotonTracer::trace_photon (const Context &context, PhotonMap *photonmap, const Scene *scene, Ray ray, Color3 power) const
Use surface albedo instead.

Member toxic::IAreaLight::ComputeIrradiance (const Context &context, const Scene *scene, const sheep::Point3 &point, const sheep::Vector3 &geometric_normal, const sheep::Vector3 &shading_normal, const ISurfaceSampler::SampleVector &input, IrradianceSampleVector *output) const
Not sure which normal to use.

Member toxic::IAreaLight::GeneratePhotonRay (const Context &context) const
And what about prob?

Member toxic::IBDF::ComputeReflectance (const Context &context, const sheep::Vector3 &incoming) const
Implement.

Member toxic::IBDF::ComputeReflectance (const Context &context) const
Implement.

Class sheep::IForce
Make the Evaluate() methods throw a "unimplemented feature" like exception by default, while still keeping this class abstract by making the destructor pure-virtual or something. This will make things simpler when new type of actor (soft bodies and so on) will be handled by the engine.

Member sheep::IFrameworkApp::Render ()
Rename to Animate().

Member sheep::IMeshBuilder::IGeometryBuilder::~IGeometryBuilder ()
Ideally, the destructor should be pure virtual with empty body.

Member sheep::IMeshBuilder::IMaterialBuilder::~IMaterialBuilder ()
Ideally, the destructor should be pure virtual with empty body.

Member toxic::IObject::m_mailbox_ray_id
Allocate one ray id per rendering thread.

Member toxic::IPhotonTracer::BuildPhotonMap (const Context &context, PhotonMap *photonmap, const Scene *scene, int photon_count, sheep::ProgressMonitor *progmon=0) const
Repare, this is a quick hack!

Repare, scaling is not accurate (some photons may have been lost).

Class sheep::Joint
Rename as IJoint.

Member sheep::JointManager::ApplyContraints ()
This is a quick hack for Sheep Lab.

Member sheep::JointManager::Remove (Joint *joint)
Remove unused bodies from the 'm_bodies' list.

Member toxic::Map2::Map2 (const std::string &filename)
Remove this constructor. Loading images must be made outside the renderer.

Member toxic::Map2::Map2 (int w, int h, const unsigned char *texels)
Remove this constructor.

Member sheep::Matrix::Determinant () const
Implement.

Member sheep::Matrix::operator * (const Matrix &m) const
Optimize.

Member sheep::Matrix3::Inverse () const
Throw an exception if the matrix to be inverted is singular (i.e. if fabs(det) <= EPSILON).

Member sheep::Matrix3::Rotation (Real angle, const Vector3 &axis)
Implement.

Member sheep::Matrix4::Inverse () const
Throw an exception if the matrix to be inverted

is singular (i.e. if fabs(det) <= EPSILON).

Member sheep::Matrix4::Inverse () const
Throw an exception if the matrix to be inverted

is singular (i.e. if fabs(det) <= EPSILON).

Member sheep::Matrix4::Rotation (Real angle, const Vector3 &axis)
implement.

Member sheep::Matrix4::Rotation (Real angle, const Vector3 &axis)
implement.

Member toxic::Mesh::ComputeSurfaceArea () const
Implement.

Member toxic::Mesh::EvaluateSurface (const sheep::Point2 &input, sheep::Point3 *point, sheep::Vector3 *geometric_normal) const
Implement.

Member toxic::Mesh::Finalize (const Context &context)
This is probably incorrect...

Member toxic::Mesh::Intersect (const Context &context, const Ray &ray, Hit *hit=0) const
Interpolate vertex normals using spherical interpolation.

Hack...

Interpolate normals with a spherical interpolation.

Hack...

Member toxic::Mesh::octree_full_visitor::Trace (const octree_node *node, sheep::Real t0, sheep::Real t1)
Make sure the <= and >= are correct.

Member toxic::Mesh::octree_test_visitor::Trace (const octree_node *node, sheep::Real t0, sheep::Real t1)
Optimize: use a simplified routine that does not compute and report t, u and v, because we really don't care here.

Member toxic::Mesh::triangle::m_mailbox_ray_id
Allocate one ray id per rendering thread.

Member sheep::OBJLoader::load_material_file (const std::string &filename)
This is quite dirty, I must admit.

Close files and free resources.

Member sheep::OBJLoader::parse_error ()
Close files and free resources.

Member sheep::OBJLoader::parse_file ()
Fine tune the number of statements to parse between progress updates.

Member sheep::OBJLoader::parse_map_kd_statement ()
Close files and free resources.

Member toxic::Octree::ComputeSurfaceArea () const
Implement.

Member toxic::Octree::EvaluateSurface (const sheep::Point2 &input, sheep::Point3 *point, sheep::Vector3 *geometric_normal) const
Implement.

Member toxic::Octree::Finalize (const Context &context)
This is probably incorrect...

Member toxic::Octree::Intersect (const Context &context, const Ray &ray, Hit *hit=0) const
Handle octree transformation.

Member toxic::Octree::octree_full_visitor::Trace (const octree_node *node, sheep::Real t0, sheep::Real t1)
Make sure the <= and >= are correct.

Member toxic::PerfectSpecularBRDF::ComputeReflectance (const Context &context, const sheep::Vector3 &incoming) const
Implement.

Member toxic::PerfectSpecularBRDF::ComputeReflectance (const Context &context, const sheep::Vector3 &incoming) const
Implement.

Member toxic::PerfectSpecularBRDF::ComputeReflectance (const Context &context) const
Implement.

Member toxic::PerfectSpecularBRDF::ComputeReflectance (const Context &context) const
Implement.

Member toxic::Photon::m_padding [3]
Adjust padding according to the various #defines.

Member toxic::PhotonMap::ApproximateRadiance (const sheep::Point3 &point, const sheep::Vector3 &normal, const ShadingData &shadingdata, sheep::Real max_dist, int max_photons) const
Let THRESHOLD be a user setting.

Move out of the loop.

Member toxic::PhotonMap::Balance ()
Warning: this is not portable.

Member toxic::PhotonMap::ComputeRadiance (const Context &context, const sheep::Point3 &point, const sheep::Vector3 &normal, const sheep::Vector3 &outgoing, const ShadingData &shadingdata, sheep::Real max_dist, int max_photons) const
Let THRESHOLD be a user setting.

Missing cosine factor?

Member toxic::PhotonMap::locate_photons (nearest_photons *np, int index) const
The 'pane' global illumination renderer (http://www.csit.fsu.edu/~beason/pane) does a check here. Check whether or not this is relevant.

Member sheep::Quaternion::Rotation (Real angle, const Vector3 &axis)
Assume that axis is already a normalized vector.

Member sheep::Quaternion::Rotation (Real angle, const Vector3 &axis)
Assume that axis is already a normalized vector.

Member sheep::RCTracker::maxstep (const Vector &a, const Vector &f, const Vector &delta_a, const Vector &delta_f, int d, Real *s, int *j)
Resolve properly the case where delta_a[d] is very small (1e-16). Solution: do not add a resting contact if it does not accelerate toward its neighbor more than EPSILON (along the contact normal).

Member toxic::Renderer::compute_direct_illumination (const Context &context, const sheep::Point3 &point, const sheep::Vector3 &geometric_normal, const sheep::Vector3 &shading_normal, const sheep::Vector3 &outgoing, const ISurfaceShader *surface_shader, const ShadingData &shadingdata)
Move to caller.

Choose lights based on their occlusion-free contribution to the point being illuminated.

Avoid generating samples for point lights.

Precompute the division.

Member toxic::Renderer::compute_indirect_illumination (const Context &context, const sheep::Point3 &point, const sheep::Vector3 &geometric_normal, const sheep::Vector3 &shading_normal, const sheep::Vector3 &outgoing, const ShadingData &shadingdata) const
Let the user choose between exact and approximate radiance computation.

Member toxic::Renderer::compute_specular_reflections (const Context &context, const sheep::Point3 &point, const sheep::Vector3 &geometric_normal, const sheep::Vector3 &shading_normal, const sheep::Vector3 &outgoing, const ShadingData &shadingdata, int recursion_level)
Move to caller.

Warning: units inconsistency.

Member toxic::Renderer::final_gathering (const Context &context, const sheep::Point3 &point, const sheep::Vector3 &geometric_normal, const sheep::Vector3 &shading_normal, const sheep::Vector3 &outgoing, const ShadingData &shadingdata, bool is_secondary=false) const
Move to caller.

Member toxic::Renderer::SetRenderArea (int x0, int y0, int x1, int y1)
Should this method take a pair of sheep::Point2 (in NDC) instead of four ints?

Member toxic::Renderer::trace (const Context &context, const Ray &ray, int recursion_level)
Add an option to enable or disable direct incoming light.

This is a hack.

Member sheep::RigidBody::EvolveOneStep (const StateDESolver &solver, Real t, Real h)
Calculate the system energy.

Member sheep::RigidModel::ComputeFaceNormal (FeatureId id) const
Precompute.

Member sheep::RigidModel::ComputeFaceNormal (FeatureId id) const
Precompute.

Member sheep::RigidModel::ComputeVertexNormal (FeatureId id) const
Implement.

Precompute.

Member sheep::RigidModel::ComputeVertexNormal (FeatureId id) const
Implement.

Precompute.

Member sheep::RigidModel::IsClosed () const
Implement.

Member sheep::RigidModel::IsConvex () const
Implement.

Member toxic::Ring::ComputeSurfaceArea () const
Implement.

Member toxic::Ring::EvaluateSurface (const sheep::Point2 &input, sheep::Point3 *point, sheep::Vector3 *geometric_normal) const
Implement.

Member toxic::Ring::Intersect (const Context &context, const Ray &ray, Hit *hit=0) const
Handle the case where a=0.0.

Handle the case where a=0.0.

Handle the case where r.m_direction.m_y=0.0.

Handle the case where r.m_direction.m_y=0.0.

Member toxic::Scene::SetAmbientIllumination (const Color3 &ambient)
Move ambient illumination to a class derived from ILight.

Member toxic::SceneBuilder::SceneBuilder (const Context &context, const Framebuffer *framebuffer, const std::string &filename, const std::string &home_path, sheep::ConsoleProgressMonitor *progmon)
Choose between Collection and Octree at runtime, depending of the number of objects (with a user-defined thresold).

Member toxic::SceneBuilder::mesh_builder (const sheep::Matrix4 &transform, IObject::IntersectionMask intersection_mask, const ParameterMap &params) const
Print the number of meshes added to the scene.

Member toxic::SceneBuilder::surface_shader_builder (const xercesc::DOMNode *node)
Implement forward definition of objects and shaders.

Class sheep::SGNode
Rename to ISceneGraphNode.

Class toxic::ShadingData
Rename and move to its own file.

Member toxic::Sphere::ComputeIrradiance (const Context &context, const Scene *scene, const sheep::Point3 &point, const sheep::Vector3 &geometric_normal, const sheep::Vector3 &shading_normal, const ISurfaceSampler::SampleVector &input, IrradianceSampleVector *output) const
Optimize (inline and simplify expressions).

Flip the normal? Call Hit::ExtractIntersection()?

Not sure which normal to use.

Member toxic::Sphere::ComputeSurfaceArea () const
Implement. Ellipsoid Surface Area: http://documents.wolfram.com/v4/MainBook/G.1.7.html Source Code: http://www.tcs.auckland.ac.nz/dgt/Source_Code.php?id=2

Member toxic::Sphere::Intersect (const Context &context, const Ray &ray, Hit *hit=0) const
Not sure: should t in r.GetPointAt(t) be in object space or in world space?

Member toxic::Statistics::m_gpm_photons
These numbers are useless: photon maps already know how many photons they hold.

Member sheep::Subspace::compute_step_end (Real start_time, Real end_time)
Much work can be done here to speed things up, like time-of-intersection prediction, and so on...

Member sheep::Subspace::Remove (RigidObject *object)
'collide' is a buggy quick hack!

Member sheep::Subspace::Step (Real start_time, Real end_time)
Is this really necessary?

This is a quick hack.

I guess joints and resting contacts should be resolved together at the same time, which is obviously not the case at the moment. I believe that making resting contacts unilateral constraints (thus a particular type of joint) will help to achieve simultaneous resolution of resting contacts and joints.

Member sheep::Subspace::step_bodies (Real time, Real step)
Is this really necessary?

Member sheep::SWIFTCollisionDetector::id_to_object_map
Consider using a hash_map container for faster lookup.

Member sheep::SWIFTCollisionDetector::Insert (RigidObject *object)
Use iterators.

Use iterators.

Replace by object->GetBody()->IsFixed()

Member sheep::SWIFTCollisionDetector::RefreshTransformations ()
Remove (this is no more necessary).

Member sheep::TaskManager::Insert (ITask *task)
Use some kind of smart pointer.

Member sheep::Texture::set_texture (int width, int height, const unsigned char *texels)
Implement a better scaling scheme.

Member sheep::TRILoader::open_texture_file (const std::string &filename)
Close files and free resources.

Member sheep::TRILoader::read_error ()
Close files and free resources.

Member sheep::TRILoader::read_geometry_file ()
Fine tune the number of items to read between progress updates.

Fine tune the number of items to read between progress updates.

Close files and free resources.

Member sheep::World::StepBy (Real step)
Is this really necessary? (see Subspace::StepBy)

Member sheep::XXXLoader::fail ()
Throw an exception derived from LoadingException.

Member IsFileReadable (const string &filename)
Implement.

Member IsFileWritable (const string &filename)
Implement.

Member CHECK_FOR_THIN_SURFACES
Document all these defines.

Member main (int argc, char *argv[])
Create a DevILManager() following the example of XercesManager().

Try to save to another file (like backup.png).

Member LOOP (OP)
Optimize by precomputing and storing m_r * m_c in the matrix.

Member CosineHemisphereSampling (sheep::Real xi1, sheep::Real xi2)
Turn the multiplication into an addition.

Member UniformHemisphereSampling (sheep::Real xi1, sheep::Real xi2)
Turn the multiplication into an addition.

Member UniformSphereSampling (sheep::Real xi1, sheep::Real xi2)
Turn the multiplication into an addition.

Turn the multiplication into an addition.

Turn the multiplication into an addition.

Member UnpackSphericalCoords (sheep::uint8 q, sheep::Real *phi, sheep::Real *theta)
Could be faster with a conversion table.

Member UnpackSphericalCoords (sheep::uint8 qphi, sheep::uint8 qtheta, sheep::Real *phi, sheep::Real *theta)
Could be faster with a conversion table.

Member VectorToSphericalCoords (const sheep::Vector3 &v, sheep::Real *phi, sheep::Real *theta)
Turn the multiplication into an addition.

Member sheep::CosineHemisphereSampling (sheep::Real xi1, sheep::Real xi2)
Turn the multiplication into an addition.

Member sheep::LoadMesh (const std::string &filename, int option_mask=IMeshLoader::DEFAULT_CONFIGURATION_BIT, ProgressMonitor *progmon=0)
Restore the default value for the MeshLoader parameter.

Member sheep::UniformHemisphereSampling (sheep::Real xi1, sheep::Real xi2)
Turn the multiplication into an addition.

Member sheep::UniformSphereSampling (sheep::Real xi1, sheep::Real xi2)
Turn the multiplication into an addition.

Turn the multiplication into an addition.

Turn the multiplication into an addition.

Member toxic::ConvertNumberToString (sheep::int64 n)
Implement for floating point arguments, then use it in the Ratio() function (in this file).

Member toxic::ConvertNumberToString (sheep::int64 n)
Rewrite using std::vector<> (or better, std::string).

Member toxic::UnpackSphericalCoords (sheep::uint8 q, sheep::Real *phi, sheep::Real *theta)
Could be faster with a conversion table.

Member toxic::UnpackSphericalCoords (sheep::uint8 qphi, sheep::uint8 qtheta, sheep::Real *phi, sheep::Real *theta)
Could be faster with a conversion table.

Member toxic::VectorToSphericalCoords (const sheep::Vector3 &v, sheep::Real *phi, sheep::Real *theta)
Turn the multiplication into an addition.

Generated on Tue May 11 01:31:54 2004 for toxic by doxygen 1.3.6