<div dir="ltr">So, I don't know if Glenn Waldron of Pelican Mapping is reading this forum frequently right now. A question about "best practices" is probably best put to him. You might want to re-ask this on the osgEarth forum itself.</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Sep 25, 2019 at 12:10 PM <a href="mailto:speterson@idealaero.com">speterson@idealaero.com</a> <<a href="mailto:speterson@idealaero.com">speterson@idealaero.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">





<div lang="EN-US">
<div class="gmail-m_8525870185258305317WordSection1">
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">Wanted to let you know I had some success with this following code.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:9.5pt;font-family:Consolas;color:black">   
</span><span style="font-size:9.5pt;font-family:Consolas;color:green">// Feature Options (references the geometry)</span><span style="font-size:9.5pt;font-family:Consolas;color:black"><u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:9.5pt;font-family:Consolas;color:black">    _featureOptions.geometry()
</span><span style="font-size:9.5pt;font-family:Consolas;color:teal">=</span><span style="font-size:9.5pt;font-family:Consolas;color:black"> _polygon;<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:9.5pt;font-family:Consolas;color:black"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:9.5pt;font-family:Consolas;color:black">   
</span><span style="font-size:9.5pt;font-family:Consolas;color:green">// Model Options (references the feature options and style)</span><span style="font-size:9.5pt;font-family:Consolas;color:black"><u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:9.5pt;font-family:Consolas;color:black">    _geomOptions.featureOptions()
</span><span style="font-size:9.5pt;font-family:Consolas;color:teal">=</span><span style="font-size:9.5pt;font-family:Consolas;color:black"> _featureOptions;<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:9.5pt;font-family:Consolas;color:black">    _geomOptions.merge(_featureOptions);<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:9.5pt;font-family:Consolas;color:black"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:9.5pt;font-family:Consolas;color:black">    osgEarth::</span><span style="font-size:9.5pt;font-family:Consolas;color:rgb(43,145,175)">Layer</span><span style="font-size:9.5pt;font-family:Consolas;color:black">*
 l = _map</span><span style="font-size:9.5pt;font-family:Consolas;color:teal">-></span><span style="font-size:9.5pt;font-family:Consolas;color:black">getLayerByName(</span><span style="font-size:9.5pt;font-family:Consolas;color:rgb(163,21,21)">"newlayer"</span><span style="font-size:9.5pt;font-family:Consolas;color:black">
</span><span style="font-size:9.5pt;font-family:Consolas;color:teal">+</span><span style="font-size:9.5pt;font-family:Consolas;color:black"> std::to_string(_newlayertimemin));<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:9.5pt;font-family:Consolas;color:black">    osgEarth::</span><span style="font-size:9.5pt;font-family:Consolas;color:rgb(43,145,175)">ModelLayer</span><span style="font-size:9.5pt;font-family:Consolas;color:black">*
 ml = </span><span style="font-size:9.5pt;font-family:Consolas;color:blue">dynamic_cast</span><span style="font-size:9.5pt;font-family:Consolas;color:black"><osgEarth::</span><span style="font-size:9.5pt;font-family:Consolas;color:rgb(43,145,175)">ModelLayer</span><span style="font-size:9.5pt;font-family:Consolas;color:black">*>(l);<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:9.5pt;font-family:Consolas;color:black">    osgEarth::Features::</span><span style="font-size:9.5pt;font-family:Consolas;color:rgb(43,145,175)">FeatureModelSource</span><span style="font-size:9.5pt;font-family:Consolas;color:black">*
 ms = (osgEarth::Features::</span><span style="font-size:9.5pt;font-family:Consolas;color:rgb(43,145,175)">FeatureModelSource</span><span style="font-size:9.5pt;font-family:Consolas;color:black">*)ml->getModelSource();<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:9.5pt;font-family:Consolas;color:black">    ms->getFeatureSource()->dirty();<u></u><u></u></span></p>
