示例#1
0
        /// <summary>
        /// Creates a <see cref="DebugChannelData"/> instance
        /// from specified <see cref="IEncodingSettings"/>.
        /// </summary>
        /// <param name="settings"><see cref="IEncodingSettings"/></param>
        /// <param name="storePositions">Whether to store grid positions</param>
        private DebugChannelData(IEncodingSettings settings, bool storePositions)
        {
            m_Labels         = new List <ChannelLabel>();
            m_Observables    = new List <Observable>();
            m_HasObservables = true;

            if (storePositions)
            {
                HasGridPositions = true;
                m_GridPositions  = new List <HashSet <Vector2Int> >();
            }

            var tags = settings.DetectableTags;

            foreach (string tag in tags)
            {
                var observables = settings.GetObservables(tag);

                foreach (var obs in observables)
                {
                    m_Observables.Add(obs);

                    m_Labels.Add(new ChannelLabel()
                    {
                        Name  = $"{tag} / {obs.Name}",
                        Color = obs.Color
                    });

                    if (storePositions)
                    {
                        m_GridPositions.Add(new HashSet <Vector2Int>());
                    }
                }
            }
        }
示例#2
0
        public static IDictionary <string, ShapeModifier> CreateModifiers(
            IEncodingSettings settings, ChannelGrid grid)
        {
            var modifiers = new Dictionary <string, ShapeModifier>();

            foreach (string tag in settings.DetectableTags)
            {
                ShapeModifier modifier = settings.GetShapeModifierType(tag) switch
                {
                    ShapeModifierType.Dilation => new ShapeModDilation(),
                    ShapeModifierType.Downsampling => new ShapeModDownsampling(),
                    ShapeModifierType.OrthogonalFill => new ShapeModOrthogonalFill(),
                    ShapeModifierType.DiagonalFill => new ShapeModDiagonalFill(),
                    _ => new ShapeModNone(),
                };
                modifier.Initialize(grid);
                modifiers.Add(tag, modifier);
            }

            return(modifiers);
        }
示例#3
0
        /// <summary>
        /// <see cref="PointModifier"/> factory.
        /// </summary>
        /// <param name="settings"><see cref="IEncodingSettings"/></param>
        /// <param name="buffer"><see cref="GridBuffer"/> used by the sensor</param>
        /// <returns>Dictionary of <see cref="PointModifiers"/>s by tag</returns>
        public static IDictionary <string, PointModifier> CreateModifiers(
            IEncodingSettings settings, GridBuffer buffer)
        {
            var modifiers = new Dictionary <string, PointModifier>();

            foreach (string tag in settings.DetectableTags)
            {
                PointModifier modifier = settings.GetPointModifierType(tag) switch
                {
                    PointModifierType.Dilation => new PointModDilation(),
                    PointModifierType.Downsampling => new PointModDownsampling(),
                    PointModifierType.OrthogonalFill => new PointModOrthogonalFill(),
                    PointModifierType.DiagonalFill => new PointModDiagonalFill(),
                    _ => new PointModNone(),
                };
                modifier.Initialize(buffer);
                modifiers.Add(tag, modifier);
            }

            return(modifiers);
        }
示例#4
0
 public RtspCommandBuilder WithEncodingSettings(IEncodingSettings encodingSettings)
 {
     EncodingSettings = encodingSettings;
     return(this);
 }
示例#5
0
 /// <summary>
 /// Factory. Creates a <see cref="DebugChannelData"/> instance
 /// from specified <see cref="IEncodingSettings"/>.
 /// </summary>
 /// <param name="settings"><see cref="IEncodingSettings"/></param>
 /// <param name="storePositions">Whether to store grid positions</param>
 /// <returns>New <see cref="DebugChannelData"/> instance</returns>
 public static DebugChannelData FromSettings(
     IEncodingSettings settings, bool storePositions = true)
 {
     return(new DebugChannelData(settings, storePositions));
 }