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
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to