<p class="MsoNormal"><a name="m_8525870185258305317__MailEndCompose"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"><u></u> <u></u></span></a></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">When I was doing this before I was using ms->dirty(); which never caused the redraw but found that someone in one of the forms was using a doing it one call deeper
 on the ModelSource insteadof the FeatureModelSource and this fixed my update issue within my system thread.  My changes to the geometry _polygon are now working and seems to work really nicely.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">Ofc if this is not the optimal way to handle this please let me know. Or if my shader idea for doing animations is not optimal please feel free to suggest ways
 to make it better.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">Thanks.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"><u></u> <u></u></span></p>
<p class="MsoNormal"><b><span style="font-size:11pt;font-family:Calibri,sans-serif">From:</span></b><span style="font-size:11pt;font-family:Calibri,sans-serif"> osg-users [mailto:<a href="mailto:osg-users-bounces@lists.openscenegraph.org" target="_blank">osg-users-bounces@lists.openscenegraph.org</a>]
<b>On Behalf Of </b>Chris Hanson<br>
<b>Sent:</b> Wednesday, September 25, 2019 12:08 AM<br>
<b>To:</b> OpenSceneGraph Users <<a href="mailto:osg-users@lists.openscenegraph.org" target="_blank">osg-users@lists.openscenegraph.org</a>><br>
<b>Subject:</b> Re: [osg-users] questions about developing drivers for osg/osgEarth<u></u><u></u></span></p>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<p class="MsoNormal">I'd like to help you a bit more, but I've been really slammed with another osgEarth client this week. If you're patient, I can probably help you more in a few days.<u></u><u></u></p>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<div>
<p class="MsoNormal">On Mon, Sep 23, 2019 at 2:03 PM <a href="mailto:speterson@idealaero.com" target="_blank">
speterson@idealaero.com</a> <<a href="mailto:speterson@idealaero.com" target="_blank">speterson@idealaero.com</a>> wrote:<u></u><u></u></p>
</div>
<blockquote style="border-top:none;border-right:none;border-bottom:none;border-left:1pt solid rgb(204,204,204);padding:0in 0in 0in 6pt;margin-left:4.8pt;margin-right:0in">
<div>
<div>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">Got shaders to work on geometry’s now just took me getting totally frustrated and taking a walk it
 seems </span><span style="font-size:11pt;font-family:Wingdings;color:rgb(31,73,125)">J</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"> </span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:9.5pt;font-family:Consolas;color:black">osgEarth::</span><span style="font-size:9.5pt;font-family:Consolas;color:rgb(43,145,175)">ModelLayerOptions</span><span style="font-size:9.5pt;font-family:Consolas;color:black">
 layerOptions(</span><span style="font-size:9.5pt;font-family:Consolas;color:rgb(163,21,21)">"test polygon"</span><span style="font-size:9.5pt;font-family:Consolas;color:black">, geomOptions);</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:9.5pt;font-family:Consolas;color:black">osgEarth::</span><span style="font-size:9.5pt;font-family:Consolas;color:rgb(43,145,175)">ModelLayer</span><span style="font-size:9.5pt;font-family:Consolas;color:black">*
 test = </span><span style="font-size:9.5pt;font-family:Consolas;color:blue">new</span><span style="font-size:9.5pt;font-family:Consolas;color:black"> osgEarth::</span><span style="font-size:9.5pt;font-family:Consolas;color:rgb(43,145,175)">ModelLayer</span><span style="font-size:9.5pt;font-family:Consolas;color:black">(layerOptions);</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:9.5pt;font-family:Consolas;color:black">osg::</span><span style="font-size:9.5pt;font-family:Consolas;color:rgb(43,145,175)">StateSet</span><span style="font-size:9.5pt;font-family:Consolas;color:black">*
 tss = test->getOrCreateStateSet();</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:9.5pt;font-family:Consolas;color:rgb(43,145,175)">VirtualProgram</span><span style="font-size:9.5pt;font-family:Consolas;color:black">* vp =
