~ubuntu-branches/debian/experimental/openscenegraph/experimental

« back to all changes in this revision

Viewing changes to OpenSceneGraph/src/osgSim/OverlayNode.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Alberto Luaces
  • Date: 2011-01-29 11:36:29 UTC
  • mfrom: (1.1.10 upstream)
  • Revision ID: james.westby@ubuntu.com-20110129113629-qisrm2kdqlurc7t3
Tags: 2.9.11-1
* Removed bug-555869-ftbfs_with_binutils_gold.dpatch since upstream has
  already taken care of the issue.
* Removed bug-528229.dpatch since the pkgconfig files are now also split
  in upstream.
* Removed explicit dependency on GLU.
* Upstream no longer includes osgIntrospection (Closes: #592420).
* Disabled zip plugin as its implementation stores an embedded copy of
  zlib.
* Enabled Qt support. Thanks James Goppert.
* Enabled SVG and PDF plugins. Thanks James Goppert.

Show diffs side-by-side

added added

removed removed

Lines of Context:
66
66
            Face& face = createFace();
67
67
            face.name = "left";
68
68
            face.plane.set(1.0,0.0,0.0,1.0);
 
69
            face.vertices.reserve(4);                                                                                      
69
70
            face.vertices.push_back(v000);
70
71
            face.vertices.push_back(v001);
71
72
            face.vertices.push_back(v011);
76
77
            Face& face = createFace();
77
78
            face.name = "right";
78
79
            face.plane.set(-1.0,0.0,0.0,1.0);
 
80
            face.vertices.reserve(4);
79
81
            face.vertices.push_back(v100);
80
82
            face.vertices.push_back(v110);
81
83
            face.vertices.push_back(v111);
86
88
            Face& face = createFace();
87
89
            face.name = "bottom";
88
90
            face.plane.set(0.0,1.0,0.0,1.0);
 
91
            face.vertices.reserve(4);
89
92
            face.vertices.push_back(v000);
90
93
            face.vertices.push_back(v100);
91
94
            face.vertices.push_back(v101);
96
99
            Face& face = createFace();
97
100
            face.name = "top";
98
101
            face.plane.set(0.0,-1.0,0.0,1.0);
 
102
            face.vertices.reserve(4);
99
103
            face.vertices.push_back(v111);
100
104
            face.vertices.push_back(v011);
101
105
            face.vertices.push_back(v010);
107
111
            Face& face = createFace();
108
112
            face.name = "near";
109
113
            face.plane.set(0.0,0.0,1.0,1.0);
 
114
            face.vertices.reserve(4);
110
115
            face.vertices.push_back(v000);
111
116
            face.vertices.push_back(v010);
112
117
            face.vertices.push_back(v110);
118
123
            Face& face = createFace();
119
124
            face.name = "far";
120
125
            face.plane.set(0.0,0.0,-1.0,1.0);
 
126
            face.vertices.reserve(4);
121
127
            face.vertices.push_back(v001);
122
128
            face.vertices.push_back(v101);
123
129
            face.vertices.push_back(v111);
129
135
    void setToBoundingBox(const osg::BoundingBox& bb)
130
136
    {
131
137
#if 0    
132
 
        osg::notify(osg::NOTICE)<<"setToBoundingBox xrange "<<bb.xMin()<<" "<<bb.xMax()<<std::endl;
133
 
        osg::notify(osg::NOTICE)<<"                        "<<bb.yMin()<<" "<<bb.yMax()<<std::endl;
134
 
        osg::notify(osg::NOTICE)<<"                        "<<bb.zMin()<<" "<<bb.zMax()<<std::endl;
 
138
        OSG_NOTICE<<"setToBoundingBox xrange "<<bb.xMin()<<" "<<bb.xMax()<<std::endl;
 
139
        OSG_NOTICE<<"                        "<<bb.yMin()<<" "<<bb.yMax()<<std::endl;
 
140
        OSG_NOTICE<<"                        "<<bb.zMin()<<" "<<bb.zMax()<<std::endl;
135
141
#endif    
136
142
        const osg::Vec3d v000(bb.xMin(),bb.yMin(), bb.zMin());
137
143
        const osg::Vec3d v010(bb.xMin(),bb.yMax(), bb.zMin());
148
154
            Face& face = createFace();
149
155
            face.name = "xMin";
150
156
            face.plane.set(1.0,0.0,0.0,-bb.xMin());
 
157
            face.vertices.reserve(4);
151
158
            face.vertices.push_back(v000);
152
159
            face.vertices.push_back(v001);
153
160
            face.vertices.push_back(v011);
158
165
            Face& face = createFace();
159
166
            face.name = "xMax";
160
167
            face.plane.set(-1.0,0.0,0.0,bb.xMax());
 
168
            face.vertices.reserve(4);
161
169
            face.vertices.push_back(v100);
162
170
            face.vertices.push_back(v110);
163
171
            face.vertices.push_back(v111);
168
176
            Face& face = createFace();
169
177
            face.name = "yMin";
170
178
            face.plane.set(0.0,1.0,0.0,-bb.yMin());
 
179
            face.vertices.reserve(4);
171
180
            face.vertices.push_back(v000);
172
181
            face.vertices.push_back(v100);
173
182
            face.vertices.push_back(v101);
178
187
            Face& face = createFace();
179
188
            face.name = "yMax";
180
189
            face.plane.set(0.0,-1.0,0.0,bb.yMax());
 
190
            face.vertices.reserve(4);
181
191
            face.vertices.push_back(v111);
182
192
            face.vertices.push_back(v011);
183
193
            face.vertices.push_back(v010);
187
197
            Face& face = createFace();
188
198
            face.name = "zMin";
189
199
            face.plane.set(0.0,0.0,1.0,-bb.zMin());
 
200
            face.vertices.reserve(4);
190
201
            face.vertices.push_back(v000);
191
202
            face.vertices.push_back(v010);
192
203
            face.vertices.push_back(v110);
197
208
            Face& face = createFace();
198
209
            face.name = "zMax";
199
210
            face.plane.set(0.0,0.0,-1.0,bb.zMax());
 
211
            face.vertices.reserve(4);
200
212
            face.vertices.push_back(v001);
201
213
            face.vertices.push_back(v101);
202
214
            face.vertices.push_back(v111);
225
237
 
226
238
    void insertVertex(const osg::Vec3d& vertex, osg::EllipsoidModel* em=0, double minHeight=0.0)
227
239
    {
228
 
        // osg::notify(osg::NOTICE)<<"Inserting vertex "<<vertex<<std::endl;
 
240
        // OSG_NOTICE<<"Inserting vertex "<<vertex<<std::endl;
229
241
    
230
242
        Faces removedFaces;
231
243
    
284
296
        {
285
297
            if (eitr->second==1) 
286
298
            {
287
 
                // osg::notify(osg::NOTICE)<<"     edge Ok"<<std::endl;
 
299
                // OSG_NOTICE<<"     edge Ok"<<std::endl;
288
300
                const Edge& edge = eitr->first;
289
301
                Face face;
290
302
                face.name = "baseSide";
340
352
        }
341
353
    
342
354
 
343
 
        // osg::notify(osg::NOTICE)<<"  Removed faces "<<removedFaces.size()<<std::endl;
 
355
        // OSG_NOTICE<<"  Removed faces "<<removedFaces.size()<<std::endl;
344
356
    }
345
357
 
346
358
 
347
359
    void projectDowntoBase(const osg::Vec3d& control, const osg::Vec3d& normal)
348
360
    {
349
 
        // osg::notify(osg::NOTICE)<<"CustomPolytope::projectDowntoBase not implementated yet."<<std::endl;
 
361
        // OSG_NOTICE<<"CustomPolytope::projectDowntoBase not implementated yet."<<std::endl;
350
362
 
351
363
        Faces removedFaces;
352
364
    
405
417
        {
406
418
            if (eitr->second==1) 
407
419
            {
408
 
                // osg::notify(osg::NOTICE)<<"     edge Ok"<<std::endl;
 
420
                // OSG_NOTICE<<"     edge Ok"<<std::endl;
409
421
                const Edge& edge = eitr->first;
410
422
                
411
423
                double h_first = (edge.first-control) * normal;
503
515
            const EdgeFaces& edgeFaces = eitr->second;
504
516
            if (edgeFaces.size()==1)
505
517
            {
506
 
                // osg::notify(osg::NOTICE)<<"Open edge found "<<edgeFaces.front()->name<<std::endl;
 
518
                // OSG_NOTICE<<"Open edge found "<<edgeFaces.front()->name<<std::endl;
507
519
            }
508
520
            else if (edgeFaces.size()==2)
509
521
            {
512
524
                double dotProduct1 = edgeFaces[1]->plane.getNormal() * normal;
513
525
                if (dotProduct0 * dotProduct1 <0.0)
514
526
                {
515
 
                    // osg::notify(osg::NOTICE)<<"  Silhoette edge found "<<edgeFaces[0]->name<<" "<<edgeFaces[1]->name<<std::endl;
 
527
                    // OSG_NOTICE<<"  Silhoette edge found "<<edgeFaces[0]->name<<" "<<edgeFaces[1]->name<<std::endl;
516
528
                    uniqueVertices.insert(edge.first);
517
529
                    uniqueVertices.insert(edge.second);
518
530
                }
519
531
                else
520
532
                {
521
 
                    // osg::notify(osg::NOTICE)<<"  Non silhoette edge found "<<edgeFaces[0]->name<<" "<<edgeFaces[1]->name<<std::endl;
 
533
                    // OSG_NOTICE<<"  Non silhoette edge found "<<edgeFaces[0]->name<<" "<<edgeFaces[1]->name<<std::endl;
522
534
                }
523
535
                
524
536
            }
525
537
            else
526
538
            {
527
 
                // osg::notify(osg::NOTICE)<<"Confused edge found "<<edgeFaces.size()<<std::endl;
 
539
                // OSG_NOTICE<<"Confused edge found "<<edgeFaces.size()<<std::endl;
528
540
            }
529
541
        }
530
542
 
578
590
 
579
591
    void cut(const osg::Polytope& polytope)
580
592
    {
581
 
        // osg::notify(osg::NOTICE)<<"Cutting with polytope "<<std::endl;
 
593
        // OSG_NOTICE<<"Cutting with polytope "<<std::endl;
582
594
        for(osg::Polytope::PlaneList::const_iterator itr = polytope.getPlaneList().begin();
583
595
            itr != polytope.getPlaneList().end();
584
596
            ++itr)
589
601
 
590
602
    void cut(const CustomPolytope& polytope)
591
603
    {
592
 
        // osg::notify(osg::NOTICE)<<"Cutting with polytope "<<std::endl;
 
604
        // OSG_NOTICE<<"Cutting with polytope "<<std::endl;
593
605
        for(Faces::const_iterator itr = polytope._faces.begin();
594
606
            itr != polytope._faces.end();
595
607
            ++itr)
600
612
 
601
613
    void cut(const osg::Plane& plane, const std::string& name=std::string())
602
614
    {
603
 
        // osg::notify(osg::NOTICE)<<"  Cutting plane "<<plane<<std::endl;
 
615
        // OSG_NOTICE<<"  Cutting plane "<<plane<<std::endl;
604
616
        Face newFace;
 
617
        typedef std::vector<double> Distances;
 
618
        Distances distances;
 
619
        Vertices newVertices;
605
620
        
606
621
        for(Faces::iterator itr = _faces.begin();
607
622
            itr != _faces.end();
611
626
            int intersect = plane.intersect(face.vertices);
612
627
            if (intersect==1)
613
628
            {
614
 
                // osg::notify(osg::NOTICE)<<"    Face inside"<<std::endl; 
 
629
                // OSG_NOTICE<<"    Face inside"<<std::endl; 
615
630
                ++itr;
616
631
            }
617
632
            else if (intersect==0)
618
633
            {
619
 
                // osg::notify(osg::NOTICE)<<"    Face intersecting - before "<<face.vertices.size()<<std::endl;
 
634
                // OSG_NOTICE<<"    Face intersecting - before "<<face.vertices.size()<<std::endl;
620
635
                
621
636
                Vertices& vertices = face.vertices;
622
 
                Vertices newVertices;
 
637
                newVertices.clear();
623
638
 
624
 
                typedef std::vector<double> Distances;
625
 
                Distances distances;
 
639
                distances.clear();
626
640
                distances.reserve(face.vertices.size());
627
641
                for(Vertices::iterator vitr = vertices.begin();
628
642
                    vitr != vertices.end();
652
666
                        newVertices.push_back(intersection);
653
667
                        newFace.vertices.push_back(intersection);
654
668
                        
655
 
                        // osg::notify(osg::NOTICE)<<"  intersection distance "<<plane.distance(intersection)<<std::endl;                        
 
669
                        // OSG_NOTICE<<"  intersection distance "<<plane.distance(intersection)<<std::endl;                        
656
670
                    }
657
671
                }
658
672
                
659
673
                vertices.swap(newVertices);
660
674
                
661
 
                // osg::notify(osg::NOTICE)<<"        intersecting - after "<<face.vertices.size()<<std::endl;
 
675
                // OSG_NOTICE<<"        intersecting - after "<<face.vertices.size()<<std::endl;
662
676
 
663
677
                ++itr;
664
678
            }
665
679
            else if (intersect==-1)
666
680
            {
667
 
                // osg::notify(osg::NOTICE)<<"    Face outside"<<_faces.size()<<std::endl; 
 
681
                // OSG_NOTICE<<"    Face outside"<<_faces.size()<<std::endl; 
668
682
                itr = _faces.erase(itr);
669
683
            }
670
684
        }
671
685
        
672
686
        if (!newFace.vertices.empty())
673
687
        {
674
 
            // osg::notify(osg::NOTICE)<<"    inserting newFace intersecting "<<newFace.vertices.size()<<std::endl;
 
688
            // OSG_NOTICE<<"    inserting newFace intersecting "<<newFace.vertices.size()<<std::endl;
675
689
            newFace.name = name;
676
690
            newFace.plane = plane;
677
691
 
710
724
            }
711
725
 
712
726
            
713
 
            Vertices newVertices;
 
727
            newVertices.clear();
 
728
            newVertices.reserve(anglePositions.size());
714
729
            for(AnglePositions::iterator aitr = anglePositions.begin();
715
730
                aitr != anglePositions.end();
716
731
                ++aitr)
720
735
            
721
736
            newVertices.swap(vertices);
722
737
            
723
 
            // osg::notify(osg::NOTICE)<<"     after angle sort  "<<newFace.vertices.size()<<std::endl;
 
738
            // OSG_NOTICE<<"     after angle sort  "<<newFace.vertices.size()<<std::endl;
724
739
 
725
740
            _faces.push_back(newFace);
726
741
        }
946
961
    
947
962
    if (!overlayData->_texture) 
948
963
    { 
949
 
        // osg::notify(osg::NOTICE)<<"   setting up texture"<<std::endl;
 
964
        // OSG_NOTICE<<"   setting up texture"<<std::endl;
950
965
 
951
966
        osg::Texture2D* texture = new osg::Texture2D;
952
967
        texture->setTextureSize(tex_width, tex_height);
966
981
    // set up the render to texture camera.
967
982
    if (!overlayData->_camera || overlayData->_camera->getRenderTargetImplementation() != _renderTargetImpl)
968
983
    {
969
 
        // osg::notify(osg::NOTICE)<<"   setting up camera"<<std::endl;
 
984
        // OSG_NOTICE<<"   setting up camera"<<std::endl;
970
985
 
971
986
        // create the camera
972
987
        overlayData->_camera = new osg::Camera;
1183
1198
 
1184
1199
void OverlayNode::init_OBJECT_DEPENDENT_WITH_ORTHOGRAPHIC_OVERLAY()
1185
1200
{
1186
 
    osg::notify(osg::INFO)<<"OverlayNode::init() - OBJECT_DEPENDENT_WITH_ORTHOGRAPHIC_OVERLAY"<<std::endl;
 
1201
    OSG_INFO<<"OverlayNode::init() - OBJECT_DEPENDENT_WITH_ORTHOGRAPHIC_OVERLAY"<<std::endl;
1187
1202
    
1188
1203
    // force initialization of _overlayDataMap for the key 0 (or NULL)
1189
1204
    getOverlayData(0);
1191
1206
 
1192
1207
void OverlayNode::init_VIEW_DEPENDENT_WITH_ORTHOGRAPHIC_OVERLAY()
1193
1208
{
1194
 
    osg::notify(osg::INFO)<<"OverlayNode::init() - VIEW_DEPENDENT_WITH_ORTHOGRAPHIC_OVERLAY"<<std::endl;
 
1209
    OSG_INFO<<"OverlayNode::init() - VIEW_DEPENDENT_WITH_ORTHOGRAPHIC_OVERLAY"<<std::endl;
1195
1210
}
1196
1211
 
1197
1212
void OverlayNode::init_VIEW_DEPENDENT_WITH_PERSPECTIVE_OVERLAY()
1198
1213
{
1199
 
    osg::notify(osg::INFO)<<"OverlayNode::init() - VIEW_DEPENDENT_WITH_PERSPECTIVE_OVERLAY"<<std::endl;
 
1214
    OSG_INFO<<"OverlayNode::init() - VIEW_DEPENDENT_WITH_PERSPECTIVE_OVERLAY"<<std::endl;
1200
1215
}
1201
1216
 
1202
1217
void OverlayNode::traverse(osg::NodeVisitor& nv)
1360
1375
 
1361
1376
void OverlayNode::traverse_VIEW_DEPENDENT_WITH_ORTHOGRAPHIC_OVERLAY(osg::NodeVisitor& nv)
1362
1377
{
1363
 
    // osg::notify(osg::NOTICE)<<"OverlayNode::traverse() - VIEW_DEPENDENT_WITH_ORTHOGRAPHIC_OVERLAY"<<std::endl;
 
1378
    // OSG_NOTICE<<"OverlayNode::traverse() - VIEW_DEPENDENT_WITH_ORTHOGRAPHIC_OVERLAY"<<std::endl;
1364
1379
 
1365
1380
 
1366
1381
    if (nv.getVisitorType() != osg::NodeVisitor::CULL_VISITOR)
1414
1429
        double znear = cv->getCalculatedNearPlane();
1415
1430
        double zfar = cv->getCalculatedFarPlane();
1416
1431
        
1417
 
        // osg::notify(osg::NOTICE)<<" before znear ="<<znear<<"\t zfar ="<<zfar<<std::endl;
 
1432
        // OSG_NOTICE<<" before znear ="<<znear<<"\t zfar ="<<zfar<<std::endl;
1418
1433
        
1419
1434
        cv->computeNearPlane();
1420
1435
        
1421
1436
        znear = cv->getCalculatedNearPlane();
1422
1437
        zfar = cv->getCalculatedFarPlane();
1423
1438
 
1424
 
        // osg::notify(osg::NOTICE)<<" after znear ="<<znear<<"\t zfar ="<<zfar<<std::endl;
 
1439
        // OSG_NOTICE<<" after znear ="<<znear<<"\t zfar ="<<zfar<<std::endl;
1425
1440
 
1426
 
        // osg::notify(osg::NOTICE)<<" before clamp pm="<<pm<<std::endl;
 
1441
        // OSG_NOTICE<<" before clamp pm="<<pm<<std::endl;
1427
1442
 
1428
1443
        cv->clampProjectionMatrixImplementation(pm, znear,zfar);
1429
1444
        
1430
 
        // osg::notify(osg::NOTICE)<<" after clamp pm="<<pm<<std::endl;
 
1445
        // OSG_NOTICE<<" after clamp pm="<<pm<<std::endl;
1431
1446
        
1432
1447
        osg::Matrix MVP = *(cv->getModelViewMatrix()) * pm;
1433
1448
        osg::Matrix inverseMVP;
1476
1491
 
1477
1492
 
1478
1493
 
1479
 
        // osg::notify(osg::NOTICE)<<"AFTER CUT corners = "<<corners.size()<<std::endl;
 
1494
        // OSG_NOTICE<<"AFTER CUT corners = "<<corners.size()<<std::endl;
1480
1495
 
1481
1496
 
1482
1497
        osg::Vec3d center = _overlaySubgraph->getBound().center();
1526
1541
        }
1527
1542
        
1528
1543
 
1529
 
        // osg::notify(osg::NOTICE)<<"    lookVector ="<<lookVector<<std::endl;
 
1544
        // OSG_NOTICE<<"    lookVector ="<<lookVector<<std::endl;
1530
1545
        
1531
1546
        double min_side = DBL_MAX;
1532
1547
        double max_side = -DBL_MAX;
1575
1590
 
1576
1591
        if (usePerspectiveShaders)
1577
1592
        {
1578
 
//            osg::notify(osg::NOTICE)<<"ratio = "<<ratio<<std::endl;
 
1593
//            OSG_NOTICE<<"ratio = "<<ratio<<std::endl;
1579
1594
//            double original_width = max_side-min_side;
1580
1595
 
1581
1596
            double minRatio = 0.02;
1614
1629
            double frustumDiagonal = osg::RadiansToDegrees(acos(edgeBottomLeft * edgeBottomRight));
1615
1630
            
1616
1631
            
1617
 
            //osg::notify(osg::NOTICE)<<"  width ratio  = "<<new_width/original_width<<std::endl;
1618
 
            //osg::notify(osg::NOTICE)<<"  near ratio  = "<<ratio * new_width/original_width<<std::endl;
 
1632
            //OSG_NOTICE<<"  width ratio  = "<<new_width/original_width<<std::endl;
 
1633
            //OSG_NOTICE<<"  near ratio  = "<<ratio * new_width/original_width<<std::endl;
1619
1634
            double angle = 2.0*osg::RadiansToDegrees(atan(max_side_over_up));
1620
1635
 
1621
1636
 
1641
1656
                
1642
1657
                double new_ratio = (min_up-lowest_up)/(max_up-lowest_up);
1643
1658
                
1644
 
                //osg::notify(osg::NOTICE)<<"  originalRatio  = "<<ratio<<" new_ratio="<<new_ratio<<std::endl;
 
1659
                //OSG_NOTICE<<"  originalRatio  = "<<ratio<<" new_ratio="<<new_ratio<<std::endl;
1645
1660
                
1646
1661
                if (new_ratio > ratio) ratio = new_ratio;
1647
1662
                
1660
1675
            overlayData._y0->set(static_cast<float>(y0));
1661
1676
            
1662
1677
 
1663
 
            // osg::notify(osg::NOTICE)<<"y0 = "<<y0<<std::endl;
 
1678
            // OSG_NOTICE<<"y0 = "<<y0<<std::endl;
1664
1679
        
1665
1680
            overlayData._mainSubgraphStateSet->setAttribute(overlayData._mainSubgraphProgram.get());
1666
1681
            
1682
1697
        double height = max_up-min_up;
1683
1698
        double area = width*height;        
1684
1699
 
1685
 
        osg::notify(osg::NOTICE)<<"width = "<<width<<"\t height = "<<height<<"\t area = "<<area<<std::endl;
 
1700
        OSG_NOTICE<<"width = "<<width<<"\t height = "<<height<<"\t area = "<<area<<std::endl;
1686
1701
 
1687
 
        osg::notify(osg::NOTICE)<<"a  min_side    = "<<min_side<<std::endl;
1688
 
        osg::notify(osg::NOTICE)<<"a  max_side  = "<<max_side<<std::endl;
1689
 
        osg::notify(osg::NOTICE)<<"a  min_up    = "<<min_up<<std::endl;
1690
 
        osg::notify(osg::NOTICE)<<"a  max_up  = "<<max_up<<std::endl;
 
1702
        OSG_NOTICE<<"a  min_side    = "<<min_side<<std::endl;
 
1703
        OSG_NOTICE<<"a  max_side  = "<<max_side<<std::endl;
 
1704
        OSG_NOTICE<<"a  min_up    = "<<min_up<<std::endl;
 
1705
        OSG_NOTICE<<"a  max_up  = "<<max_up<<std::endl;
1691
1706
#endif
1692
1707
            
1693
1708
        if (em)
1715
1730
        overlayData._textureFrustum.setToUnitFrustum(false,false);
1716
1731
        overlayData._textureFrustum.transformProvidingInverse(MVP);
1717
1732
 
1718
 
        // osg::notify(osg::NOTICE)<<std::endl;
 
1733
        // OSG_NOTICE<<std::endl;
1719
1734
 
1720
1735
        unsigned int contextID = cv->getState()!=0 ? cv->getState()->getContextID() : 0;
1721
1736
 
1778
1793
        Group::traverse(nv);    
1779
1794
    }
1780
1795
    
1781
 
    // osg::notify(osg::NOTICE)<<"   "<<&overlayData<<std::endl;
 
1796
    // OSG_NOTICE<<"   "<<&overlayData<<std::endl;
1782
1797
}
1783
1798
 
1784
1799
void OverlayNode::traverse_VIEW_DEPENDENT_WITH_PERSPECTIVE_OVERLAY(osg::NodeVisitor& nv)
1850
1865
 
1851
1866
void OverlayNode::updateMainSubgraphStateSet()
1852
1867
{
1853
 
   osg::notify(osg::INFO)<<"OverlayNode::updateMainSubgraphStateSet()"<<std::endl;
 
1868
   OSG_INFO<<"OverlayNode::updateMainSubgraphStateSet()"<<std::endl;
1854
1869
 
1855
1870
   for(OverlayDataMap::iterator itr = _overlayDataMap.begin();
1856
1871
        itr != _overlayDataMap.end();