29#ifndef SN_PX_STREAM_OPERATORS_H
30#define SN_PX_STREAM_OPERATORS_H
32#include "foundation/PxVec3.h"
33#include "foundation/PxTransform.h"
34#include "foundation/PxBounds3.h"
35#include "foundation/PxString.h"
36#include "PxFiltering.h"
41 static inline PxU32 strLenght(
const char* inStr )
43 return inStr ? PxU32(strlen(inStr)) : 0;
49 inline PxOutputStream& operator << ( PxOutputStream& ioStream,
const char* inString )
51 if ( inString && *inString )
53 ioStream.write( inString, PxU32(strlen(inString)) );
58 template<
typename TDataType>
59 inline PxOutputStream& toStream( PxOutputStream& ioStream,
const char* inFormat,
const TDataType inData )
61 char buffer[128] = { 0 };
62 Pxsnprintf( buffer, 128, inFormat, inData );
70 inline PxOutputStream& operator << (
PxOutputStream& ioStream,
bool inData ) { ioStream << (inData ?
"true" :
"false");
return ioStream; }
71 inline PxOutputStream& operator << ( PxOutputStream& ioStream, PxI32 inData ) {
return toStream( ioStream,
"%d", inData ); }
72 inline PxOutputStream& operator << ( PxOutputStream& ioStream, PxU16 inData ) {
return toStream( ioStream,
"%u", PxU32(inData) ); }
73 inline PxOutputStream& operator << ( PxOutputStream& ioStream, PxU8 inData ) {
return toStream( ioStream,
"%u", PxU32(inData) ); }
74 inline PxOutputStream& operator << ( PxOutputStream& ioStream,
char inData ) {
return toStream( ioStream,
"%c", inData ); }
75 inline PxOutputStream& operator << ( PxOutputStream& ioStream, PxU32 inData ) {
return toStream( ioStream,
"%u", inData ); }
76 inline PxOutputStream& operator << ( PxOutputStream& ioStream, PxU64 inData ) {
return toStream( ioStream,
"%" PX_PRIu64, inData ); }
77 inline PxOutputStream& operator << ( PxOutputStream& ioStream,
const void* inData ) {
return ioStream << static_cast<uint64_t>(
size_t(inData)); }
78 inline PxOutputStream& operator << ( PxOutputStream& ioStream, PxF32 inData ) {
return toStream( ioStream,
"%g", PxF64(inData) ); }
79 inline PxOutputStream& operator << ( PxOutputStream& ioStream, PxF64 inData ) {
return toStream( ioStream,
"%g", inData ); }
80 inline PxOutputStream& operator << ( PxOutputStream& ioStream, endl_obj) {
return ioStream <<
"\n"; }
81 inline PxOutputStream& operator << ( PxOutputStream& ioStream,
const PxVec3& inData )
83 ioStream << inData[0];
85 ioStream << inData[1];
87 ioStream << inData[2];
91 inline PxOutputStream& operator << ( PxOutputStream& ioStream,
const PxQuat& inData )
103 inline PxOutputStream& operator << ( PxOutputStream& ioStream,
const PxTransform& inData )
105 ioStream << inData.q;
107 ioStream << inData.p;
111 inline PxOutputStream& operator << ( PxOutputStream& ioStream,
const PxBounds3& inData )
113 ioStream << inData.minimum;
115 ioStream << inData.maximum;
119 inline PxOutputStream& operator << ( PxOutputStream& ioStream,
const PxFilterData& inData )
121 ioStream << inData.word0 <<
" " << inData.word1 <<
" " << inData.word2 <<
" " << inData.word3;
125 inline PxOutputStream& operator << ( PxOutputStream& ioStream,
struct PxMetaDataPlane& inData )
127 ioStream << inData.normal;
129 ioStream << inData.distance;
Output stream class for I/O.
Definition PxIO.h:114
Sorts an array of objects in ascending order, assuming that the predicate implements the < operator:
Definition PxBoxController.h:39
Definition SnPxStreamOperators.h:67