b2beed0fe0
- ora From string per Color accette sia RGBA che RGB.
94 lines
2.8 KiB
C++
94 lines
2.8 KiB
C++
//----------------------------------------------------------------------------
|
|
// 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 ;
|
|
}
|