Exemplo n.º 1
0
 public TargetFunction(GoalModule module)
 {
     Module         = module;
     Pivots         = new Pivot[Module.Data.Frames.Length];
     References     = new int[Module.Data.Frames.Length];
     Props          = new string[Module.Data.Frames.Length];
     Specifiers     = new string[Module.Data.Frames.Length];
     PropResolution = 8;
     for (int i = 0; i < Pivots.Length; i++)
     {
         Pivots[i] = Pivot.DynamicRoot;
     }
     for (int i = 0; i < References.Length; i++)
     {
         References[i] = 60;
     }
     for (int i = 0; i < Props.Length; i++)
     {
         Props[i] = string.Empty;
     }
     for (int i = 0; i < Specifiers.Length; i++)
     {
         Specifiers[i] = string.Empty;
     }
 }
Exemplo n.º 2
0
    public void Load()
    {
        if (Editor != null)
        {
            Actions = new List <LabelGroup>();
            Styles  = new List <LabelGroup>();

            Files  = new List <MotionData>();
            Export = new List <bool>();
            for (int i = 0; i < Editor.Files.Length; i++)
            {
                Files.Add(Editor.Files[i]);
                if (Editor.Files[i].Export || !LoadActiveOnly)
                {
                    Export.Add(true);
                    if (Editor.Files[i].GetModule(Module.ID.Goal) != null)
                    {
                        GoalModule module = (GoalModule)Editor.Files[i].GetModule(Module.ID.Goal);
                        for (int j = 0; j < module.Functions.Length; j++)
                        {
                            if (Actions.Find(x => ArrayExtensions.Contains(ref x.Labels, module.Functions[j].Name)) == null)
                            {
                                Actions.Add(new LabelGroup(module.Functions[j].Name));
                            }
                        }
                    }
                    if (Editor.Files[i].GetModule(Module.ID.Style) != null)
                    {
                        StyleModule module = (StyleModule)Editor.Files[i].GetModule(Module.ID.Style);
                        for (int j = 0; j < module.Functions.Length; j++)
                        {
                            if (Styles.Find(x => ArrayExtensions.Contains(ref x.Labels, module.Functions[j].Name)) == null)
                            {
                                Styles.Add(new LabelGroup(module.Functions[j].Name));
                            }
                        }
                    }
                }
                else
                {
                    Export.Add(false);
                }
            }
        }
    }
Exemplo n.º 3
0
 public GoalFunction(GoalModule module, string name)
 {
     Module = module;
     Name   = name;
     Values = new float[Module.Data.GetTotalFrames()];
 }
Exemplo n.º 4
0
    public TimeSeries GetTimeSeries(Frame frame, bool mirrored, int pastKeys, int futureKeys, float pastWindow, float futureWindow, int resolution, float delta)
    {
        TimeSeries timeSeries = new TimeSeries(pastKeys, futureKeys, pastWindow, futureWindow, resolution);

        foreach (Module module in Data.Modules)
        {
            if (module is RootModule)
            {
                RootModule      m      = (RootModule)module;
                TimeSeries.Root series = new TimeSeries.Root(timeSeries);
                for (int i = 0; i < timeSeries.Samples.Length; i++)
                {
                    float t = frame.Timestamp + timeSeries.Samples[i].Timestamp;
                    if (t < 0f || t > Data.GetTotalTime())
                    {
                        series.Transformations[i] = m.GetEstimatedRootTransformation(frame, timeSeries.Samples[i].Timestamp, mirrored);
                        series.Velocities[i]      = m.GetEstimatedRootVelocity(frame, timeSeries.Samples[i].Timestamp, mirrored, delta);
                    }
                    else
                    {
                        series.Transformations[i] = m.GetRootTransformation(Data.GetFrame(t), mirrored);
                        series.Velocities[i]      = m.GetRootVelocity(Data.GetFrame(t), mirrored, delta);
                    }
                }
            }
            if (module is StyleModule)
            {
                StyleModule      m      = (StyleModule)module;
                TimeSeries.Style series = new TimeSeries.Style(timeSeries, m.GetNames());
                for (int i = 0; i < timeSeries.Samples.Length; i++)
                {
                    float t = frame.Timestamp + timeSeries.Samples[i].Timestamp;
                    series.Values[i] = m.GetStyles(Data.GetFrame(t));
                }
            }
            if (module is GoalModule)
            {
                GoalModule      m      = (GoalModule)module;
                TimeSeries.Goal series = new TimeSeries.Goal(timeSeries, m.GetNames());
                for (int i = 0; i < timeSeries.Samples.Length; i++)
                {
                    float t = frame.Timestamp + timeSeries.Samples[i].Timestamp;
                    series.Transformations[i] = m.Target.GetGoalTransformation(frame, timeSeries.Samples[i].Timestamp, mirrored, delta);
                    series.Values[i]          = m.GetActions(Data.GetFrame(t), delta);
                }
            }
            if (module is ContactModule)
            {
                ContactModule      m      = (ContactModule)module;
                TimeSeries.Contact series = new TimeSeries.Contact(timeSeries, m.GetNames());
                for (int i = 0; i < timeSeries.Samples.Length; i++)
                {
                    float t = frame.Timestamp + timeSeries.Samples[i].Timestamp;
                    series.Values[i] = m.GetContacts(Data.GetFrame(t), mirrored);
                }
            }
            if (module is PhaseModule)
            {
                PhaseModule      m      = (PhaseModule)module;
                TimeSeries.Phase series = new TimeSeries.Phase(timeSeries);
                for (int i = 0; i < timeSeries.Samples.Length; i++)
                {
                    float t = frame.Timestamp + timeSeries.Samples[i].Timestamp;
                    series.Values[i] = m.GetPhase(Data.GetFrame(t), mirrored);
                }
            }
        }
        return(timeSeries);
    }