Giter Club home page Giter Club logo

cppintrospection's Introduction

cppintrospection
----------------

The cppintrospection library was a part of the OpenSceneGraph library before
version 2.9.8. And it is then removed from the kernel and work as an independent
project. It is initially created and managed by Macro Jez and Robert Osfield,
and then managed by Wang Rui. It has been renamed to cppintrospection by 
Mike Wozniewski, Tristan Matthews and Alexandre Quessy in 2011.

cppintrospection provides a reflection mechanism which could do non-intrusive
callings of properties and methods at runtime. This makes OSG able to work with
languages other than C/C++.

cppintrospection is ideal for providing non native language binding to the OpenSceneGraph, convenient means
for editing properties in a generic way, such as required in scene graph editors,
and also facilitates the automatic serealization of objects.

cppintrospection can be used to provide introspection support to 3rd Party libraries without the need to
modify them to add this support, the wrappers providing the actual binding can be
automatically generated by parsing header files via gen_wrapper utility.  All the
core OpenSceneGraph libraries have pre built wrappers available for you use.

There are some good examples that using or had used osgIntrospection for own
purposes.
osgDotNet: http://www.openscenegraph.org/projects/osgDotNet
osgEdit: http://osgedit.sourceforge.net/
osgLua: http://svn.pplux.com/lab/osgLua/
osgPython: http://mescriva.codemaniacs.com/svn/osgPython/
...

For more information about OSG and the genwrapper tool which is used to generated
osgIntrospection wrappers, please visit:
http://www.openscenegraph.org
http://www.openscenegraph.org/projects/osg/wiki/GenWrapper

GenWrapper
----------

Maco Jez's genwrapper is a utiltiy program that reads C++ header files and then automatically generates osgWrapper code from to use alongside osgIntrospection. 

GenWrapper  was created as an 'ad-hoc' tool to support the development of osgIntrospection and it was never intended to be used with anything other than OSG source files, nor it was designed to meet requirements other than the author's ones. GenWrapper was tested on the OSG source tree ONLY and it's not known to work with anything else. If you want to use GenWrapper  on your own application's source tree, try to follow OSG coding conventions and directory layout in order to minimize the risk of failure. GENWRAPPER MAY OVERWRITE AND DESTROY YOUR FILES, USE AT YOUR OWN RISK. ALWAYS MAKE BACKUPS!!! 

Wrappers are generated from a two-phases process. The first phase requires an XML description of source files to be created with Doxygen (GenWrapper can build a Doxyfile for you). In the second phase GenWrapper takes the XML input and generates C++ introspection wrappers and optionally GNU makefiles and VS6 project files. 

RECENT HISTORY
--------------
The osgIntrospection project was maintained in a Subversion repository on http://www.openscenegraph.org/svn/osg/osgIntrospection/trunk and has been forked and renamed to cppintrospection by Alexandre Quessy, Mike Wozniewski and Tristan Matthews in 2011. They packaged it using the GNU Autotools, but left the CMake files there too, as an alternative build system.

NOTES
-----

GenWrapper only overwrites files whose content has actually changed. Wrapper files are written into output_dir/src/osgWrappers. VS6 project files are written into output_dir/VisualStudio/osgWrappers.
Change lists (option -l) are created as three text files for each target directory. Such files are named "removed.gw" (list of removed files), "added.gw" (list of added files) and "modified.gw" (list of modified files).

Tested Doxygen version is 1.4.1. GenWrapper may not work with other versions. 

2006 - Written by Maco Jez
2010 - Updated by Mike Wozniewski, Tristan Matthews and Alexandre Quessy

REPORTING BUGS
--------------

http://github.com/sat-metalab/cppintrospection

Note that the cppintrospection project is a friendly fork of osgIntrospection, which can be found at the following URL:
http://www.openscenegraph.org/svn/osg/osgIntrospection/

Please post on the OpenSceneGraph osg-users mailing list if you want to discuss about cppintrospection.
http://www.openscenegraph.org/projects/osg/wiki/MailingLists


COPYRIGHT
---------

  Copyright (C) 2002 Robert Osfield
  Copyright (C) 2006 Maco Jez
  Copyright (C) 2006 Wang Rui
  Copyright (C) 2010 Mike Wozniewski
  Copyright (C) 2010 Tristan Matthews
  Copyright (C) 2010 Alexandre Quessy
  
  Released under the terms of the OpenSceneGraph Public License, Version 0.0
  Notes: the OSGPL is based on the LGPL, with the 4 exceptions laid in the wxWindows.

cppintrospection's People

Contributors

rpavlik avatar aalex avatar

Stargazers

 avatar zacklocx avatar Billy O'Neal avatar  avatar  avatar

Watchers

 avatar James Cloos avatar Silvio Traversaro avatar  avatar  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.