Hi Aurora,
Do you actually need the Locator that takes you into geocentric
coordinates? I.e. are you looking for a flat earth projection or a
geocentric one?
Robert.
On Wed, Feb 27, 2008 at 11:46 AM, aurora restivo <[EMAIL PROTECTED]> wrote:
> Hi!
>
> I have used the example of osgterrain but, even if the skirt is not
> visualized anymore,
> now my terrain is flat (as in the attached figure).
> besides the colors should be used with the gradations, from the tallest
> altitude to the lowest.
> how can I get these results?
>
>
>
>
> Thanks
> Aurora
>
>
> Robert Osfield ha scritto:
> > Hi Aurora,
> >
> > You code is going off on the wrong track. Don't use ShapeDrawable
> > here at all, don't try returning a osg::Geode. You should be
> > returning the osgTerrain::Terrain, this is the node you should be
> > concentrating. Please look at the osgterrain example.
> >
> > Robert.
> >
> > On Feb 20, 2008 12:48 PM, aurora restivo <[EMAIL PROTECTED]> wrote:
> >
> >> Hi Robert,
> >>
> >> I send you the code with the new changes... unfortunately the result
> >> doesn't change...
> >> the plan around the terrain has not disappeared.
> >>
> >> the object terrainTechnique that you have recommended me is necessary to
> >> color the terrain?
> >>
> >> Thanks
> >> Aurora
> >>
> >>
> >>
> >> Robert Osfield ha scritto:
> >>
> >>> Hi Aurora,
> >>>
> >>> To assign the no data value do:
> >>>
> >>> hfLayer->setValidDataOperator(new osgTerrain::NoDataValue(0.0f));
> >>>
> >>> Also you shouldn't need a ShapeDrawable when you are using
> >>> osgTerrain::Terrain, but you will need to assign a TerrainTechnique
> >>> that will be used to render the terrain. See osgterrain example.
> >>>
> >>> Robert.
> >>>
> >>> On Feb 20, 2008 10:51 AM, aurora restivo <[EMAIL PROTECTED]> wrote:
> >>>
> >>>
> >>>> Hi!
> >>>>
> >>>> I apologize but I have not understood well.
> >>>> I have need to draw the ground that is in the file terrain.jpg without
> >>>> the plan that is visualized around.
> >>>> I don't understand as I must use the NoDataValue.
> >>>>
> >>>> Besides I also have problems to color the terrain.
> >>>> My objective is to draw a terrain with a casting of washes.
> >>>>
> >>>> Can you recommend me a book where to find a good documentation for my
> >>>> specific problem?
> >>>>
> >>>> Thanks
> >>>> Aurora Restivo.
> >>>>
> >>>>
>
> #pragma once
>
> #include <osgTerrain/Terrain>
> #include <osgTerrain/GeometryTechnique>
>
> #include <osgGA/TrackballManipulator>
> #include <osgGA/FlightManipulator>
> #include <osgGA/DriveManipulator>
> #include <osgGA/KeySwitchMatrixManipulator>
> #include <osgGA/StateSetManipulator>
> #include <osgGA/AnimationPathManipulator>
> #include <osgGA/TerrainManipulator>
>
> class Morfologia
> {
> public:
> Morfologia(void);
> ~Morfologia(void);
>
> osgTerrain::Terrain* drawMorfologia();
> };
>
>
>
> #include ".\morfologia.h"
> #include ".\gestionematrix.h"
>
> #include <iostream>
> #include <cstdlib>
>
> #include <osg/Vec3d>
> #include <osg/Texture2D>
> #include <osgDB/ReadFile>
>
>
> #include <osgTerrain/Locator>
> #include <osgTerrain/Terrain>
> #include <osgTerrain/ValidDataOperator>
> #include <osgTerrain/Layer>
> #include <osgTerrain/GeometryTechnique>
>
> #include <osgGA/TrackballManipulator>
> #include <osgGA/FlightManipulator>
> #include <osgGA/DriveManipulator>
> #include <osgGA/KeySwitchMatrixManipulator>
> #include <osgGA/StateSetManipulator>
> #include <osgGA/AnimationPathManipulator>
> #include <osgGA/TerrainManipulator>
>
>
> Morfologia::Morfologia(void)
> {
> }
>
> Morfologia::~Morfologia(void)
> {
> }
>
>
> osgTerrain::Terrain* Morfologia::drawMorfologia()
> {
> GestioneMatrix* g=new GestioneMatrix();
>
> int** m= g->leggiFile("morf0.txt");
>
> int** nicchia=g->leggiFile("nicchia0.txt");
>
> int max= g->cercaMax(m);
> int min= g->cercaMin(m);
>
> osg::HeightField* hF = new osg::HeightField();
> hF->allocate(296,410);
>
> for(int i=0; i< 410; i++)
> {
> for(int j=0; j<296 ;j++)
> {
> if(m[i][j]!=0)
> hF->setHeight(j,i,
> m[i][j]+nicchia[i][j]);
> }
> }
>
> hF->setXInterval(41.0);
> hF->setYInterval(29.6);
>
> osg::Quat* quat= new osg::Quat(0,0,180,45);
> hF->setRotation(*quat);
>
>
> osgTerrain::Terrain* terrainNode= new osgTerrain::Terrain();
> osgTerrain::HeightFieldLayer* hFLayer= new
> osgTerrain::HeightFieldLayer();
> hFLayer->setHeightField(hF);
>
>
> //LOCATOR
> double x = 0.0;
> double y = 0.0;
> double w = 1.0;
> double h = 1.0;
>
> osgTerrain::Locator* locator = new osgTerrain::Locator;
>
> locator->setCoordinateSystemType(osgTerrain::Locator::GEOCENTRIC);
> locator->setTransformAsExtents(x, y, w, h);
>
> hFLayer->setLocator(locator);
> //fine locator
>
> //GESTIONE DEGLI '0'
> osgTerrain::ValidDataOperator* dataO= new
> osgTerrain::NoDataValue(0.0f);
> hFLayer->setValidDataOperator(dataO);
> //FINE GESTIONE DEGLI '0'
>
> terrainNode->setElevationLayer(hFLayer);
>
> //COLORI
> osg::ref_ptr<osg::TransferFunction1D> tf = new
> osg::TransferFunction1D;
>
> tf->setInputRange(min, max);
>
> tf->allocate(6);
> tf->setValue(0, osg::Vec4(1.0,1.0,1.0,1.0));
> tf->setValue(1, osg::Vec4(1.0,0.0,1.0,1.0));
> tf->setValue(2, osg::Vec4(1.0,0.0,0.0,1.0));
> tf->setValue(3, osg::Vec4(1.0,1.0,0.0,1.0));
> tf->setValue(4, osg::Vec4(0.0,1.0,1.0,1.0));
> tf->setValue(5, osg::Vec4(0.0,1.0,0.0,1.0));
>
> terrainNode->setColorTransferFunction(0, tf.get());//ATTENZIONE:
> '0' รจ il numero del layer
> //fine colori
>
> return terrainNode;
> }
> #include ".\morfologia.h"
> #include ".\mare.h"
> #include ".\colata.h"
> #include ".\filterhandler.h"
> #include ".\layerhandler.h"
>
> #include <osg/Group>
> #include <osgProducer/Viewer>
> #include <osgTerrain/GeometryTechnique>
>
> #include <osgViewer/Viewer>
> #include <osgViewer/ViewerEventHandlers>
>
> int main()
> {
> Morfologia* morfologia= new Morfologia();
> osgTerrain::Terrain* terrainNode= morfologia->drawMorfologia();
>
>
> Mare* mare= new Mare();
> osg::Geode* geodeMare= mare->drawMare();
>
> Colata* colata=new Colata();
> osg::Geode* geodeColata= colata->drawColata();
>
> osg::Group* root= new osg::Group();
>
> //GEOMETRY TECHNIQUE
> osgTerrain::GeometryTechnique* geometryTechnique = new
> osgTerrain::GeometryTechnique;
> terrainNode->setTerrainTechnique(geometryTechnique);
> //fine technique
>
>
> root->addChild(terrainNode);
>
>
> //VIEWER
> osgViewer::Viewer v;
>
> v.addEventHandler(new osgViewer::StatsHandler);
> v.addEventHandler(new FilterHandler(geometryTechnique));
> v.addEventHandler(new LayerHandler(terrainNode->getElevationLayer()));
>
> v.setSceneData(root);
> v.realize();
> v.run();
> return 0;
> }
>
>
> _______________________________________________
> osg-users mailing list
> [email protected]
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
>
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org