00001 ////////////////////////////////////////////////////////////////////// 00002 // Copyright (c) 2002 David Pritchard <drpritch@alumni.uwaterloo.ca> 00003 // 00004 // This program is free software; you can redistribute it and/or 00005 // modify it under the terms of the GNU Lesser General Public License 00006 // as published by the Free Software Foundation; either 00007 // version 2 of the License, or (at your option) any later 00008 // version. 00009 // 00010 // This program is distributed in the hope that it will be useful, 00011 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 // GNU Lesser General Public License for more details. 00014 // 00015 // You should have received a copy of the GNU Lesser General Public License 00016 // along with this program; if not, write to the Free Software 00017 // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 00018 00019 #ifndef freecloth_base_baTime_inline_h 00020 #define freecloth_base_baTime_inline_h 00021 00022 #include <freecloth/base/baMath.h> 00023 00024 FREECLOTH_NAMESPACE_START 00025 00026 //////////////////////////////////////////////////////////////////////////////// 00027 // CLASS BaTime 00028 // 00029 00030 //------------------------------------------------------------------------------ 00031 00032 inline Float BaTime::instantAsSeconds( Instant instant ) 00033 { 00034 return instant / Float( S ); 00035 } 00036 00037 //------------------------------------------------------------------------------ 00038 00039 inline Float BaTime::durationAsSeconds( Duration duration ) 00040 { 00041 return duration / Float( S ); 00042 } 00043 00044 //------------------------------------------------------------------------------ 00045 00046 inline BaTime::Instant BaTime::floatAsInstant( Float t ) 00047 { 00048 return BaMath::roundUInt32( t * Float( S ) ); 00049 } 00050 00051 //------------------------------------------------------------------------------ 00052 00053 inline BaTime::Duration BaTime::floatAsDuration( Float t ) 00054 { 00055 return BaMath::roundInt32( t * Float( S ) ); 00056 } 00057 00058 FREECLOTH_NAMESPACE_END 00059 00060 #endif