+//=============================================================================
+/*!
+ *
+ */
+//=============================================================================
+SALOMEDS::Color SMESH_GroupBase_i::GetColor()
+{
+ SMESHDS_GroupBase* aGroupDS = GetGroupDS();
+ if (aGroupDS)
+ {
+ Quantity_Color aQColor = aGroupDS->GetColor();
+ SALOMEDS::Color aColor;
+ aColor.R = aQColor.Red();
+ aColor.G = aQColor.Green();
+ aColor.B = aQColor.Blue();
+
+ return aColor;
+ }
+ MESSAGE("get color of a group");
+ return SALOMEDS::Color();
+}
+
+//=============================================================================
+/*!
+ *
+ */
+//=============================================================================
+void SMESH_GroupBase_i::SetColor(const SALOMEDS::Color& color)
+{
+ SMESHDS_GroupBase* aGroupDS = GetGroupDS();
+ if (aGroupDS)
+ {
+ Quantity_Color aQColor( color.R, color.G, color.B, Quantity_TOC_RGB );
+ return aGroupDS->SetColor(aQColor);
+ }
+ MESSAGE("set color of a group");
+ return ;
+}
+
+//=============================================================================
+/*!
+ *
+ */
+//=============================================================================
+CORBA::Long SMESH_GroupBase_i::GetColorNumber()
+{
+ SMESHDS_GroupBase* aGroupDS = GetGroupDS();
+ if (aGroupDS)
+ return aGroupDS->GetColorGroup();
+ MESSAGE("get color number of a group");
+ return 0;
+}
+
+//=============================================================================
+/*!
+ *
+ */
+//=============================================================================
+void SMESH_GroupBase_i::SetColorNumber(CORBA::Long color)
+{
+ SMESHDS_GroupBase* aGroupDS = GetGroupDS();
+ if (aGroupDS)
+ return aGroupDS->SetColorGroup(color);
+ MESSAGE("set color number of a group");
+ return ;
+}
+
+//=============================================================================
+/*!
+ * Returns statistic of mesh elements
+ * Result array of number enityties
+ * Inherited from SMESH_IDSource
+ */
+//=============================================================================
+SMESH::long_array* SMESH_GroupBase_i::GetMeshInfo()
+{
+ SMESH::long_array_var aRes = new SMESH::long_array();
+ aRes->length(SMESH::Entity_Last);
+ for (int i = SMESH::Entity_Node; i < SMESH::Entity_Last; i++)
+ aRes[i] = 0;
+
+ SMESHDS_GroupBase* aGrpDS = GetGroupDS();
+ if ( !aGrpDS )
+ return aRes._retn();
+ if ( GetType() == NODE )
+ aRes[ SMESH::Entity_Node ] = aGrpDS->Extent();
+ else
+ SMESH_Mesh_i::CollectMeshInfo( aGrpDS->GetElements(), aRes);
+ return aRes._retn();
+}