public static Dictionary <string, NodeProfileInfos.ProfileInfo> GetProfileInfos(int frame, string behaviorFilename) { Dictionary <string, NodeProfileInfos.ProfileInfo> frameProfileInfos = new Dictionary <string, NodeProfileInfos.ProfileInfo>(); if (frame < 0 || string.IsNullOrEmpty(behaviorFilename)) { return(frameProfileInfos); } if (_nodeFrameProfiles.ContainsKey(behaviorFilename)) { Dictionary <string, NodeProfileInfos> nodeProfileInfos = _nodeFrameProfiles[behaviorFilename]; foreach (string nodeId in nodeProfileInfos.Keys) { NodeProfileInfos profileInfos = nodeProfileInfos[nodeId]; if (profileInfos.ProfileInfos.ContainsKey(frame)) { frameProfileInfos[nodeId] = profileInfos.ProfileInfos[frame].Clone(); } else if (profileInfos.LastValidFrame > -1) { Debug.Check(profileInfos.ProfileInfos.ContainsKey(profileInfos.LastValidFrame)); frameProfileInfos[nodeId] = profileInfos.ProfileInfos[profileInfos.LastValidFrame].Clone(); frameProfileInfos[nodeId].Time *= -1; } } } return(frameProfileInfos); }
public static void SetProfileInfo(int frame, string behaviorFilename, string nodeId, float timeMs) { //CheckJump(agentFullName, ref behaviorFilename, ref nodeId); if (frame < 0 || string.IsNullOrEmpty(behaviorFilename) || string.IsNullOrEmpty(nodeId)) { return; } if (!_nodeFrameProfiles.ContainsKey(behaviorFilename)) { _nodeFrameProfiles[behaviorFilename] = new Dictionary <string, NodeProfileInfos>(); } Dictionary <string, NodeProfileInfos> nodeProfileInfos = _nodeFrameProfiles[behaviorFilename]; if (!nodeProfileInfos.ContainsKey(nodeId)) { nodeProfileInfos[nodeId] = new NodeProfileInfos(); } NodeProfileInfos profileInfos = nodeProfileInfos[nodeId]; if (!profileInfos.ProfileInfos.ContainsKey(frame)) { profileInfos.ProfileInfos[frame] = new NodeProfileInfos.ProfileInfo(); } NodeProfileInfos.ProfileInfo profileInfo = profileInfos.ProfileInfos[frame]; profileInfo.Time = timeMs; if (profileInfos.LastValidFrame < 0) { profileInfo.Count = 1; profileInfo.TotalTime = timeMs; } else { Debug.Check(profileInfos.ProfileInfos.ContainsKey(profileInfos.LastValidFrame)); NodeProfileInfos.ProfileInfo lastProfileInfo = profileInfos.ProfileInfos[profileInfos.LastValidFrame]; profileInfo.Count = lastProfileInfo.Count + 1; profileInfo.TotalTime = lastProfileInfo.TotalTime + timeMs; } profileInfos.LastValidFrame = frame; }
public static void SetProfileInfo(int frame, string behaviorFilename, string nodeId, float timeMs) { //CheckJump(agentFullname, ref behaviorFilename, ref nodeId); if (frame < 0 || string.IsNullOrEmpty(behaviorFilename) || string.IsNullOrEmpty(nodeId)) return; if (!_nodeFrameProfiles.ContainsKey(behaviorFilename)) _nodeFrameProfiles[behaviorFilename] = new Dictionary<string, NodeProfileInfos>(); Dictionary<string, NodeProfileInfos> nodeProfileInfos = _nodeFrameProfiles[behaviorFilename]; if (!nodeProfileInfos.ContainsKey(nodeId)) nodeProfileInfos[nodeId] = new NodeProfileInfos(); NodeProfileInfos profileInfos = nodeProfileInfos[nodeId]; if (!profileInfos.ProfileInfos.ContainsKey(frame)) profileInfos.ProfileInfos[frame] = new NodeProfileInfos.ProfileInfo(); NodeProfileInfos.ProfileInfo profileInfo = profileInfos.ProfileInfos[frame]; profileInfo.Time = timeMs; if (profileInfos.LastValidFrame < 0) { profileInfo.Count = 1; profileInfo.TotalTime = timeMs; } else { Debug.Check(profileInfos.ProfileInfos.ContainsKey(profileInfos.LastValidFrame)); NodeProfileInfos.ProfileInfo lastProfileInfo = profileInfos.ProfileInfos[profileInfos.LastValidFrame]; profileInfo.Count = lastProfileInfo.Count + 1; profileInfo.TotalTime = lastProfileInfo.TotalTime + timeMs; } profileInfos.LastValidFrame = frame; }