Coder Social home page Coder Social logo

thehacker / libspnav Goto Github PK

View Code? Open in Web Editor NEW

This project forked from freespacenav/libspnav

0.0 0.0 0.0 98 KB

Library for communicating with spacenavd or 3dxsrv to get input from 6-dof devices.

Home Page: http://spacenav.sourceforge.net

License: Other

C 96.62% Makefile 3.38%

libspnav's Introduction

libspnav

About

Libspnav is a C library for receiving input from 6 degrees-of-freedom (6dof) input devices, also known as spacemice, spaceballs, etc. 6dof input is very useful for fluidly manipulating objects or viewpoints in 3D space, and fundamendally comprises of relative movement (translation) across 3 axes (TX/TY/TZ), and rotation about 3 axes (RX/RY/RZ).

Libspnav is a counterpart to the free spacenav driver (spacenavd), which runs as a system daemon, and handles all the low level interfacing with the actual devices. However, it can also communicate with the proprietary 3Dconnexion driver (3dxsrv), with reduced functionality.

There are two modes of operation supported by libspnav:

  1. It can use the native spacenav protocol, which works over UNIX domain sockets, supports the whole feature set exposed by libspnav, but is only compatible with spacenavd. This is used when spnav_open is called to connect to the driver.

  2. It can use the X11 magellan protocol, based on X ClientMessage events, which is compatible with both spacenavd and the proprietary 3dxsrv, but only supports a limited subset of features. Basically just receiving input events and changing sensitivity, no queries, device information, or configuration management. This is used when spnav_x11_open is called to connect to the driver.

Also, libspnav provides a magellan API wrapper on top of the libspnav API, which allows existing applications written for the official SDK to be transparently recompiled against libspnav and be free of the 3Dconnexion licensing conditions.

Documentation

To learn how to use libspnav in your programs, refer to the manual, which is available in markdown format under the doc directory of the libspnav distribution. The manual is also available online in HTML format on the free spacenav project website: http://spacenav.sourceforge.net/man_libspnav

Also make sure to check out the example programs which come with libspnav under the examples directory.

examples

Installation

To build and install libspnav, simply run:

./configure
make
make install

Most likely the make install part will need to be executed as root, if you're installing libspnav system-wide, which is the common case (default prefix is: /usr/local).

Running ./configure --help prints available build options.

If you try to build the examples and get a compile error about a missing GL header file, you might wanna install libgl-dev and libglu1-mesa-dev.

License

Copyright (C) 2007-2022 John Tsiombikas [email protected]

libspnav is free software. Feel free to use, modify, and/or redistibute it under the terms of the 3-clause BSD license. See LICENSE for details.

libspnav's People

Contributors

jtsiomb avatar mdedonno1337 avatar smoe avatar chausner avatar luzpaz avatar thehacker 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.