Example #1
0
PMViewStructure* PMSuperquadricEllipsoid::defaultViewStructure( ) const
{
   if( !s_pDefaultViewStructure || s_pDefaultViewStructure->parameterKey( ) != viewStructureParameterKey( ) )
   {
      delete s_pDefaultViewStructure;
      s_pDefaultViewStructure = 0;
      int uStep = (int)( ( (float)s_uStep / 2 ) * ( globalDetailLevel( ) + 1 ) );
      int vStep = (int)( ( (float)s_vStep / 2 ) * ( globalDetailLevel( ) + 1 ) );

      // transform u and v steps to sphere u/v steps
      int uStep2 = uStep * 4;
      int vStep2 = vStep * 8;

      s_pDefaultViewStructure =
         new PMViewStructure( vStep2 * ( uStep2 - 1 ) + 2,
                              vStep2 * ( uStep2 - 1 ) * 2 + vStep2 );

      // points
      createPoints( s_pDefaultViewStructure->points( ),
                    c_defaultEastWestExponent, c_defaultNorthSouthExponent, uStep, vStep );

      createLines( s_pDefaultViewStructure->lines( ), uStep2, vStep2 );
   }
   return s_pDefaultViewStructure;
}
Example #2
0
PMViewStructure* PMCone::defaultViewStructure( ) const
{
   if( !s_pDefaultViewStructure || s_pDefaultViewStructure->parameterKey( ) != viewStructureParameterKey( ) )
   {
      delete s_pDefaultViewStructure;
      s_pDefaultViewStructure = 0;
      int steps = (int)( ( (float)s_numSteps / 2 ) * ( globalDetailLevel( ) + 1 ) );
      s_pDefaultViewStructure = new PMViewStructure( steps  * 2,  steps * 3 );

      createPoints( s_pDefaultViewStructure->points( ), defaultEnd1,
            defaultEnd2,defaultConeRadius1,defaultConeRadius2, steps );

      createLines( s_pDefaultViewStructure->lines( ), steps );
   }
   return s_pDefaultViewStructure;
}
Example #3
0
PMViewStructure* PMTorus::defaultViewStructure( ) const
{
   if( !s_pDefaultViewStructure || s_pDefaultViewStructure->parameterKey( ) != viewStructureParameterKey( ) )
   {
      delete s_pDefaultViewStructure;
      s_pDefaultViewStructure = 0;
      int uStep = (int)( ( (float)s_uStep / 2 ) * ( globalDetailLevel( ) + 1 ) );
      int vStep = (int)( ( (float)s_vStep / 2 ) * ( globalDetailLevel( ) + 1 ) );

      s_pDefaultViewStructure =
         new PMViewStructure(  vStep * uStep ,
                               vStep * uStep * 2 );

      createPoints( s_pDefaultViewStructure->points( ), c_defaultminorRadius,
                    c_defaultmajorRadius, uStep, vStep );

      createLines( s_pDefaultViewStructure->lines( ), uStep, vStep );
   }
   return s_pDefaultViewStructure;
}