Show
Ignore:
Timestamp:
02/12/04 02:15:37 (11 years ago)
Author:
robert
Message:

Improved osgSim::SphereSegmenet?'s handling of transparancy.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • OpenSceneGraph/trunk/examples/osgspheresegment/osgspheresegment.cpp

    r2215 r2740  
    3131// { 
    3232//     if(osgSim::SphereSegment* ss=dynamic_cast<osgSim::SphereSegment*>(n)) 
    33 //      { 
    34 //              osg::Vec3 vec; 
    35 //          float azRange, elevRange; 
    36 //          ss->getArea(vec,azRange,elevRange); 
     33//     { 
     34//         osg::Vec3 vec; 
     35//         float azRange, elevRange; 
     36//         ss->getArea(vec,azRange,elevRange); 
    3737// 
    38 //              float azRangeDeg = osg::RadiansToDegrees(azRange); 
     38//         float azRangeDeg = osg::RadiansToDegrees(azRange); 
    3939// 
    40 //              static bool azAscending = false; 
     40//         static bool azAscending = false; 
    4141// 
    4242//         if(azAscending){ 
    43 //                  azRangeDeg += 1.0f; 
    44 //                      if(azRangeDeg>89.0f) azAscending = false; 
    45 //              }else{ 
    46 //                  azRangeDeg -= 1.0f; 
    47 //                      if(azRangeDeg<2.0f) azAscending = true; 
    48 //              } 
     43//             azRangeDeg += 1.0f; 
     44//             if(azRangeDeg>89.0f) azAscending = false; 
     45//         }else{ 
     46//             azRangeDeg -= 1.0f; 
     47//             if(azRangeDeg<2.0f) azAscending = true; 
     48//         } 
    4949// 
    50 //              ss->setArea(vec,osg::DegreesToRadians(azRangeDeg),elevRange); 
     50//         ss->setArea(vec,osg::DegreesToRadians(azRangeDeg),elevRange); 
    5151// 
    52 //      } 
     52//     } 
    5353//     traverse(n,nv); 
    5454// } 
     
    5757{ 
    5858    if(osgSim::SphereSegment* ss=dynamic_cast<osgSim::SphereSegment*>(n)) 
    59         { 
    60                 osg::Vec3 vec; 
    61             float azRange, elevRange; 
    62             ss->getArea(vec,azRange,elevRange); 
     59    { 
     60        osg::Vec3 vec; 
     61        float azRange, elevRange; 
     62        ss->getArea(vec,azRange,elevRange); 
    6363 
    6464        static float angle = 0.0f; 
    65                 if(++angle > 359.0f) angle = 0.0f; 
    66                 vec.set(sin(osg::DegreesToRadians(angle)),cos(osg::DegreesToRadians(angle)),0.0f); 
     65        if(++angle > 359.0f) angle = 0.0f; 
     66        vec.set(sin(osg::DegreesToRadians(angle)),cos(osg::DegreesToRadians(angle)),0.0f); 
    6767 
    6868        std::cout<<"angle "<<angle<<" degrees, vec is "<<vec 
    69                                 <<", azRange is "<<osg::RadiansToDegrees(azRange) 
    70                                                 <<", elevRange is "<<osg::RadiansToDegrees(elevRange) 
    71                                                 <<std::endl; 
     69                        <<", azRange is "<<osg::RadiansToDegrees(azRange) 
     70                        <<", elevRange is "<<osg::RadiansToDegrees(elevRange) 
     71                        <<std::endl; 
    7272 
    73                 ss->setArea(vec,azRange,elevRange); 
    74         } 
     73        ss->setArea(vec,azRange,elevRange); 
     74    } 
    7575    traverse(n,nv); 
    7676} 
     
    7878osg::Node* createSphereSegment() 
    7979{ 
    80         SphereSegment* ss = new SphereSegment(osg::Vec3(0.0f,0.0f,0.0f), 1.0f, 
    81                                         osg::Vec3(0.0f,1.0f,0.0f), 
    82                                         osg::DegreesToRadians(90.0f), 
    83                                         osg::DegreesToRadians(45.0f), 
    84                                         60); 
    85         ss->setAllColors(osg::Vec4(1.0f,1.0f,1.0f,1.0f)); 
    86         ss->setSideColor(osg::Vec4(0.0f,0.0f,1.0f,0.1f)); 
    87         //ss->setDrawMask(SphereSegment::DrawMask(SphereSegment::SPOKES | SphereSegment::EDGELINE)); 
     80    SphereSegment* ss = new SphereSegment(osg::Vec3(0.0f,0.0f,0.0f), 1.0f, 
     81                    osg::Vec3(0.0f,1.0f,0.0f), 
     82                    osg::DegreesToRadians(90.0f), 
     83                    osg::DegreesToRadians(45.0f), 
     84                    60); 
     85    ss->setAllColors(osg::Vec4(1.0f,1.0f,1.0f,0.5f)); 
     86    ss->setSideColor(osg::Vec4(0.0f,0.0f,1.0f,0.5f)); 
     87    //ss->setDrawMask(SphereSegment::DrawMask(SphereSegment::SPOKES | SphereSegment::EDGELINE)); 
    8888 
    8989    //ss->setUpdateCallback(new MyNodeCallback);