Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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;
        }
Exemplo n.º 3
0
        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;
        }