void PMSuperquadricEllipsoid::createViewStructure( ) { if( !m_pViewStructure ) { m_pViewStructure = new PMViewStructure( defaultViewStructure( ) ); m_pViewStructure->points( ).detach( ); } int uStep = (int)( ( (float)s_uStep / 2 ) * ( displayDetail( ) + 1 ) ); int vStep = (int)( ( (float)s_vStep / 2 ) * ( displayDetail( ) + 1 ) ); int uStep2 = uStep * 4; int vStep2 = vStep * 8; unsigned ptsSize = vStep2 * ( uStep2 - 1 ) + 2; unsigned lineSize = vStep2 * ( uStep2 - 1 ) * 2 + vStep2; if( ptsSize != m_pViewStructure->points( ).size( ) ) m_pViewStructure->points( ).resize( ptsSize ); createPoints( m_pViewStructure->points( ), m_eastWestExponent, m_northSouthExponent, uStep, vStep ); if( lineSize != m_pViewStructure->lines( ).size( ) ) { m_pViewStructure->lines( ).detach( ); m_pViewStructure->lines( ).resize( lineSize ); createLines( m_pViewStructure->lines( ), uStep2, vStep2 ); } }
void PMTorus::createViewStructure( ) { if( !m_pViewStructure ) { m_pViewStructure = new PMViewStructure( defaultViewStructure( ) ); m_pViewStructure->points( ).detach( ); } int uStep = (int)( ( (float)s_uStep / 2 ) * ( displayDetail( ) + 1 ) ); int vStep = (int)( ( (float)s_vStep / 2 ) * ( displayDetail( ) + 1 ) ); unsigned ptsSize = vStep * uStep; unsigned lineSize = vStep * uStep * 2; if( ptsSize != m_pViewStructure->points( ).size( ) ) m_pViewStructure->points( ).resize( ptsSize ); createPoints( m_pViewStructure->points( ), m_minorRadius, m_majorRadius, uStep, vStep ); if( lineSize != m_pViewStructure->lines( ).size( ) ) { m_pViewStructure->lines( ).detach( ); m_pViewStructure->lines( ).resize( lineSize ); createLines( m_pViewStructure->lines( ), uStep, vStep ); } }
void PMCone::createViewStructure( ) { if( !m_pViewStructure ) { m_pViewStructure = new PMViewStructure(defaultViewStructure ( ) ); m_pViewStructure->points( ).detach( ); } int steps = (int)( ( (float)s_numSteps / 2 ) * ( displayDetail( ) + 1 ) ); unsigned ptsSize = steps * 2; unsigned lineSize = steps * 3; if( ptsSize != m_pViewStructure->points( ).size( ) ) m_pViewStructure->points( ).resize( ptsSize ); createPoints( m_pViewStructure->points( ), m_end1, m_end2, m_radius1, m_radius2, steps ); if( lineSize != m_pViewStructure->lines( ).size( ) ) { m_pViewStructure->lines( ).detach( ); m_pViewStructure->lines( ).resize( lineSize ); createLines( m_pViewStructure->lines( ), steps ); } }