Giter VIP home page Giter VIP logo

starlab's Introduction

#starlab

A lightweight, modular, and cross-platform (Windows, OSX, Linux) 3D geometry processing environment.

Running on Windows 8

Running ICP plugin on OSX

Running on Ubuntu

Requirments

  • Qt 5
  • Modern C++ compiler

Features

  • Lightweight, minimal external dependency
  • Uses a state of the art mesh data-structure and linear algebra library (Surface_mesh + Eigen)

Developing a Starlab Plugin

There are two types of plugins you can easily write:

  • Filter plugin
  • Mode plugin

Simply copy any of the provided example plugins and rename them as your own.

Filter

A filter plugin is a one way process on a selected model. You provide any number of parameters and then apply your algorithm. Example surfacemesh_filter_normalize.

The two functions to modify are:

    void initParameters( RichParameterSet* pars );
    void applyFilter( RichParameterSet* pars );

Where you can easily add parameters such as:

pars->addParam(new RichFloat("angle", 90.0f, "Maximum angle"));
pars->addParam(new RichBool("visualize", true, "Visualize result"));

And use them in your applyFilter() method:

bool isVisualize = pars->getBool("visualize")

Mode

A mode plugin gives you full control over the starlab interface. It is useful for interactive or more complex model processing. A tool button with an icon is added to the tool bar for each loaded mode plugin. Example surfacemesh_mode_arapdeform in action.

Several functions to look into are:

void create();
void decorate();
bool keyPressEvent(QKeyEvent *);

The create function is called once the mode is selected. The decorate functions allows you to make OpenGL calls on the current scene. The keyPressEvent and other Qt keyboard and mouse widget events can be overloaded to include your own desired behavior.

starlab's People

Contributors

ialhashim avatar taiya avatar bojianwu avatar

Watchers

James Cloos avatar Dmytro Ostapenko avatar  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.