void CoordinatesManipulator::translate( float x, float y, float z ) { calcM.setIdentity(); calcM(0,3) = x; calcM(1,3) = y; calcM(2,3) = z; modelViewMatrix = modelViewMatrix*calcM; }
void CalcKinCharacteristics::run() { showParams(); core::Code code; core::InternalGearRatios k; core::GearSetTypes types; core::FakeItem fake; std::vector<core::IIOItem*> containers; containers.push_back( &code ); containers.push_back( &k ); containers.push_back( &types ); containers.push_back( &fake ); while ( core::Singletons::getInstance()->getLoaderFromFile()->load( containers, core::IOFileManager::eOutputFileType::KIN_SLOW ) ) { Characteristics ch; ch._tooth = calcZ(k, types); ch._torque = calcM( code, k ); ch._angVelocity = calcW( code, k, ch._tooth ); ch._power = calcN( ch._angVelocity, ch._torque ); ch._kpdZacStepen = calcKpdZacStepen( k, ch._angVelocity, ch._power ); ch._kpdTorque = calcMh( code, k, ch._kpdZacStepen ); ch._qualityCriterias = calcQualityCriterias( ch._kpdTorque, ch._angVelocity ); printCharacteristics( code, ch ); NS_CORE Singletons::getInstance()->getIOFileManager()->writeToFile( NS_CORE IOFileManager::eOutputFileType::RESULT, code ); NS_CORE GearBoxWithChanger gb( code ); gb.createChainsForAllgears(); NS_CORE Singletons::getInstance()->getIOFileManager()->writeToFile( NS_CORE IOFileManager::eOutputFileType::RESULT, gb ); NS_CORE Singletons::getInstance()->getIOFileManager()->writeToFile( NS_CORE IOFileManager::eOutputFileType::RESULT, types ); NS_CORE Singletons::getInstance()->getIOFileManager()->writeToFile( NS_CORE IOFileManager::eOutputFileType::RESULT, fake ); NS_CORE Singletons::getInstance()->getIOFileManager()->writeToFile( NS_CORE IOFileManager::eOutputFileType::RESULT, k ); NS_CORE Singletons::getInstance()->getIOFileManager()->writeToFile( NS_CORE IOFileManager::eOutputFileType::RESULT, ch ); NS_CORE Singletons::getInstance()->getIOFileManager()->writeToFile(NS_CORE IOFileManager::eOutputFileType::RESULT, NS_CORE IOFileManager::end); m_characteristics.push_back( ch ); } }
void CoordinatesManipulator::rotate( float angle, int x, int y, int z ) { calcM.setIdentity(); // cooler effekt, wenn nicht in radiant umgerechnet wird angle = angle*M_PI/180; if( x == 1 && y == 0 && z == 0 ){ calcM(1,1) = cos(angle); calcM(1,2) = -sin(angle); calcM(2,1) = sin(angle); calcM(2,2) = cos(angle); } else if( x == 0 && y == 1 && z == 0 ){ calcM(0,0) = cos(angle); calcM(0,2) = sin(angle); calcM(2,0) = -sin(angle); calcM(2,2) = cos(angle); } else if( x == 0 && y == 0 && z == 1 ){ calcM(0,0) = cos(angle); calcM(0,1) = -sin(angle); calcM(1,0) = sin(angle); calcM(1,1) = cos(angle); } modelViewMatrix = modelViewMatrix*calcM; }