kinect/codes/Azure-Kinect-Samples/body-tracking-samples/sample_unity_bodytracking/Assets/Config/Configs.cs

133 lines
3.7 KiB
C#

using Microsoft.Azure.Kinect.BodyTracking;
[System.Serializable]
public class InitialAndEndStability
{
public float StableTimeInMs = 200.0f;
public float InitialAllowedMovementDeviationInMeters = 0.05f;
}
[System.Serializable]
public class MovementDisplacement
{
public float HorizontalThresholdInMeters = 0.15f;
public float VerticalThresholdInMeters = 0.05f;
}
[System.Serializable]
public class HandsDisplacement
{
public int FrameCountThreshold = 5;
public float DistanceThresholdInMeters = 0.3f;
public float AllowedStandardDeviationInMeters = 0.03f;
}
[System.Serializable]
public class AngleDisplacement
{
public float KneeAngleThresholdInDeg = 150;
public float KneeAngleAllowedDeviation = 30;
public float TorsoAngleThresholdInDeg = 170;
public float TorsongleAllowedDeviation = 30;
}
[System.Serializable]
public class Height
{
public float MaximalPossibleValueInMeters = 0.8f;
}
[System.Serializable]
public class JumpValidity
{
public InitialAndEndStability InitialAndEndStability = new InitialAndEndStability();
public MovementDisplacement MovementDisplacement = new MovementDisplacement();
public HandsDisplacement HandsDisplacement = new HandsDisplacement();
public AngleDisplacement AngleDisplacement = new AngleDisplacement();
public Height Height = new Height();
}
[System.Serializable]
public class BodyFiltering
{
public float DistanceThresholdInMeters = 1;
public float CircleCenterXInMeters = 0;
public float CircleCenterZIntMeters = 2.5f;
public bool RejectPiruetteInRagDollVisualization = true;
public bool ShowFlippedPiruetteInRagDoll = true;
}
[System.Serializable]
public class SkeletalTracking
{
public float MaximumDisplayedDepthInMillimeters = 5000;
}
[System.Serializable]
public class DebugOpt
{
// 0 - Show none, 1 - Show errors only, 2 - Show warnings and errors, 3 - Show all
public int LogLevel = 1;
public int MaxMessages = 10;
}
// Physical parameters of demo setup.
[System.Serializable]
public class DemoSceneConfig
{
// Scene setup, distance of camera from marked area.
public float DistanceFromCamera = 2.6f;
// Scene setup, distance camera from floor.
public float CameraHeight = 1.0f;
// Length of square which is monitored.
public float MonitoringSquareWidth = 1.4f;
public float MonitoringSquareHeight = 1.4f;
public float ShoesSize = 0.2f;
public bool DrawMonitoringArea = false;
public int NumberSmoothingFrames = 5;
}
[System.Serializable]
public class Plotting
{
public bool IsMovingAverageOn = true;
public int MovingAverageWindowWidth = 5;
}
[System.Serializable]
public class RawDataCollection
{
// Logic for outputing and reading from raw data:
//
// if (ReadFromFile)
// read_raw_data_from(FileName)
// else
// read_raw_data_from_k4a()
// if (Logging)
// log_raw_data_to(LoggingFileNamePrefix + Timestamp)
// endif
public bool Logging = false;
public string LoggingFileNamePrefix = "log";
public bool ReadFromFile = false;
public string FileName = "";
}
[System.Serializable]
public class Configs
{
public int CenterOfMassJointId = (int)JointId.Pelvis;
public JumpValidity JumpValidity = new JumpValidity();
public BodyFiltering BodyFiltering = new BodyFiltering();
public SkeletalTracking SkeletalTracking = new SkeletalTracking();
public DemoSceneConfig DemoSceneConfig = new DemoSceneConfig();
public DebugOpt DebugOpt = new DebugOpt();
public Plotting Plotting = new Plotting();
public RawDataCollection RawDataCollection = new RawDataCollection();
public bool LoggingToZion = false;
public bool DrawOnlyMainSkeleton = true;
public bool IsFpsDisplayActive = false;
}