diff --git a/Export3dm.cpp b/Export3dm.cpp index c595d2d..dee65ba 100644 --- a/Export3dm.cpp +++ b/Export3dm.cpp @@ -26,6 +26,7 @@ #include "/EgtDev/Include/EGkExtText.h" #include "/EgtDev/Include/EGkExtDimension.h" #include "/EgtDev/Include/EGnStringUtils.h" +#include "/EgtDev/Include/EgtNumUtils.h" #include "/EgtDev/Include/EgtKeyCodes.h" #include @@ -295,7 +296,7 @@ Export3dm::AddObjectToModel( const IGdbIterator& iIter, ON_Object* onObject, con pOnAttr->SetColorSource( ON::color_from_object) ; //N.B. RHINO ha i valori di Alpha invertiti rispetto ai nostri, oltre che su una scala diversa! per loro 0 = opaco e 255 = trasparente // per noi invece 0 = trasparente, 100 = opaco - ON_Color onCol( cCol.GetIntRed(), cCol.GetIntGreen(), cCol.GetIntBlue(), abs( int( cCol.GetIntAlpha() * 2.55) - 255)) ; + ON_Color onCol( cCol.GetIntRed(), cCol.GetIntGreen(), cCol.GetIntBlue(), Clamp( 255 - lround( cCol.GetIntAlpha() * 2.55), 0, 255)) ; pOnAttr->m_color = onCol ; // se รจ una mesh aggiungo il materiale if ( const ON_Mesh* onMesh = ON_Mesh::Cast( onObject)) { diff --git a/Import3dm.cpp b/Import3dm.cpp index 5f84be2..6a9ed34 100644 --- a/Import3dm.cpp +++ b/Import3dm.cpp @@ -221,7 +221,7 @@ Import3dm::Import( const string& sFile, IGeomDB* pGDB, int nIdGroup, Color cCol ; // N.B. RHINO ha i valori di Alpha invertiti rispetto ai nostri, oltre che su una scala diversa! per loro 0 = opaco e 255 = trasparente // per noi invece 0 = trasparente, 100 = opaco - cCol.Set( onCol.Red(), onCol.Green(), onCol.Blue(), int( abs( onCol.Alpha() - 255) / 2.55)) ; + cCol.Set( onCol.Red(), onCol.Green(), onCol.Blue(), lround( ( 255 - onCol.Alpha()) / 2.55)) ; // converto l'oggetto e lo aggiungo al GeomDB ON::object_type type = oGeometry->ObjectType() ; vector> vpGeoObj ;