Giter Club home page Giter Club logo

ce3d2's People

Contributors

makman2 avatar sils avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

ce3d2's Issues

Implement World class

The World class shall

  • store multiple Models
  • store world transformations

while maintaining performance and flexibility.

Add DepthProjection

Override OrthogonalProjection that calculates into another vector-compoment an approximation of the (Z-)distance to the transformed vector.

Release-packer script

CE3D2 needs a script for packaging itself, so a release can directly made invoking this script.

Fix documentation reference links

Some references are not auto-linked as expected.
The guideline is now:

  • Classes and functions (or any other piece of code) belong inside ``. E.g. TextSurface
  • Functions have an appended (), then they are auto-linked correctly. E.g. copy_from()

Integrate coala into CMake

Hey, you use CMake to generate compiler flags, I think you could use those easily and pass them to clang to get the coala clang analytics run correctly, would be nice to have, wouldn't it?

1.0 release!

  • In CE3D2/CMakeLists.txt change the CE3D2_VERSION_MICRO to 0 instead of dev.
  • Inside CE3D2/doxyfile.in change the PROJECT_NUMBER entry to ${PROJECT_VERSION} only.

Deployment tasks:

  • Build tarball without documentation
  • Build tarball with documentation
  • Build documentation only

1.1 release!

  • In CE3D2/CMakeLists.txt change the CE3D2_VERSION_MICRO to 0 instead of dev.
  • Inside CE3D2/doxyfile.in change the PROJECT_NUMBER entry to ${PROJECT_VERSION} only.

Deployment tasks:

  • Build tarball without documentation
  • Build tarball with documentation
  • Build documentation only

TextRender: Implement Z-buffer

This feature is not downwards compatible since it uses another component of a vector that contains the depth-information. Projectionmatrices are now generated from OrthogonalDepthProjection (see #29).

TextRenderer: Implement hybrid drawing

Hybrid mode combines the line- and triangle-mode. So it draws filled surfaces where the edges resemble lines.

Like this:

______
 \####\_______
  \###########\_____
   \#############__/
    \#########__/
     \#####__/
      \___/

Allow to build with multi-core

Allow to pass options to the ./make.sh script to run the build makefiles with more than one core (via forwarding the -j option or define a custom one).
By default this would be disabled.

Also mention this feature inside the README!

Add TextRenderer

The TextRenderer renders a model onto ASCII characters (presumably an array-object like TextBuffer that can be converted to string via a function).

documentation: Make generation file dependent

Currently the documentation is built every time the user triggers via ./make.sh doc regardless of file-changes.
Build a dependency tree inside the CMake files so it's only generated when something changed.

Add LinearTransformationChain

This transformation chain groups linear transformations together. It takes advantage of premultiplying matrices of the contained transforms.

Implement a little set of geometries

The geometries shall be constructed via functions. They shall accept as less parameters as possible, scaling, translation etc. shall be applied after creation.

Some geometries that should be implemented:

  • cube
  • plane
  • circle
  • cylinder
  • pyramid
  • icosphere
  • UV-sphere

documentation: Use logo

Add another build-step inside the CMakeLists.txt to render the svg-file to an appropriate size, copy it to the build output and use it inside the doxyfile.

Create a Logo!

Use the old CE3D2 logo for that and vary it a bit with the "2".

documentation: Use MathJax instead of LaTeX

LaTeX is at first a very big component and cumbersome. CE3D2 only relies on math formulas which can be interactively rendered using MathJax that allows also scaling the page without having pixelized LaTeX formula images.

Make creating CE3D2::Vector 's not a pain in the ass

You need to completely fill in values yourself:

CE3D2::Vector(3) v;
v[0] = 1.0f;
v[1] = 2.0f;
v[2] = 3.0f;

Something like this would be much better:

auto v = make_vector(1.0f, 2.0f, 3.0f);

The challenge is here also to create the vector efficiently and return an appropriate reference that is also movable, so you can directly put it into a model for example without another copy.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.