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; }
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; }
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; }