</span><span style="font-size:9.5pt;font-family:Consolas;color:rgb(43,145,175)">VirtualProgram</span><span style="font-size:9.5pt;font-family:Consolas;color:black">::getOrCreate(tss);</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:9.5pt;font-family:Consolas;color:black">vp->setName(</span><span style="font-size:9.5pt;font-family:Consolas;color:rgb(163,21,21)">"imageLayer"</span><span style="font-size:9.5pt;font-family:Consolas;color:black">);</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:9.5pt;font-family:Consolas;color:rgb(43,145,175)">myshaders</span><span style="font-size:9.5pt;font-family:Consolas;color:black"> shaders;</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:9.5pt;font-family:Consolas;color:black">shaders.load(vp, shaders.myimagecc_Vertex);</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:9.5pt;font-family:Consolas;color:black">shaders.load(vp, shaders.myimagecc_Fragment);</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:9.5pt;font-family:Consolas;color:black">_map</span><span style="font-size:9.5pt;font-family:Consolas;color:teal">-></span><span style="font-size:9.5pt;font-family:Consolas;color:black">addLayer(test);</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"> </span><u></u><u></u></p>
<p class="MsoNormal"><a name="m_8525870185258305317_m_-4211621678533894134__MailEndCompose"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">Was the code to get it working had to apply it to
 the ModelLayer not the geometry and add some hooks into my shaders to keep the transparent parts the same.</span></a><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"> </span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"> </span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">Now to figure out how to get the data to change for the shaders to act on.</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"> </span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"> </span><u></u><u></u></p>
<p class="MsoNormal"><b><span style="font-size:11pt;font-family:Calibri,sans-serif">From:</span></b><span style="font-size:11pt;font-family:Calibri,sans-serif"> osg-users [mailto:<a href="mailto:osg-users-bounces@lists.openscenegraph.org" target="_blank">osg-users-bounces@lists.openscenegraph.org</a>]
<b>On Behalf Of </b>Chris Hanson<br>
<b>Sent:</b> Thursday, September 19, 2019 10:29 AM<br>
<b>To:</b> OpenSceneGraph Users <<a href="mailto:osg-users@lists.openscenegraph.org" target="_blank">osg-users@lists.openscenegraph.org</a>><br>
<b>Subject:</b> Re: [osg-users] questions about developing drivers for osg/osgEarth</span><u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<div>
<p class="MsoNormal">Ok. That helps a lot. Thanks.<u></u><u></u></p>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">So, I theorize that you are loading a 2d vector field as a data layer, that represents the 2D wind velocity vector at every data grid point covering the area, and then you use some
 kind of shader to display that as a colorfield and displays the moving flow lines? And then you update the 2d vector map periodically to represent the current data?<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">If that's the case, it sounds like you're just needing to load a conventional two-channel 2D image and do all the display work in shaders. That doesn't sound like how you're doing
 it though?<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">There's nothing at all that is file-specific about osgEarth, its drivers or its data sources. Many of the drivers talk to network-based data sources without accessing local files,
 so those shouldn't be an issue.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">Glenn can probably comment better on how to best make a driver that updates itself periodically or on cue, but you ought to be able to just poll every 30 seconds or so and see if
 a data is available and refresh it somehow.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
</div>
</div>
<div>
<p class="MsoNormal"><span style="font-size:6pt;font-family:Tahoma,sans-serif;color:rgb(31,73,125);text-transform:uppercase">The information contained in this email and any attachments is intended only
 for the personal and confidential use of the intended recipients. This email message may be or may contain privileged and confidential communications. If the reader of this e-mail is not an intended recipient, you are hereby notified that you have received
 this communication in error and that any retention, review, use, dissemination, distribution or copying of this communication or the information contained herein is strictly prohibited. If you have received this communication in error, please notify the sender
 immediately and delete the original message and all attachments from your system. The recipient should check this email and any attachments for the presence of viruses. The company accepts no liability for any damage caused, directly or indirectly, by any
 virus transmitted in this email. This communication may also contain data subject to U.S. export laws. If so, that data subject to the International Traffic in Arms Regulation (ITAR) cannot be disseminated, distributed or copied to foreign nationals, residing
 in the U.S. or abroad, absent the express prior approval of the U.S. Department of State. If you have received this communication in error, please notify the sender by reply e-mail and destroy the e-mail message and any physical copies made of the communication.
 Thank you.</span><u></u><u></u></p>
