Esempio n. 1
0
    /// <summary>
    /// Creates new sub-object
    /// </summary>
    /// <param name="element">Face element type</param>
    /// <param name="name">New object name</param>
    /// <param name="fromMark">Starting mark index</param>
    /// <param name="toMark">Ending mark index</param>
    /// <param name="factor">Scale factor</param>
    /// <param name="updateMarks">[optional] Signals whether we should apply new marks</param>
    public bool DefineSubObject(FaceElements element, string name, int fromMark, int toMark, bool updateMarks = true)
    {
        int index = (int)element;

        Point[]        subset = Marks.SubsetFromTo(fromMark, toMark);
        DetectedObject obj    = Elements[index];

        // first instance
        bool applied = false;

        if (null == obj)
        {
            applied         = true;
            obj             = new DetectedObject(faceStabilizer.Params, name, subset);
            Elements[index] = obj;
        }
        // updated
        else
        {
            if (updateMarks || null == obj.Marks || 0 == obj.Marks.Length)
            {
                applied = obj.SetMarks(subset);
            }
        }

        return(applied);
    }