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.
> >>
> >>
> >>
> >> Robert Osfield ha scritto:
> >>
> >>
> >>> Hi Aurora,
> >>>
> >>> I think what you are looking for is the osgTerrain::ValidDataOperator
> >>> that you can attach to your elevation layer via
> >>> Layer::setValidDataOperator(operator);
> >>>
> >>> In include/osgTerrain/ValidDataOperator you'll find the NoDataValue
> >>> subclass which is probably what you want to use in your case.
> >>>
> >>> Robert.
> >>>
> >>> On Feb 19, 2008 12:33 PM, aurora restivo <[EMAIL PROTECTED]> wrote:
> >>>
> >>>
> >>>> Hi!
> >>>>
> >>>> the image jpg in enclosure, is the result of the terrain that I have
> >>>> drawn beginning from the matrix of the altitudes.
> >>>> I would want to know if a way exists for not visualizing the quotas
> >>>> equal to 0.
> >>>>
> >>>> the source code is found in the file morfologia.txt
> >>>>
> >>>> Thanks in advance.
> >>>> Aurora Restivo
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
>
>
> #include ".\morfologia.h"
> #include ".\gestionematrix.h"
>
> #include <iostream>
> #include <cstdlib>
> #include <osg/Shape>
> #include <osg/ShapeDrawable>
> #include <osgTerrain/Terrain>
> #include <osgTerrain/ValidDataOperator>
> #include <osgTerrain/Layer>
> #include <osg/Texture2D>
> #include <osgDB/ReadFile>
> #include <osg/Vec3d>
>
>
>
> Morfologia::Morfologia(void)
> {
> }
>
> Morfologia::~Morfologia(void)
> {
> }
>
>
> osg::Geode* Morfologia::drawMorfologia()
> {
> GestioneMatrix* g=new GestioneMatrix();
>
> int** m= g->leggiFile("morf0.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]);
> }
> }
>
> hF->setXInterval(41.0);
> hF->setYInterval(29.6);
>
> osg::Quat* quat= new osg::Quat(0,0,180,45);
> hF->setRotation(*quat);
> //hF->setBorderWidth(1000);
> //hF->setSkirtHeight(500); //set altezza piano
>
>
> osgTerrain::Terrain* terrainNode= new osgTerrain::Terrain();
> osgTerrain::HeightFieldLayer* hFLayer= new
> osgTerrain::HeightFieldLayer();
> hFLayer->setHeightField(hF);
>
>
> osgTerrain::ValidDataOperator* dataO= new
> osgTerrain::NoDataValue(0.0);
> hFLayer->setValidDataOperator(dataO);
>
> terrainNode->setElevationLayer(hFLayer);
>
> //terrainNode->setColorLayer(151,hFLayer);
> //terrainNode->setColorFilter(0, osgTerrain::Terrain::Filter::LINEAR);
>
> osg::Geode* geode= new osg::Geode();
> osg::ShapeDrawable* draw= new osg::ShapeDrawable(hF);
> geode->addDrawable(draw);
>
>
> //TEXTURE
> osg::StateSet* state= new osg::StateSet();
> osg::Texture2D* texture= new osg::Texture2D();
> texture->setDataVariance(osg::Object::DYNAMIC);
> osg::Image* img=
> osgDB::readImageFile("C:/Programmi/OpenSceneGraph/data/Images/Saturn.TGA");
> texture->setImage(img);
> state->setTextureAttributeAndModes(0, texture,
> osg::StateAttribute::ON);
> //geode->setStateSet(state);
> //FINE texture
>
>
>
> return geode;
> }
> _______________________________________________
> 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