</div>
</div>
<p class="MsoNormal">_______________________________________________<br>
osg-users mailing list<br>
<a href="mailto:osg-users@lists.openscenegraph.org" target="_blank">osg-users@lists.openscenegraph.org</a><br>
<a href="http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org" target="_blank">http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org</a><u></u><u></u></p>
</blockquote>
</div>
<p class="MsoNormal"><br clear="all">
<u></u><u></u></p>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<p class="MsoNormal">-- <u></u><u></u></p>
<div>
<div>
<div>
<div>
<div>
<p class="MsoNormal" align="center" style="text-align:center">Chris 'Xenon' Hanson, omo sanza lettere.
<a href="mailto:Xenon@AlphaPixel.com" target="_blank">Xenon@AlphaPixel.com</a> <a href="http://www.alphapixel.com/" target="_blank">
http://www.alphapixel.com/</a><u></u><u></u></p>
<p class="MsoNormal" align="center" style="text-align:center">Training • Consulting • Contracting<u></u><u></u></p>
<p class="MsoNormal" align="center" style="text-align:center">3D • Scene Graphs (Open Scene Graph/OSG) • OpenGL 2 • OpenGL 3 • OpenGL 4 • GLSL • OpenGL ES 1 • OpenGL ES 2 • OpenCL<u></u><u></u></p>
<p class="MsoNormal" align="center" style="text-align:center"><span style="font-size:9.5pt">Legal/IP • Forensics • </span>Imaging <span style="font-size:9.5pt">• UAVs • GIS • GPS • osgEarth • Terrain • Telemetry • Cryptography • LIDAR • Embedded • Mobile •
 iPhone/iPad/iOS • Android</span><u></u><u></u></p>
<p class="MsoNormal" align="center" style="text-align:center"><a href="https://twitter.com/alphapixel" target="_blank">@alphapixel</a>
<a href="http://facebook.com/alphapixel" target="_blank">facebook.com/alphapixel</a> (775) 623-PIXL [7495]<u></u><u></u></p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>

_______________________________________________<br>
osg-users mailing list<br>
<a href="mailto:osg-users@lists.openscenegraph.org" target="_blank">osg-users@lists.openscenegraph.org</a><br>
<a href="http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org" rel="noreferrer" target="_blank">http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org</a><br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div style="text-align:center">Chris 'Xenon' Hanson, omo sanza lettere. Xenon@AlphaPixel.com <a href="http://www.alphapixel.com/" target="_blank">http://www.alphapixel.com/</a></div><div style="text-align:center">Training • Consulting • Contracting</div><div style="text-align:center">3D • Scene Graphs (Open Scene Graph/OSG) • OpenGL 2 • OpenGL 3 • OpenGL 4 • GLSL • OpenGL ES 1 • OpenGL ES 2 • OpenCL</div><div style="text-align:center"><span style="font-size:12.8px">Legal/IP •</span><span style="font-size:12.8px"> </span><span style="font-size:12.8px">Forensics •</span><span style="font-size:12.8px"> </span>Imaging <span style="font-size:12.8px">•</span><span style="font-size:12.8px"> </span><span style="font-size:12.8px">UAVs </span><span style="font-size:12.8px">• GIS • GPS • osgEarth • Terrain • Telemetry • Cryptography • LIDAR • Embedded • Mobile • iPhone/iPad/iOS • Android</span></div><div style="text-align:center"><a href="https://twitter.com/alphapixel" target="_blank">@alphapixel</a> <a href="http://facebook.com/alphapixel" target="_blank">facebook.com/alphapixel</a> (775) 623-PIXL [7495]<br></div></div></div></div></div></div>