Show
Ignore:
Timestamp:
04/24/14 12:49:57 (3 hours ago)
Author:
robert
Message:

From Mattias Helsing, "Seems I was only half right given what you asked for. CMP0017 only
says that modules that are found and ran from cmake modules dir should
prefer cmake-provided modules. find_package() and include() still look
in CMAKE_MODULE_PATH first.

After some investigating I've come up with a proposal examplified in
the attached FindGDAL.cmake script. It simply calls the cmake provided
FindGDAL.cmake if it exists and returns if it succeeds in finding GDAL
using that, otherwise continue with our local cmake code.
Pro: Wont clutter our root CMakeLists.txt
Con: If we begin to write more advanced Findxxx modules (using
COMPONENTS, REQUIRED etc.) we may have to revise this scheme.
"

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • OpenSceneGraph/trunk/src/osgPlugins/normals/Normals.cpp

    r13041 r13502  
    6060        if( geom ) 
    6161        { 
     62            if (geom->containsDeprecatedData()) geom->fixDeprecatedData(); 
     63             
    6264            Vec3Array *coords   = dynamic_cast<Vec3Array*>(geom->getVertexArray()); 
    6365            if( coords == 0L ) 
     
    8688                _local_coords->push_back( (v + n)); 
    8789            } 
    88             else // BIND_PER_PRIMITIVE_SET, BIND_PER_PRIMITIVE, BIND_PER_VERTEX 
     90            else // BIND_PER_PRIMITIVE_SET, BIND_PER_VERTEX 
    8991            { 
    9092                Geometry::PrimitiveSetList& primitiveSets = geom->getPrimitiveSetList(); 
     
    122124                                    _processPrimitive( 3, coord_index, normals_index, binding ); 
    123125                                    coord_index += 3; 
    124                                     if( binding == Geometry::BIND_PER_PRIMITIVE ) 
    125                                         normals_index++; 
    126                                     else 
    127                                         normals_index+=3; 
     126                                    normals_index+=3; 
    128127                                } 
    129128                                break; 
     
    151150                                    _processPrimitive( 4, coord_index, normals_index, binding ); 
    152151                                    coord_index += 4; 
    153                                     if( binding == Geometry::BIND_PER_PRIMITIVE ) 
    154                                         normals_index++; 
    155                                     else 
    156                                         normals_index+=4; 
     152                                    normals_index +=4; 
    157153                                } 
    158154                                break; 
     
    170166                                        _processPrimitive(num_prim, coord_index, normals_index, binding); 
    171167                                        coord_index += num_prim; 
    172                                         if (binding == Geometry::BIND_PER_PRIMITIVE) { 
    173                                             ++normals_index; 
    174                                         } else { 
    175                                             normals_index += num_prim; 
    176                                         } 
     168                                        normals_index += num_prim; 
    177169                                    } 
    178170                                } 
     
    199191    Vec3 v(0,0,0); 
    200192    Vec3 n(0,0,0); 
    201     if( _mode == SurfaceNormals || binding == Geometry::BIND_PER_PRIMITIVE ) 
     193    if( _mode == SurfaceNormals ) 
    202194    { 
    203         if( binding == Geometry::BIND_PER_PRIMITIVE ) 
    204         { 
    205             n = *(normals++); 
    206         } 
    207         else if( binding == Geometry::BIND_PER_VERTEX ) 
     195        if( binding == Geometry::BIND_PER_VERTEX ) 
    208196        { 
    209197            for( unsigned int i = 0; i < nv; i++ )