63 static int StringToSplitCriteria(
const std::string& aEnumString);
69 static int StringToGroupSorting(
const std::string& aEnumString);
74 static int CalculateNumPIs(
const std::list<WsfSA_PerceivedItem*>& aItemList);
79 static int CalculateNumPIs(
const std::list<WsfSA_Group*>& aGroupList);
87 static bool RenameGroup(
const std::list<WsfSA_Group*>& aGroupList,
WsfSA_Group* aGroup,
const std::string& aName);
108 std::list<WsfSA_Group*>& aGroupList,
110 const std::list<WsfSA_EntityPerception*>& aElements,
111 const std::string& aName,
112 double aMinGroupRadius_nm,
113 bool aProtect =
false);
132 static bool DisbandGroup(
int aPI_Limit,
134 std::list<WsfSA_Group*>& aGroupList,
136 std::function<std::string()> aNamingFunc,
137 double aMinGroupRadius_nm,
138 bool aProtect =
false);
152 static WsfSA_Group* MergeGroups(std::list<WsfSA_Group*>& aGroupList,
153 const std::list<WsfSA_Group*>& aGroups,
155 double aMinGroupRadius_nm,
156 bool aProtect =
false);
180 static std::pair<WsfSA_Group*, WsfSA_Group*> SplitGroup(
int aPI_Limit,
182 std::list<WsfSA_Group*>& aGroupList,
187 const std::string& aNewGroupName,
188 double aMinGroupRadius_nm,
189 bool aProtect =
false);
207 static bool TransferEntity(
int aPI_Limit,
209 std::list<WsfSA_Group*>& aGroupList,
212 double aMinGroupRadius_nm,
213 bool aProtect =
false);
229 static bool RemoveEntityFromGroup(
int aPI_Limit,
231 std::list<WsfSA_Group*>& aGroupList,
233 const std::string& aDegenerateGroupName,
234 double aMinGroupRadius_nm,
235 bool aProtect =
false);
249 static bool SetFocus(
int aPI_Limit,
int aPI_Current,
WsfSA_Group* aGroup,
bool aFocus,
bool aProtect =
false);
258 static void Prune(
int aPI_Limit, std::list<WsfSA_PerceivedItem*>& aGroupList, std::list<WsfSA_PerceivedItem*>& aToRemove);
269 static void PruneRecursive(
int aPI_Limit,
272 std::list<WsfSA_PerceivedItem*>& aGroupList,
273 std::list<WsfSA_PerceivedItem*>& aToRemove);
283 static void SortedGroups(
int aSortingEnum,
284 std::vector<WsfSA_Group*>& aOutputGroups,
285 const std::list<WsfSA_Group*>& aGroupList,
296 static void RecalculateGroupCentroid(
WsfSA_Group* aGroup,
double aMinGroupRadius_nm);
302 static double CalcRadiusForGroup_nm(
const WsfSA_Group* aGroup,
double aMinGroupRadius_nm);