OMKTransform.h File Reference

#include "Wm4Matrix3.h"
#include "Wm4Matrix4.h"
#include "Wm4Plane3.h"
#include "Wm4Quaternion.h"
#include "OMKTracer.h"
#include <iostream>

Include dependency graph for OMKTransform.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  OMK
namespace  OMK::Type

Classes

class  OMK::Type::Transform
 Type Transform. More...

Functions

Friend stream operators.
OMK_API std::ostream & operator<< (std::ostream &out, const OMK::Type::Transform &q)
 stream operator for ostream.
OMK_API std::istream & operator>> (std::istream &in, OMK::Type::Transform &q)
 stream operator for istream.
OMK_API OMK::OutgoingSynchronisationMessageoperator<< (OMK::OutgoingSynchronisationMessage &out, const OMK::Type::Transform &q)
 stream operator for OutgoingSynchronisationMessage.
OMK_API OMK::IncomingSynchronisationMessageoperator>> (OMK::IncomingSynchronisationMessage &in, OMK::Type::Transform &q)
 stream operator for IncomingSynchronisationMessage.


Function Documentation

OMK_API OMK::OutgoingSynchronisationMessage& operator<< ( OutgoingSynchronisationMessage out,
const Transform q 
)

stream operator for OutgoingSynchronisationMessage.

Use by SimpleTypeT::pack.

Definition at line 682 of file OMKTransform.cpp.

References OMK::Type::Transform::getRotate(), OMK::Type::Transform::getScale(), OMK::Type::Transform::getTranslate(), OMK::Type::Transform::isIdentity(), and OMK::Type::Transform::isUniformScale().

00683 {
00684   out << q.isIdentity() ;
00685   if( !q.isIdentity() )
00686   {
00687     out << q.isUniformScale()    
00688         << q.getTranslate().X()  
00689         << q.getTranslate().Y()  
00690         << q.getTranslate().Z()  
00691         << q.getRotate()( 0, 0 ) 
00692         << q.getRotate()( 0, 1 ) 
00693         << q.getRotate()( 0, 2 ) 
00694         << q.getRotate()( 1, 0 ) 
00695         << q.getRotate()( 1, 1 ) 
00696         << q.getRotate()( 1, 2 ) 
00697         << q.getRotate()( 2, 0 ) 
00698         << q.getRotate()( 2, 1 ) 
00699         << q.getRotate()( 2, 2 ) 
00700         << q.getScale().X()      
00701         << q.getScale().Y()      
00702         << q.getScale().Z()      ;
00703   }
00704   return out;
00705 }

OMK_API std::ostream& operator<< ( std::ostream &  out,
const Transform q 
)

stream operator for ostream.

Use by SimpleTypeT::insertInStream.

Definition at line 613 of file OMKTransform.cpp.

References OMK::Type::Transform::getRotate(), OMK::Type::Transform::getScale(), OMK::Type::Transform::getTranslate(), OMK::Type::Transform::isIdentity(), and OMK::Type::Transform::isUniformScale().

00614 {
00615   out << q.isIdentity() << " " ;
00616   if( !q.isIdentity() )
00617   {
00618     out << q.isUniformScale()    << " "
00619         << q.getTranslate().X()  << " "
00620         << q.getTranslate().Y()  << " "
00621         << q.getTranslate().Z()  << " "
00622         << q.getRotate()( 0, 0 ) << " "
00623         << q.getRotate()( 0, 1 ) << " "
00624         << q.getRotate()( 0, 2 ) << " "
00625         << q.getRotate()( 1, 0 ) << " "
00626         << q.getRotate()( 1, 1 ) << " "
00627         << q.getRotate()( 1, 2 ) << " "
00628         << q.getRotate()( 2, 0 ) << " "
00629         << q.getRotate()( 2, 1 ) << " "
00630         << q.getRotate()( 2, 2 ) << " "
00631         << q.getScale().X()      << " "
00632         << q.getScale().Y()      << " "
00633         << q.getScale().Z()      << " "  ;
00634   }
00635   out << " " ;
00636   return out;
00637 }

OMK_API OMK::IncomingSynchronisationMessage& operator>> ( IncomingSynchronisationMessage in,
Transform q 
)

stream operator for IncomingSynchronisationMessage.

Use by SimpleTypeT::unpack.

Definition at line 710 of file OMKTransform.cpp.

References OMK::Type::Transform::resetToIdentity(), OMK::Type::Transform::setRotate(), OMK::Type::Transform::setScale(), OMK::Type::Transform::setTranslate(), and OMK::Type::Transform::setUniformScale().

00711 {
00712   bool isIdentity = false ;
00713   in >> isIdentity ;
00714   if( isIdentity )
00715   {
00716     q.resetToIdentity() ;
00717   }
00718   else
00719   {
00720     bool isUniformScale ;
00721     Wm4::Vector3f translate ;
00722     Wm4::Matrix3f matrix ;
00723     Wm4::Vector3f scale ;
00724     in >> isUniformScale 
00725        >> translate.X()
00726        >> translate.Y()
00727        >> translate.Z() 
00728        >> matrix( 0, 0 ) 
00729        >> matrix( 0, 1 ) 
00730        >> matrix( 0, 2 ) 
00731        >> matrix( 1, 0 ) 
00732        >> matrix( 1, 1 ) 
00733        >> matrix( 1, 2 ) 
00734        >> matrix( 2, 0 ) 
00735        >> matrix( 2, 1 ) 
00736        >> matrix( 2, 2 ) 
00737        >> scale.X()  
00738        >> scale.Y()  
00739        >> scale.Z() ;
00740     q.setTranslate( translate ) ;
00741     q.setRotate( matrix ) ;
00742     if( isUniformScale ) q.setUniformScale( scale.X() ) ; else q.setScale( scale ) ;
00743   }
00744   return in;
00745 }

OMK_API std::istream& operator>> ( std::istream &  in,
Transform q 
)

stream operator for istream.

Use by SimpleTypeT::extract.

Definition at line 642 of file OMKTransform.cpp.

References OMK::Type::Transform::resetToIdentity(), OMK::Type::Transform::setRotate(), OMK::Type::Transform::setScale(), OMK::Type::Transform::setTranslate(), and OMK::Type::Transform::setUniformScale().

00643 {
00644   bool isIdentity = false ;
00645   in >> isIdentity ;
00646   if( isIdentity )
00647   {
00648     q.resetToIdentity() ;
00649   }
00650   else
00651   {
00652     bool isUniformScale ;
00653     Wm4::Vector3f translate ;
00654     Wm4::Matrix3f matrix ;
00655     Wm4::Vector3f scale ;
00656     in >> isUniformScale 
00657        >> translate.X()
00658        >> translate.Y()
00659        >> translate.Z() 
00660        >> matrix( 0, 0 ) 
00661        >> matrix( 0, 1 ) 
00662        >> matrix( 0, 2 ) 
00663        >> matrix( 1, 0 ) 
00664        >> matrix( 1, 1 ) 
00665        >> matrix( 1, 2 ) 
00666        >> matrix( 2, 0 ) 
00667        >> matrix( 2, 1 ) 
00668        >> matrix( 2, 2 ) 
00669        >> scale.X()  
00670        >> scale.Y()  
00671        >> scale.Z() ;
00672     q.setTranslate( translate ) ;
00673     q.setRotate( matrix ) ;
00674     if( isUniformScale ) q.setUniformScale( scale.X() ) ; else q.setScale( scale ) ;
00675   }
00676   return in;
00677 }


logo OpenMask

Documentation generated on Mon Jun 9 11:45:59 2008

Generated with doxygen by Dimitri van Heesch ,   1997-2007