From 87652194cd26fb3c6efa14a83edb2949f836f9ad Mon Sep 17 00:00:00 2001 From: Thomas FORGIONE Date: Fri, 2 Dec 2016 16:01:42 +0100 Subject: [PATCH] README / Docs --- README.md | 31 ++++++++++++++++++++++++++++--- d3/model/basemodel.py | 3 ++- 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 56041c4..7025663 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,22 @@ # model-converter This project aims to be a simple, lightweight, and useful 3D model editor. -For the moment, only `obj` and `ply` ascii models are supported. +For the moment, only `obj`, `ply` ascii models are supported. Feel free to open an issue if you find anything wrong in this. + - [Scripts](#scripts) + - [Install](#install) + - [Contributing](#contributing) + - [List of all supported formats](#formats) + # Scripts A few utilities to manage 3D models : - `convert.py` that converts any type of model to any other - `viewer.py` which is a simple script that renders a 3d model -# Dependencies +# Install This project is written in python 3. The `convert.py` script is made for needing nothing else than python. However, the `viewer.py` script has a few @@ -23,7 +28,27 @@ dependencies, you'll need : - pygame `sudo pip install pygame` - PyOpenGL `sudo pip install pyopengl` -## Supported formats +## Contributing + +If you want to add a new format to this converter, it should be easy enough, +you just have to create a python file in `d3/model/formats` that should : + + - be named after the format you want to add (e.g. `obj.py`) + - contain a function that tests if a filename is in the specified format (e.g. `is_obj`) + - contain a parser class (e.g. `OBJParser`) + - contain an exporter class (e.g. `OBJExporter`) + +### About the parser +The parser should inherit the `ModelParser` class in the `basemodel.py` module. +The `ModelParser` class has everything needed to create a 3D model and render it. + +### About the exporter +The exporter should inherit the `Exporter` class in the `basemodel.py` module. +It should have a constructor that takes a `ModelParser` has parameter and a +`__str__` method that should compute the export. + +## Formats +Here is the list of all the supported formats - Wavefront `.obj` - Stanford `.ply` - STL files `.stl` diff --git a/d3/model/basemodel.py b/d3/model/basemodel.py index b4598d5..7fff452 100644 --- a/d3/model/basemodel.py +++ b/d3/model/basemodel.py @@ -93,7 +93,8 @@ class ModelParser: def add_vertex(self, vertex): """Adds a vertex to the current model - Will also update its bounding box + Will also update its bounding box, and convert the up vector if + up_conversion was specified. """ # Apply up_conversion to the vertex new_vertex = vertex