Giter Site home page Giter Site logo

rw802 / trimesh2 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from forceflow/trimesh2

0.0 1.0 0.0 483 KB

C++ library and set of utilities for input, output, and basic manipulation of 3D triangle meshes

License: GNU General Public License v2.0

Makefile 0.21% C 56.70% C++ 43.10%

trimesh2's Introduction

TriMesh2

A C++ library and set of utilities for input, output, and basic manipulation of 3D triangle meshes.

trimesh2 logo

This is a fork of the TriMesh2 library (originally by Szymon Rusinkiewicz), which I use a lot in my other graphics projects. I like TriMesh2 because of the low setup costs required to do model loading and manipulation, as well as the robust and powerful implementation of model manipulation.

Getting started

  • Download a prebuilt release of trimesh2 (coming soon!) or build the library yourself. The static library will be called trimesh.lib, the debug version is trimeshd.lib.
    • For Windows, Visual Studio CE 2015 and 2017 solutions are in the mscv folder. The built library will be placed in a folder named lib.(architecture).(visual studio version). For example, for a 64-bit Visual Studio 2017 build, it will be lib.win64.vs141.
    • For Linux, a makefile is provided
  • In your own project, make sure you include the header include/TriMesh.h, and make sure the static library is in your build path. All Trimesh2 functions will be in the TriMesh namespace.
  • For inspiration on how to use the library, check out the utilities in the utilsrc folder, or just start by loading a model : TriMesh* themesh = TriMesh::read(filename);

News

  • mesh_view tool now builds in Win64 without external dependencies!

Info

Legacy:

  • For the original TriMesh2 project, see the Trimesh2 homepage.
  • Original MSVC 2012 project by Bengt Rosenberger.

Features:

  • Support for reading/writing PLY, OFF, OBJ files. Read-only: 3DS, SM, RAY.
  • Vec: a templated C++ class for constant-length vectors, with support for the usual arithmetic operations and XForm: a class for rigid-body transformations.
  • An OpenGL trackball/arcball implementation, with automatic selection of rotation center.
  • Algorithms for subdivision, smoothing, curvature estimation, triangle stripping, and various other simple mesh manipulations.

The following utility programs are included:

  • mesh_view: A simple 3D mesh viewer
  • mesh_make: Create arbitrarily-tessellated meshes of various simple shapes
  • mesh_filter: Applies a variety of simple transformations to a mesh, such as converting formats, flipping faces, subdivision, smoothing, rigid-body transformations, etc.
  • mesh_cc: List and/or extract connected components from a mesh
  • mesh_cat: Combine several meshes into a single file
  • mesh_align: Align 2 meshes using ICP
  • mesh_shade: A few procedural shaders for adding per-vertex color
  • mesh_check: Check for some kinds of topological oddities (e.g., more than 2 faces at an edge) in a mesh file.
  • mesh_crunch: Quick-n-dirty mesh decimation using the Rossignac-Borrel method of vertex collapse
  • mesh_info: Print out some information about a mesh
  • xf: Create or compose transformations in .xf files

Fork Details

The original TriMesh2 project was very Linux/GCC-oriented, and only had limited Win32 support. The primary aim of this fork is to provide a stable MSVC solution, for both x86 and x64 targets. For several tools, TriMesh2 depends on a custom-cherrypicked freeglut version - dragging this kicking and screaming into the new century is also part of the challenge.

Notable changes/additions to vanilla trimesh2

  • Fixes for MSVC 12.0 / 14.0 compilation
  • MSVC project for Visual Studio 2013 professional
  • MSVC project for Visual Studio Community Edition 2015
  • Fixes for OpenMP compilation in VS 2015
  • Fixes for FreeGlut / Gluit compilation in VS 2015
  • Added (experimental) 64-bit MSVC compilation support

For todo/planned features, see todo.txt.

trimesh2's People

Contributors

forceflow avatar

Watchers

James Cloos avatar

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.