Files
EgtGeomKernel/StringUtils3d.cpp
Dario Sassi b2beed0fe0 EgtGeomKernel :
- ora From string per Color accette sia RGBA che RGB.
2026-02-24 08:39:23 +01:00

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 ;
}