//---------------------------------------------------------------------------- // EgalTech 2013-2014 //---------------------------------------------------------------------------- // File : StringUtils3d.cpp Data : 10.03.14 Versione : 1.5c3 // Contenuto : Implementazione delle funzioni di utilità 3d per le stringhe. // // // // Modifiche : 31.01.14 DS Creazione modulo (preso da EgtGeneral). // 10.03.14 DS Aggiunta lettura Frame3d. // //---------------------------------------------------------------------------- //--------------------------- Include ---------------------------------------- #include "stdafx.h" #include "/EgtDEv/Include/EGkStringUtils3d.h" using namespace std ; //---------------------------------------------------------------------------- bool FromString( const string& sVal, Point3d& ptVal, double& dW) { double vdVal[4] ; if ( ! FromString( sVal, vdVal)) return false ; ptVal.x = vdVal[0] ; ptVal.y = vdVal[1] ; ptVal.z = vdVal[2] ; dW = vdVal[3] ; return true ; } //---------------------------------------------------------------------------- bool FromString( const string& sVal, BBox3d& b3Box) { // devono essere 6 parametri : MinX, MinY, MinZ, MaxX, MaxY, MaxZ double vdVal[6] ; if ( ! FromString( sVal, vdVal)) return false ; // imposto il box b3Box.Set( vdVal[0], vdVal[1], vdVal[2], vdVal[3], vdVal[4], vdVal[5]) ; return true ; } //---------------------------------------------------------------------------- bool FromString( const string& sVal, Frame3d& frFrame) { // devono essere 12 parametri : Ox, Oy, Oz, Xx, Xy, Xz, Yx, Yy, Yz, Zx, Zy, Zz double vdVal[12] ; if ( ! FromString( sVal, vdVal)) return false ; Point3d ptOrig ; ptOrig.x = vdVal[0] ; ptOrig.y = vdVal[1] ; ptOrig.z = vdVal[2] ; Vector3d vtDirX ; vtDirX.x = vdVal[3] ; vtDirX.y = vdVal[4] ; vtDirX.z = vdVal[5] ; Vector3d vtDirY ; vtDirY.x = vdVal[6] ; vtDirY.y = vdVal[7] ; vtDirY.z = vdVal[8] ; Vector3d vtDirZ ; vtDirZ.x = vdVal[9] ; vtDirZ.y = vdVal[10] ; vtDirZ.z = vdVal[11] ; // imposto il riferimento return frFrame.Set( ptOrig, vtDirX, vtDirY, vtDirZ) ; } //---------------------------------------------------------------------------- bool FromString( const string& sVal, Color& cCol) { // dovrebbero essere 4 parametri : Red, Green, Blue, Alpha int vnRGBA[4] ; if ( FromString( sVal, vnRGBA)) { cCol.Set( vnRGBA[0], vnRGBA[1], vnRGBA[2], vnRGBA[3]) ; return true ; } // riprovo con 3 parametri : Red, Green, Blue int vnRGB[3] ; if ( FromString( sVal, vnRGB)) { cCol.Set( vnRGB[0], vnRGB[1], vnRGB[2]) ; return true ; } // altrimenti errore return false ; }