myGroupNames.insert(string(theGroup->GetStoreName()));
Quantity_Color aColor = theGroup->GetColor();
- myGroupAttributVal = aColor.Hue();
+ double aRed = aColor.Red();
+ double aGreen = aColor.Green();
+ double aBlue = aColor.Blue();
+ int aR = aRed*255;
+ int aG = aGreen*255;
+ int aB = aBlue*255;
+ cout << "aRed = " << aR << endl;
+ cout << "aGreen = " << aG << endl;
+ cout << "aBlue = " << aB << endl;
+ myGroupAttributVal = (int)(aR*1000000 + aG*1000 + aB);
+ cout << "myGroupAttributVal = " << myGroupAttributVal << endl;
}
//=============================================================================
TInt aNbGrp = aFamilyInfo->GetNbGroup();
if(MYDEBUG) MESSAGE("belong to " << aNbGrp << " groups");
+ bool isAttrOk = false;
+ if(aFamilyInfo->GetNbAttr() == aNbGrp)
+ isAttrOk = true;
for (TInt iGr = 0; iGr < aNbGrp; iGr++) {
string aGroupName = aFamilyInfo->GetGroupName(iGr);
+ if(isAttrOk){
+ TInt anAttrVal = aFamilyInfo->GetAttrVal(iGr);
+ aFamily->SetGroupAttributVal(anAttrVal);
+ }
+
if(MYDEBUG) MESSAGE(aGroupName);
aFamily->AddGroupName(aGroupName);
+
}
aFamily->SetId( aFamId );
myFamilies[aFamId] = aFamily;
{
element = *anElemsIter;
theGroup->SMDSGroup().Add(element);
+ int aGroupAttrVal = aFamily->GetGroupAttributVal();
+ if( aGroupAttrVal != 0)
+ theGroup->SetColorGroup(aGroupAttrVal);
}
if ( element )
theGroup->SetType( theGroup->SMDSGroup().GetType() );
void SMESHDS_GroupBase::SetColorGroup(int theColorGroup)
{
- if( theColorGroup < 0 || theColorGroup > 360 )
- {
- MESSAGE("SMESHDS_GroupBase::SetColorGroup : Value must be in range [0,360]");
- return;
- }
-
- Quantity_Color aColor( (double)theColorGroup, 1.0, 1.0, Quantity_TOC_HLS );
+ cout << "theColorGroup = " << theColorGroup << endl;
+
+ int aRed = ( theColorGroup/1000000 );
+ int aGreen = ( theColorGroup -aRed*1000000)/1000;
+ int aBlue = ( theColorGroup - aRed*1000000 - aGreen*1000 );
+ cout << "aRed = " << aRed << endl;
+ cout << "aGreen = " << aGreen << endl;
+ cout << "aBlue = " << aBlue << endl;
+ double aR = aRed/255.0;
+ double aG = aGreen/255.0;
+ double aB = aBlue/255.0;
+ cout << "aR = " << aR << endl;
+ cout << "aG = " << aG << endl;
+ cout << "aB = " << aB << endl;
+
+ Quantity_Color aColor( aR, aG, aB, Quantity_TOC_RGB );
SetColor( aColor );
}
int SMESHDS_GroupBase::GetColorGroup() const
{
Quantity_Color aColor = GetColor();
- double aHue = aColor.Hue();
- if( aHue < 0 )
- return 0;
- return (int)( aHue );
+ double aRed = aColor.Red();
+ double aGreen = aColor.Green();
+ double aBlue = aColor.Blue();
+ int aR = aRed*255;
+ int aG = aGreen*255;
+ int aB = aBlue*255;
+ cout << "aRed = " << aR << endl;
+ cout << "aGreen = " << aG << endl;
+ cout << "aBlue = " << aB << endl;
+ int aRet = (int)(aR*1000000 + aG*1000 + aB);
+
+ return aRet;
}