Our host talks with several different IGs on the backend (OSG, Quantum3D,
Aechelon) . All use the CIGI protocol. If it wasn't for CIGI, our host would
have to support different ways of communicating with each IG which would be
a pain. 

The OSG-based IG is one that we developed in-house. Like both Chris' , we
also spawned our efforts off of Boeing's MPV with our own modifications.

Rather than rolling CIGI into OSG, I would suggest using a thread/process
that eats CIGI packets that then interfaces with OSG where applicable.

A while back, the developer of osgVisual had contemplated writing a CIGI
plugin. I don't know where that effort ended up though...

-Shayne

-----Original Message-----
From: osg-users-boun...@lists.openscenegraph.org
[mailto:osg-users-boun...@lists.openscenegraph.org] On Behalf Of Chris Best
Sent: Tuesday, May 28, 2013 2:29 PM
To: OpenSceneGraph Users
Subject: Re: [osg-users] Any recent work on CIGI interfaces to OSG?

Hi Chris,


I work on an OpenSceneGraph-based image generator for the Federal Aviation
Administration that is built on the CIGI protocol. Like you, we originally
started from MPV and worked from there. Thankfully we threw all that code
away and started from scratch.

I don't know how much has changed in MPV in the past five years... Maybe
it's a great, well-engineered piece of software now! But if it's like what I
remember, I'd only use it as a reference on CIGI concepts, not on how to
integrate OSG into a CIGI application. It wasn't designed for
multithreading, it was originally built for OSG 0.91, and it uses a library
called osgSDL to handle Windowing, "threading", and user input... Which
makes using any modern OSG code/examples (which expect an osgViewer/osgGA
base) problematic to say the least. 


Also, if you're serious about CIGI support, you may need to roll your own
CIGI library. I haven't looked at the 3.3.3 version of CCL, but when it
finally became apparent that our wrapper code around CCL 3.3.2 was rivaling
the size of CCL itself, we ended up rewriting it from scratch. Again, it's a
good solution for teaching you the concepts, but I think it's really best as
a reference implementation and not practical for production use...


May I ask why you're working on adding a CIGI interface to FlightGear? I'm
only curious because we keep asking ourselves why we stuck with CIGI all
these years, as no one else actually seems to use it! Any other vendors we
deal with always go "Well, yeah, you CAN use CIGI with our stuff... But it'd
really be better if you used our API instead!" And then when you look at
their CIGI support, they usually have just wrapped their proprietary packets
in CIGI custom packets... Bleh.


But if this hasn't thoroughly discouraged you yet... Well, I'm not sure I
have any good news for you, really. You're going to find that SO MUCH of
CIGI is either incredibly ambiguous or 'implementation defined', that you're
going to have trouble writing a general-purpose CIGI wrapper. If you're
willing to get more specific, I think a useful area for you to work on is
handling EntityCtrl packets at the very least, to add/move/delete entities
to a scene graph. That's (to me) the really key/useful feature exposed by
CIGI, and is probably the most well-defined part of the protocol. It'll also
be your first real taste of how CIGI gets you most of the way, as you'll
have to provide an out-of-band way to map entity types to model files, and
also a way to let a user specify the coordinate system transform from the
WGS84 ellipsoid to their database coordinates. Oh, and CIGI optionally lets
you specify a custom ellipsoid, too. I'd save some sanity and leave that
particular feature in the "not supported" column. :)


After that... Extending osgGA::NodeTrackerManipulator to follow the Ownship
entity in your scene graph would be a good step towards having a functional
image generator, if that's what you're aiming for. 


If you have any specific questions, feel free to ping me and I'll be happy
to share the dubious benefits of five years of working on your problem with
you. 

But if you're looking for general advice on implementing CIGI in OSG...
Well... In one word: Don't.


In slightly more words: Think very hard as to why you're doing it, and what
the likelihood is you'll actually ever integrate your solution with a
DIFFERENT system that uses CIGI... And is using a compatible version of
CIGI... And made the same (or similar enough) choices about the ambiguous or
implementation defined features...


Good luck.


-Chris B




On Fri, May 24, 2013 at 5:26 PM, Chris Calef <chris.ca...@gmail.com> wrote:


        Hi, 
        
        
        I'm new to OSG, coming in from the direction of FlightGear, but I'm
here primarily because I am interested in implementing a CIGI interface to
FlightGear, and would like to put as much of this work as possible into an
OSG module in order to make it useful to the larger OSG community and not
only FlightGear developers.
        
        
        I have read the conversations about doing this from several years
ago, but have not found any recent discussion or located any available code
drops.  I have downloaded the MPV example from CIGI at sourceforge, which is
based on OSG, and that is quite helpful, but I wanted to introduce myself
here and see if anyone can catch me up on any other existing work in this
direction, or give me advice about where to start.
        
        
        Much of the CIGI interface is dedicated to higher order simulation
functions (ie celestial bodies, ocean conditions, aircraft controls) which
are probably too specific to implement at the OSG layer, but I'd like to
make at least a virtual wrapper in OSG which could be inherited by
FlightGear and other OSG based projects, each of which could determine on
its own which functions to support, and how to support them.
        
        
        Any pointers would be welcome.  I am applying for funding for this
project in one week, so the more information I can gather before then the
better.  
        
        
        Thanks for all your efforts!
        
        Chris Calef, CTO
        BrokeAss Games, LLC
        
        

        _______________________________________________
        osg-users mailing list
        osg-users@lists.openscenegraph.org
        
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
        
        


Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to