www.gusucode.com > ros 工具箱 matlab源码程序 > ros/+robotics/+ros/+msggen/+nao_interaction_msgs/FaceDetected.m

    classdef FaceDetected < robotics.ros.Message
    %FaceDetected MATLAB implementation of nao_interaction_msgs/FaceDetected
    %   This class was automatically generated by
    %   robotics.ros.msg.internal.gen.MessageClassGenerator.
    
    %   Copyright 2014-2016 The MathWorks, Inc.
    
    %#ok<*INUSD>
    
    properties (Constant)
        MessageType = 'nao_interaction_msgs/FaceDetected' % The ROS message type
    end
    
    properties (Constant, Hidden)
        MD5Checksum = '3b3868bc92bb74386686642b1cf73f53' % The MD5 Checksum of the message definition
    end
    
    properties (Access = protected)
        JavaMessage % The Java message object
    end
    
    properties (Constant, Access = protected)
        GeometryMsgsPoseClass = robotics.ros.msg.internal.MessageFactory.getClassForType('geometry_msgs/Pose') % Dispatch to MATLAB class for message type geometry_msgs/Pose
        StdMsgsFloat32Class = robotics.ros.msg.internal.MessageFactory.getClassForType('std_msgs/Float32') % Dispatch to MATLAB class for message type std_msgs/Float32
        StdMsgsHeaderClass = robotics.ros.msg.internal.MessageFactory.getClassForType('std_msgs/Header') % Dispatch to MATLAB class for message type std_msgs/Header
        StdMsgsInt32Class = robotics.ros.msg.internal.MessageFactory.getClassForType('std_msgs/Int32') % Dispatch to MATLAB class for message type std_msgs/Int32
        StdMsgsStringClass = robotics.ros.msg.internal.MessageFactory.getClassForType('std_msgs/String') % Dispatch to MATLAB class for message type std_msgs/String
    end
    
    properties (Dependent)
        Header
        FaceId
        ScoreReco
        FaceLabel
        ShapeAlpha
        ShapeBeta
        ShapeSizeX
        ShapeSizeY
        RightEyeEyeCenterX
        RightEyeEyeCenterY
        RightEyeNoseSideLimitX
        RightEyeNoseSideLimitY
        RightEyeEarSideLimitX
        RightEyeEarSideLimitY
        RightEyeTopLimitX
        RightEyeTopLimitY
        RightEyeBottomLimitX
        RightEyeBottomLimitY
        RightEyeMidTopEarLimitX
        RightEyeMidTopEarLimitY
        RightEyeMidTopNoseLimitX
        RightEyeMidTopNoseLimitY
        LeftEyeEyeCenterX
        LeftEyeEyeCenterY
        LeftEyeNoseSideLimitX
        LeftEyeNoseSideLimitY
        LeftEyeEarSideLimitX
        LeftEyeEarSideLimitY
        LeftEyeTopLimitX
        LeftEyeTopLimitY
        LeftEyeBottomLimitX
        LeftEyeBottomLimitY
        LeftEyeMidTopEarLimitX
        LeftEyeMidTopEarLimitY
        LeftEyeMidTopNoseLimitX
        LeftEyeMidTopNoseLimitY
        RightEyebrowNoseSideLimitX
        RightEyebrowNoseSideLimitY
        RightEyebrowCenterX
        RightEyebrowCenterY
        RightEyebrowEarSideLimitX
        RightEyebrowEarSideLimitY
        LeftEyebrowNoseSideLimitX
        LeftEyebrowNoseSideLimitY
        LeftEyebrowCenterX
        LeftEyebrowCenterY
        LeftEyebrowEarSideLimitX
        LeftEyebrowEarSideLimitY
        NoseBottomCenterLimitX
        NoseBottomCenterLimitY
        NoseBottomLeftLimitX
        NoseBottomLeftLimitY
        NoseBottomRightLimitX
        NoseBottomRightLimitY
        MouthLeftLimitX
        MouthLeftLimitY
        MouthRightLimitX
        MouthRightLimitY
        MouthTopLimitX
        MouthTopLimitY
        MouthBottomLimitX
        MouthBottomLimitY
        MouthMidTopLeftLimitX
        MouthMidTopLeftLimitY
        MouthMidTopRightLimitX
        MouthMidTopRightLimitY
        MouthMidBottomRightLimitX
        MouthMidBottomRightLimitY
        MouthMidBottomLeftLimitX
        MouthMidBottomLeftLimitY
        Camera0Pose
        Camera1Pose
        CameraId
    end
    
    properties (Access = protected)
        Cache = struct('Header', [], 'FaceId', [], 'ScoreReco', [], 'FaceLabel', [], 'ShapeAlpha', [], 'ShapeBeta', [], 'ShapeSizeX', [], 'ShapeSizeY', [], 'RightEyeEyeCenterX', [], 'RightEyeEyeCenterY', [], 'RightEyeNoseSideLimitX', [], 'RightEyeNoseSideLimitY', [], 'RightEyeEarSideLimitX', [], 'RightEyeEarSideLimitY', [], 'RightEyeTopLimitX', [], 'RightEyeTopLimitY', [], 'RightEyeBottomLimitX', [], 'RightEyeBottomLimitY', [], 'RightEyeMidTopEarLimitX', [], 'RightEyeMidTopEarLimitY', [], 'RightEyeMidTopNoseLimitX', [], 'RightEyeMidTopNoseLimitY', [], 'LeftEyeEyeCenterX', [], 'LeftEyeEyeCenterY', [], 'LeftEyeNoseSideLimitX', [], 'LeftEyeNoseSideLimitY', [], 'LeftEyeEarSideLimitX', [], 'LeftEyeEarSideLimitY', [], 'LeftEyeTopLimitX', [], 'LeftEyeTopLimitY', [], 'LeftEyeBottomLimitX', [], 'LeftEyeBottomLimitY', [], 'LeftEyeMidTopEarLimitX', [], 'LeftEyeMidTopEarLimitY', [], 'LeftEyeMidTopNoseLimitX', [], 'LeftEyeMidTopNoseLimitY', [], 'RightEyebrowNoseSideLimitX', [], 'RightEyebrowNoseSideLimitY', [], 'RightEyebrowCenterX', [], 'RightEyebrowCenterY', [], 'RightEyebrowEarSideLimitX', [], 'RightEyebrowEarSideLimitY', [], 'LeftEyebrowNoseSideLimitX', [], 'LeftEyebrowNoseSideLimitY', [], 'LeftEyebrowCenterX', [], 'LeftEyebrowCenterY', [], 'LeftEyebrowEarSideLimitX', [], 'LeftEyebrowEarSideLimitY', [], 'NoseBottomCenterLimitX', [], 'NoseBottomCenterLimitY', [], 'NoseBottomLeftLimitX', [], 'NoseBottomLeftLimitY', [], 'NoseBottomRightLimitX', [], 'NoseBottomRightLimitY', [], 'MouthLeftLimitX', [], 'MouthLeftLimitY', [], 'MouthRightLimitX', [], 'MouthRightLimitY', [], 'MouthTopLimitX', [], 'MouthTopLimitY', [], 'MouthBottomLimitX', [], 'MouthBottomLimitY', [], 'MouthMidTopLeftLimitX', [], 'MouthMidTopLeftLimitY', [], 'MouthMidTopRightLimitX', [], 'MouthMidTopRightLimitY', [], 'MouthMidBottomRightLimitX', [], 'MouthMidBottomRightLimitY', [], 'MouthMidBottomLeftLimitX', [], 'MouthMidBottomLeftLimitY', [], 'Camera0Pose', [], 'Camera1Pose', [], 'CameraId', []) % The cache for fast data access
    end
    
    properties (Constant, Hidden)
        PropertyList = {'Camera0Pose', 'Camera1Pose', 'CameraId', 'FaceId', 'FaceLabel', 'Header', 'LeftEyeBottomLimitX', 'LeftEyeBottomLimitY', 'LeftEyeEarSideLimitX', 'LeftEyeEarSideLimitY', 'LeftEyeEyeCenterX', 'LeftEyeEyeCenterY', 'LeftEyeMidTopEarLimitX', 'LeftEyeMidTopEarLimitY', 'LeftEyeMidTopNoseLimitX', 'LeftEyeMidTopNoseLimitY', 'LeftEyeNoseSideLimitX', 'LeftEyeNoseSideLimitY', 'LeftEyeTopLimitX', 'LeftEyeTopLimitY', 'LeftEyebrowCenterX', 'LeftEyebrowCenterY', 'LeftEyebrowEarSideLimitX', 'LeftEyebrowEarSideLimitY', 'LeftEyebrowNoseSideLimitX', 'LeftEyebrowNoseSideLimitY', 'MouthBottomLimitX', 'MouthBottomLimitY', 'MouthLeftLimitX', 'MouthLeftLimitY', 'MouthMidBottomLeftLimitX', 'MouthMidBottomLeftLimitY', 'MouthMidBottomRightLimitX', 'MouthMidBottomRightLimitY', 'MouthMidTopLeftLimitX', 'MouthMidTopLeftLimitY', 'MouthMidTopRightLimitX', 'MouthMidTopRightLimitY', 'MouthRightLimitX', 'MouthRightLimitY', 'MouthTopLimitX', 'MouthTopLimitY', 'NoseBottomCenterLimitX', 'NoseBottomCenterLimitY', 'NoseBottomLeftLimitX', 'NoseBottomLeftLimitY', 'NoseBottomRightLimitX', 'NoseBottomRightLimitY', 'RightEyeBottomLimitX', 'RightEyeBottomLimitY', 'RightEyeEarSideLimitX', 'RightEyeEarSideLimitY', 'RightEyeEyeCenterX', 'RightEyeEyeCenterY', 'RightEyeMidTopEarLimitX', 'RightEyeMidTopEarLimitY', 'RightEyeMidTopNoseLimitX', 'RightEyeMidTopNoseLimitY', 'RightEyeNoseSideLimitX', 'RightEyeNoseSideLimitY', 'RightEyeTopLimitX', 'RightEyeTopLimitY', 'RightEyebrowCenterX', 'RightEyebrowCenterY', 'RightEyebrowEarSideLimitX', 'RightEyebrowEarSideLimitY', 'RightEyebrowNoseSideLimitX', 'RightEyebrowNoseSideLimitY', 'ScoreReco', 'ShapeAlpha', 'ShapeBeta', 'ShapeSizeX', 'ShapeSizeY'} % List of non-constant message properties
        ROSPropertyList = {'camera_0_pose', 'camera_1_pose', 'camera_id', 'face_id', 'face_label', 'header', 'left_eye_bottomLimit_x', 'left_eye_bottomLimit_y', 'left_eye_earSideLimit_x', 'left_eye_earSideLimit_y', 'left_eye_eyeCenter_x', 'left_eye_eyeCenter_y', 'left_eye_midTopEarLimit_x', 'left_eye_midTopEarLimit_y', 'left_eye_midTopNoseLimit_x', 'left_eye_midTopNoseLimit_y', 'left_eye_noseSideLimit_x', 'left_eye_noseSideLimit_y', 'left_eye_topLimit_x', 'left_eye_topLimit_y', 'left_eyebrow_center_x', 'left_eyebrow_center_y', 'left_eyebrow_earSideLimit_x', 'left_eyebrow_earSideLimit_y', 'left_eyebrow_noseSideLimit_x', 'left_eyebrow_noseSideLimit_y', 'mouth_bottomLimit_x', 'mouth_bottomLimit_y', 'mouth_leftLimit_x', 'mouth_leftLimit_y', 'mouth_midBottomLeftLimit_x', 'mouth_midBottomLeftLimit_y', 'mouth_midBottomRightLimit_x', 'mouth_midBottomRightLimit_y', 'mouth_midTopLeftLimit_x', 'mouth_midTopLeftLimit_y', 'mouth_midTopRightLimit_x', 'mouth_midTopRightLimit_y', 'mouth_rightLimit_x', 'mouth_rightLimit_y', 'mouth_topLimit_x', 'mouth_topLimit_y', 'nose_bottomCenterLimit_x', 'nose_bottomCenterLimit_y', 'nose_bottomLeftLimit_x', 'nose_bottomLeftLimit_y', 'nose_bottomRightLimit_x', 'nose_bottomRightLimit_y', 'right_eye_bottomLimit_x', 'right_eye_bottomLimit_y', 'right_eye_earSideLimit_x', 'right_eye_earSideLimit_y', 'right_eye_eyeCenter_x', 'right_eye_eyeCenter_y', 'right_eye_midTopEarLimit_x', 'right_eye_midTopEarLimit_y', 'right_eye_midTopNoseLimit_x', 'right_eye_midTopNoseLimit_y', 'right_eye_noseSideLimit_x', 'right_eye_noseSideLimit_y', 'right_eye_topLimit_x', 'right_eye_topLimit_y', 'right_eyebrow_center_x', 'right_eyebrow_center_y', 'right_eyebrow_earSideLimit_x', 'right_eyebrow_earSideLimit_y', 'right_eyebrow_noseSideLimit_x', 'right_eyebrow_noseSideLimit_y', 'score_reco', 'shape_alpha', 'shape_beta', 'shape_sizeX', 'shape_sizeY'} % List of non-constant ROS message properties
    end
    
    methods
        function obj = FaceDetected(msg)
            %FaceDetected Construct the message object FaceDetected
            import com.mathworks.toolbox.robotics.ros.message.MessageInfo;
            
            % Support default constructor
            if nargin == 0
                obj.JavaMessage = obj.createNewJavaMessage;
                return;
            end
            
            % Construct appropriate empty array
            if isempty(msg)
                obj = obj.empty(0,1);
                return;
            end
            
            % Make scalar construction fast
            if isscalar(msg)
                % Check for correct input class
                if ~MessageInfo.compareTypes(msg(1), obj.MessageType)
                    error(message('robotics:ros:message:NoTypeMatch', obj.MessageType, ...
                        char(MessageInfo.getType(msg(1))) ));
                end
                obj.JavaMessage = msg(1);
                return;
            end
            
            % Check that this is a vector of scalar messages. Since this
            % is an object array, use arrayfun to verify.
            if ~all(arrayfun(@isscalar, msg))
                error(message('robotics:ros:message:MessageArraySizeError'));
            end
            
            % Check that all messages in the array have the correct type
            if ~all(arrayfun(@(x) MessageInfo.compareTypes(x, obj.MessageType), msg))
                error(message('robotics:ros:message:NoTypeMatchArray', obj.MessageType));
            end
            
            % Construct array of objects if necessary
            objType = class(obj);
            for i = 1:length(msg)
                obj(i,1) = feval(objType, msg(i)); %#ok<AGROW>
            end
        end
        
        function header = get.Header(obj)
            %get.Header Get the value for property Header
            if isempty(obj.Cache.Header)
                obj.Cache.Header = feval(obj.StdMsgsHeaderClass, obj.JavaMessage.getHeader);
            end
            header = obj.Cache.Header;
        end
        
        function set.Header(obj, header)
            %set.Header Set the value for property Header
            validateattributes(header, {obj.StdMsgsHeaderClass}, {'nonempty', 'scalar'}, 'FaceDetected', 'Header');
            
            obj.JavaMessage.setHeader(header.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.Header)
                obj.Cache.Header.setJavaObject(header.getJavaObject);
            end
        end
        
        function faceid = get.FaceId(obj)
            %get.FaceId Get the value for property FaceId
            if isempty(obj.Cache.FaceId)
                obj.Cache.FaceId = feval(obj.StdMsgsInt32Class, obj.JavaMessage.getFaceId);
            end
            faceid = obj.Cache.FaceId;
        end
        
        function set.FaceId(obj, faceid)
            %set.FaceId Set the value for property FaceId
            validateattributes(faceid, {obj.StdMsgsInt32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'FaceId');
            
            obj.JavaMessage.setFaceId(faceid.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.FaceId)
                obj.Cache.FaceId.setJavaObject(faceid.getJavaObject);
            end
        end
        
        function scorereco = get.ScoreReco(obj)
            %get.ScoreReco Get the value for property ScoreReco
            if isempty(obj.Cache.ScoreReco)
                obj.Cache.ScoreReco = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getScoreReco);
            end
            scorereco = obj.Cache.ScoreReco;
        end
        
        function set.ScoreReco(obj, scorereco)
            %set.ScoreReco Set the value for property ScoreReco
            validateattributes(scorereco, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'ScoreReco');
            
            obj.JavaMessage.setScoreReco(scorereco.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.ScoreReco)
                obj.Cache.ScoreReco.setJavaObject(scorereco.getJavaObject);
            end
        end
        
        function facelabel = get.FaceLabel(obj)
            %get.FaceLabel Get the value for property FaceLabel
            if isempty(obj.Cache.FaceLabel)
                obj.Cache.FaceLabel = feval(obj.StdMsgsStringClass, obj.JavaMessage.getFaceLabel);
            end
            facelabel = obj.Cache.FaceLabel;
        end
        
        function set.FaceLabel(obj, facelabel)
            %set.FaceLabel Set the value for property FaceLabel
            validateattributes(facelabel, {obj.StdMsgsStringClass}, {'nonempty', 'scalar'}, 'FaceDetected', 'FaceLabel');
            
            obj.JavaMessage.setFaceLabel(facelabel.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.FaceLabel)
                obj.Cache.FaceLabel.setJavaObject(facelabel.getJavaObject);
            end
        end
        
        function shapealpha = get.ShapeAlpha(obj)
            %get.ShapeAlpha Get the value for property ShapeAlpha
            if isempty(obj.Cache.ShapeAlpha)
                obj.Cache.ShapeAlpha = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getShapeAlpha);
            end
            shapealpha = obj.Cache.ShapeAlpha;
        end
        
        function set.ShapeAlpha(obj, shapealpha)
            %set.ShapeAlpha Set the value for property ShapeAlpha
            validateattributes(shapealpha, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'ShapeAlpha');
            
            obj.JavaMessage.setShapeAlpha(shapealpha.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.ShapeAlpha)
                obj.Cache.ShapeAlpha.setJavaObject(shapealpha.getJavaObject);
            end
        end
        
        function shapebeta = get.ShapeBeta(obj)
            %get.ShapeBeta Get the value for property ShapeBeta
            if isempty(obj.Cache.ShapeBeta)
                obj.Cache.ShapeBeta = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getShapeBeta);
            end
            shapebeta = obj.Cache.ShapeBeta;
        end
        
        function set.ShapeBeta(obj, shapebeta)
            %set.ShapeBeta Set the value for property ShapeBeta
            validateattributes(shapebeta, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'ShapeBeta');
            
            obj.JavaMessage.setShapeBeta(shapebeta.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.ShapeBeta)
                obj.Cache.ShapeBeta.setJavaObject(shapebeta.getJavaObject);
            end
        end
        
        function shapesizex = get.ShapeSizeX(obj)
            %get.ShapeSizeX Get the value for property ShapeSizeX
            if isempty(obj.Cache.ShapeSizeX)
                obj.Cache.ShapeSizeX = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getShapeSizeX);
            end
            shapesizex = obj.Cache.ShapeSizeX;
        end
        
        function set.ShapeSizeX(obj, shapesizex)
            %set.ShapeSizeX Set the value for property ShapeSizeX
            validateattributes(shapesizex, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'ShapeSizeX');
            
            obj.JavaMessage.setShapeSizeX(shapesizex.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.ShapeSizeX)
                obj.Cache.ShapeSizeX.setJavaObject(shapesizex.getJavaObject);
            end
        end
        
        function shapesizey = get.ShapeSizeY(obj)
            %get.ShapeSizeY Get the value for property ShapeSizeY
            if isempty(obj.Cache.ShapeSizeY)
                obj.Cache.ShapeSizeY = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getShapeSizeY);
            end
            shapesizey = obj.Cache.ShapeSizeY;
        end
        
        function set.ShapeSizeY(obj, shapesizey)
            %set.ShapeSizeY Set the value for property ShapeSizeY
            validateattributes(shapesizey, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'ShapeSizeY');
            
            obj.JavaMessage.setShapeSizeY(shapesizey.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.ShapeSizeY)
                obj.Cache.ShapeSizeY.setJavaObject(shapesizey.getJavaObject);
            end
        end
        
        function righteyeeyecenterx = get.RightEyeEyeCenterX(obj)
            %get.RightEyeEyeCenterX Get the value for property RightEyeEyeCenterX
            if isempty(obj.Cache.RightEyeEyeCenterX)
                obj.Cache.RightEyeEyeCenterX = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getRightEyeEyeCenterX);
            end
            righteyeeyecenterx = obj.Cache.RightEyeEyeCenterX;
        end
        
        function set.RightEyeEyeCenterX(obj, righteyeeyecenterx)
            %set.RightEyeEyeCenterX Set the value for property RightEyeEyeCenterX
            validateattributes(righteyeeyecenterx, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'RightEyeEyeCenterX');
            
            obj.JavaMessage.setRightEyeEyeCenterX(righteyeeyecenterx.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.RightEyeEyeCenterX)
                obj.Cache.RightEyeEyeCenterX.setJavaObject(righteyeeyecenterx.getJavaObject);
            end
        end
        
        function righteyeeyecentery = get.RightEyeEyeCenterY(obj)
            %get.RightEyeEyeCenterY Get the value for property RightEyeEyeCenterY
            if isempty(obj.Cache.RightEyeEyeCenterY)
                obj.Cache.RightEyeEyeCenterY = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getRightEyeEyeCenterY);
            end
            righteyeeyecentery = obj.Cache.RightEyeEyeCenterY;
        end
        
        function set.RightEyeEyeCenterY(obj, righteyeeyecentery)
            %set.RightEyeEyeCenterY Set the value for property RightEyeEyeCenterY
            validateattributes(righteyeeyecentery, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'RightEyeEyeCenterY');
            
            obj.JavaMessage.setRightEyeEyeCenterY(righteyeeyecentery.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.RightEyeEyeCenterY)
                obj.Cache.RightEyeEyeCenterY.setJavaObject(righteyeeyecentery.getJavaObject);
            end
        end
        
        function righteyenosesidelimitx = get.RightEyeNoseSideLimitX(obj)
            %get.RightEyeNoseSideLimitX Get the value for property RightEyeNoseSideLimitX
            if isempty(obj.Cache.RightEyeNoseSideLimitX)
                obj.Cache.RightEyeNoseSideLimitX = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getRightEyeNoseSideLimitX);
            end
            righteyenosesidelimitx = obj.Cache.RightEyeNoseSideLimitX;
        end
        
        function set.RightEyeNoseSideLimitX(obj, righteyenosesidelimitx)
            %set.RightEyeNoseSideLimitX Set the value for property RightEyeNoseSideLimitX
            validateattributes(righteyenosesidelimitx, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'RightEyeNoseSideLimitX');
            
            obj.JavaMessage.setRightEyeNoseSideLimitX(righteyenosesidelimitx.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.RightEyeNoseSideLimitX)
                obj.Cache.RightEyeNoseSideLimitX.setJavaObject(righteyenosesidelimitx.getJavaObject);
            end
        end
        
        function righteyenosesidelimity = get.RightEyeNoseSideLimitY(obj)
            %get.RightEyeNoseSideLimitY Get the value for property RightEyeNoseSideLimitY
            if isempty(obj.Cache.RightEyeNoseSideLimitY)
                obj.Cache.RightEyeNoseSideLimitY = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getRightEyeNoseSideLimitY);
            end
            righteyenosesidelimity = obj.Cache.RightEyeNoseSideLimitY;
        end
        
        function set.RightEyeNoseSideLimitY(obj, righteyenosesidelimity)
            %set.RightEyeNoseSideLimitY Set the value for property RightEyeNoseSideLimitY
            validateattributes(righteyenosesidelimity, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'RightEyeNoseSideLimitY');
            
            obj.JavaMessage.setRightEyeNoseSideLimitY(righteyenosesidelimity.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.RightEyeNoseSideLimitY)
                obj.Cache.RightEyeNoseSideLimitY.setJavaObject(righteyenosesidelimity.getJavaObject);
            end
        end
        
        function righteyeearsidelimitx = get.RightEyeEarSideLimitX(obj)
            %get.RightEyeEarSideLimitX Get the value for property RightEyeEarSideLimitX
            if isempty(obj.Cache.RightEyeEarSideLimitX)
                obj.Cache.RightEyeEarSideLimitX = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getRightEyeEarSideLimitX);
            end
            righteyeearsidelimitx = obj.Cache.RightEyeEarSideLimitX;
        end
        
        function set.RightEyeEarSideLimitX(obj, righteyeearsidelimitx)
            %set.RightEyeEarSideLimitX Set the value for property RightEyeEarSideLimitX
            validateattributes(righteyeearsidelimitx, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'RightEyeEarSideLimitX');
            
            obj.JavaMessage.setRightEyeEarSideLimitX(righteyeearsidelimitx.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.RightEyeEarSideLimitX)
                obj.Cache.RightEyeEarSideLimitX.setJavaObject(righteyeearsidelimitx.getJavaObject);
            end
        end
        
        function righteyeearsidelimity = get.RightEyeEarSideLimitY(obj)
            %get.RightEyeEarSideLimitY Get the value for property RightEyeEarSideLimitY
            if isempty(obj.Cache.RightEyeEarSideLimitY)
                obj.Cache.RightEyeEarSideLimitY = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getRightEyeEarSideLimitY);
            end
            righteyeearsidelimity = obj.Cache.RightEyeEarSideLimitY;
        end
        
        function set.RightEyeEarSideLimitY(obj, righteyeearsidelimity)
            %set.RightEyeEarSideLimitY Set the value for property RightEyeEarSideLimitY
            validateattributes(righteyeearsidelimity, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'RightEyeEarSideLimitY');
            
            obj.JavaMessage.setRightEyeEarSideLimitY(righteyeearsidelimity.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.RightEyeEarSideLimitY)
                obj.Cache.RightEyeEarSideLimitY.setJavaObject(righteyeearsidelimity.getJavaObject);
            end
        end
        
        function righteyetoplimitx = get.RightEyeTopLimitX(obj)
            %get.RightEyeTopLimitX Get the value for property RightEyeTopLimitX
            if isempty(obj.Cache.RightEyeTopLimitX)
                obj.Cache.RightEyeTopLimitX = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getRightEyeTopLimitX);
            end
            righteyetoplimitx = obj.Cache.RightEyeTopLimitX;
        end
        
        function set.RightEyeTopLimitX(obj, righteyetoplimitx)
            %set.RightEyeTopLimitX Set the value for property RightEyeTopLimitX
            validateattributes(righteyetoplimitx, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'RightEyeTopLimitX');
            
            obj.JavaMessage.setRightEyeTopLimitX(righteyetoplimitx.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.RightEyeTopLimitX)
                obj.Cache.RightEyeTopLimitX.setJavaObject(righteyetoplimitx.getJavaObject);
            end
        end
        
        function righteyetoplimity = get.RightEyeTopLimitY(obj)
            %get.RightEyeTopLimitY Get the value for property RightEyeTopLimitY
            if isempty(obj.Cache.RightEyeTopLimitY)
                obj.Cache.RightEyeTopLimitY = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getRightEyeTopLimitY);
            end
            righteyetoplimity = obj.Cache.RightEyeTopLimitY;
        end
        
        function set.RightEyeTopLimitY(obj, righteyetoplimity)
            %set.RightEyeTopLimitY Set the value for property RightEyeTopLimitY
            validateattributes(righteyetoplimity, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'RightEyeTopLimitY');
            
            obj.JavaMessage.setRightEyeTopLimitY(righteyetoplimity.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.RightEyeTopLimitY)
                obj.Cache.RightEyeTopLimitY.setJavaObject(righteyetoplimity.getJavaObject);
            end
        end
        
        function righteyebottomlimitx = get.RightEyeBottomLimitX(obj)
            %get.RightEyeBottomLimitX Get the value for property RightEyeBottomLimitX
            if isempty(obj.Cache.RightEyeBottomLimitX)
                obj.Cache.RightEyeBottomLimitX = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getRightEyeBottomLimitX);
            end
            righteyebottomlimitx = obj.Cache.RightEyeBottomLimitX;
        end
        
        function set.RightEyeBottomLimitX(obj, righteyebottomlimitx)
            %set.RightEyeBottomLimitX Set the value for property RightEyeBottomLimitX
            validateattributes(righteyebottomlimitx, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'RightEyeBottomLimitX');
            
            obj.JavaMessage.setRightEyeBottomLimitX(righteyebottomlimitx.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.RightEyeBottomLimitX)
                obj.Cache.RightEyeBottomLimitX.setJavaObject(righteyebottomlimitx.getJavaObject);
            end
        end
        
        function righteyebottomlimity = get.RightEyeBottomLimitY(obj)
            %get.RightEyeBottomLimitY Get the value for property RightEyeBottomLimitY
            if isempty(obj.Cache.RightEyeBottomLimitY)
                obj.Cache.RightEyeBottomLimitY = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getRightEyeBottomLimitY);
            end
            righteyebottomlimity = obj.Cache.RightEyeBottomLimitY;
        end
        
        function set.RightEyeBottomLimitY(obj, righteyebottomlimity)
            %set.RightEyeBottomLimitY Set the value for property RightEyeBottomLimitY
            validateattributes(righteyebottomlimity, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'RightEyeBottomLimitY');
            
            obj.JavaMessage.setRightEyeBottomLimitY(righteyebottomlimity.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.RightEyeBottomLimitY)
                obj.Cache.RightEyeBottomLimitY.setJavaObject(righteyebottomlimity.getJavaObject);
            end
        end
        
        function righteyemidtopearlimitx = get.RightEyeMidTopEarLimitX(obj)
            %get.RightEyeMidTopEarLimitX Get the value for property RightEyeMidTopEarLimitX
            if isempty(obj.Cache.RightEyeMidTopEarLimitX)
                obj.Cache.RightEyeMidTopEarLimitX = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getRightEyeMidTopEarLimitX);
            end
            righteyemidtopearlimitx = obj.Cache.RightEyeMidTopEarLimitX;
        end
        
        function set.RightEyeMidTopEarLimitX(obj, righteyemidtopearlimitx)
            %set.RightEyeMidTopEarLimitX Set the value for property RightEyeMidTopEarLimitX
            validateattributes(righteyemidtopearlimitx, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'RightEyeMidTopEarLimitX');
            
            obj.JavaMessage.setRightEyeMidTopEarLimitX(righteyemidtopearlimitx.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.RightEyeMidTopEarLimitX)
                obj.Cache.RightEyeMidTopEarLimitX.setJavaObject(righteyemidtopearlimitx.getJavaObject);
            end
        end
        
        function righteyemidtopearlimity = get.RightEyeMidTopEarLimitY(obj)
            %get.RightEyeMidTopEarLimitY Get the value for property RightEyeMidTopEarLimitY
            if isempty(obj.Cache.RightEyeMidTopEarLimitY)
                obj.Cache.RightEyeMidTopEarLimitY = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getRightEyeMidTopEarLimitY);
            end
            righteyemidtopearlimity = obj.Cache.RightEyeMidTopEarLimitY;
        end
        
        function set.RightEyeMidTopEarLimitY(obj, righteyemidtopearlimity)
            %set.RightEyeMidTopEarLimitY Set the value for property RightEyeMidTopEarLimitY
            validateattributes(righteyemidtopearlimity, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'RightEyeMidTopEarLimitY');
            
            obj.JavaMessage.setRightEyeMidTopEarLimitY(righteyemidtopearlimity.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.RightEyeMidTopEarLimitY)
                obj.Cache.RightEyeMidTopEarLimitY.setJavaObject(righteyemidtopearlimity.getJavaObject);
            end
        end
        
        function righteyemidtopnoselimitx = get.RightEyeMidTopNoseLimitX(obj)
            %get.RightEyeMidTopNoseLimitX Get the value for property RightEyeMidTopNoseLimitX
            if isempty(obj.Cache.RightEyeMidTopNoseLimitX)
                obj.Cache.RightEyeMidTopNoseLimitX = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getRightEyeMidTopNoseLimitX);
            end
            righteyemidtopnoselimitx = obj.Cache.RightEyeMidTopNoseLimitX;
        end
        
        function set.RightEyeMidTopNoseLimitX(obj, righteyemidtopnoselimitx)
            %set.RightEyeMidTopNoseLimitX Set the value for property RightEyeMidTopNoseLimitX
            validateattributes(righteyemidtopnoselimitx, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'RightEyeMidTopNoseLimitX');
            
            obj.JavaMessage.setRightEyeMidTopNoseLimitX(righteyemidtopnoselimitx.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.RightEyeMidTopNoseLimitX)
                obj.Cache.RightEyeMidTopNoseLimitX.setJavaObject(righteyemidtopnoselimitx.getJavaObject);
            end
        end
        
        function righteyemidtopnoselimity = get.RightEyeMidTopNoseLimitY(obj)
            %get.RightEyeMidTopNoseLimitY Get the value for property RightEyeMidTopNoseLimitY
            if isempty(obj.Cache.RightEyeMidTopNoseLimitY)
                obj.Cache.RightEyeMidTopNoseLimitY = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getRightEyeMidTopNoseLimitY);
            end
            righteyemidtopnoselimity = obj.Cache.RightEyeMidTopNoseLimitY;
        end
        
        function set.RightEyeMidTopNoseLimitY(obj, righteyemidtopnoselimity)
            %set.RightEyeMidTopNoseLimitY Set the value for property RightEyeMidTopNoseLimitY
            validateattributes(righteyemidtopnoselimity, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'RightEyeMidTopNoseLimitY');
            
            obj.JavaMessage.setRightEyeMidTopNoseLimitY(righteyemidtopnoselimity.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.RightEyeMidTopNoseLimitY)
                obj.Cache.RightEyeMidTopNoseLimitY.setJavaObject(righteyemidtopnoselimity.getJavaObject);
            end
        end
        
        function lefteyeeyecenterx = get.LeftEyeEyeCenterX(obj)
            %get.LeftEyeEyeCenterX Get the value for property LeftEyeEyeCenterX
            if isempty(obj.Cache.LeftEyeEyeCenterX)
                obj.Cache.LeftEyeEyeCenterX = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getLeftEyeEyeCenterX);
            end
            lefteyeeyecenterx = obj.Cache.LeftEyeEyeCenterX;
        end
        
        function set.LeftEyeEyeCenterX(obj, lefteyeeyecenterx)
            %set.LeftEyeEyeCenterX Set the value for property LeftEyeEyeCenterX
            validateattributes(lefteyeeyecenterx, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'LeftEyeEyeCenterX');
            
            obj.JavaMessage.setLeftEyeEyeCenterX(lefteyeeyecenterx.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.LeftEyeEyeCenterX)
                obj.Cache.LeftEyeEyeCenterX.setJavaObject(lefteyeeyecenterx.getJavaObject);
            end
        end
        
        function lefteyeeyecentery = get.LeftEyeEyeCenterY(obj)
            %get.LeftEyeEyeCenterY Get the value for property LeftEyeEyeCenterY
            if isempty(obj.Cache.LeftEyeEyeCenterY)
                obj.Cache.LeftEyeEyeCenterY = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getLeftEyeEyeCenterY);
            end
            lefteyeeyecentery = obj.Cache.LeftEyeEyeCenterY;
        end
        
        function set.LeftEyeEyeCenterY(obj, lefteyeeyecentery)
            %set.LeftEyeEyeCenterY Set the value for property LeftEyeEyeCenterY
            validateattributes(lefteyeeyecentery, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'LeftEyeEyeCenterY');
            
            obj.JavaMessage.setLeftEyeEyeCenterY(lefteyeeyecentery.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.LeftEyeEyeCenterY)
                obj.Cache.LeftEyeEyeCenterY.setJavaObject(lefteyeeyecentery.getJavaObject);
            end
        end
        
        function lefteyenosesidelimitx = get.LeftEyeNoseSideLimitX(obj)
            %get.LeftEyeNoseSideLimitX Get the value for property LeftEyeNoseSideLimitX
            if isempty(obj.Cache.LeftEyeNoseSideLimitX)
                obj.Cache.LeftEyeNoseSideLimitX = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getLeftEyeNoseSideLimitX);
            end
            lefteyenosesidelimitx = obj.Cache.LeftEyeNoseSideLimitX;
        end
        
        function set.LeftEyeNoseSideLimitX(obj, lefteyenosesidelimitx)
            %set.LeftEyeNoseSideLimitX Set the value for property LeftEyeNoseSideLimitX
            validateattributes(lefteyenosesidelimitx, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'LeftEyeNoseSideLimitX');
            
            obj.JavaMessage.setLeftEyeNoseSideLimitX(lefteyenosesidelimitx.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.LeftEyeNoseSideLimitX)
                obj.Cache.LeftEyeNoseSideLimitX.setJavaObject(lefteyenosesidelimitx.getJavaObject);
            end
        end
        
        function lefteyenosesidelimity = get.LeftEyeNoseSideLimitY(obj)
            %get.LeftEyeNoseSideLimitY Get the value for property LeftEyeNoseSideLimitY
            if isempty(obj.Cache.LeftEyeNoseSideLimitY)
                obj.Cache.LeftEyeNoseSideLimitY = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getLeftEyeNoseSideLimitY);
            end
            lefteyenosesidelimity = obj.Cache.LeftEyeNoseSideLimitY;
        end
        
        function set.LeftEyeNoseSideLimitY(obj, lefteyenosesidelimity)
            %set.LeftEyeNoseSideLimitY Set the value for property LeftEyeNoseSideLimitY
            validateattributes(lefteyenosesidelimity, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'LeftEyeNoseSideLimitY');
            
            obj.JavaMessage.setLeftEyeNoseSideLimitY(lefteyenosesidelimity.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.LeftEyeNoseSideLimitY)
                obj.Cache.LeftEyeNoseSideLimitY.setJavaObject(lefteyenosesidelimity.getJavaObject);
            end
        end
        
        function lefteyeearsidelimitx = get.LeftEyeEarSideLimitX(obj)
            %get.LeftEyeEarSideLimitX Get the value for property LeftEyeEarSideLimitX
            if isempty(obj.Cache.LeftEyeEarSideLimitX)
                obj.Cache.LeftEyeEarSideLimitX = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getLeftEyeEarSideLimitX);
            end
            lefteyeearsidelimitx = obj.Cache.LeftEyeEarSideLimitX;
        end
        
        function set.LeftEyeEarSideLimitX(obj, lefteyeearsidelimitx)
            %set.LeftEyeEarSideLimitX Set the value for property LeftEyeEarSideLimitX
            validateattributes(lefteyeearsidelimitx, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'LeftEyeEarSideLimitX');
            
            obj.JavaMessage.setLeftEyeEarSideLimitX(lefteyeearsidelimitx.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.LeftEyeEarSideLimitX)
                obj.Cache.LeftEyeEarSideLimitX.setJavaObject(lefteyeearsidelimitx.getJavaObject);
            end
        end
        
        function lefteyeearsidelimity = get.LeftEyeEarSideLimitY(obj)
            %get.LeftEyeEarSideLimitY Get the value for property LeftEyeEarSideLimitY
            if isempty(obj.Cache.LeftEyeEarSideLimitY)
                obj.Cache.LeftEyeEarSideLimitY = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getLeftEyeEarSideLimitY);
            end
            lefteyeearsidelimity = obj.Cache.LeftEyeEarSideLimitY;
        end
        
        function set.LeftEyeEarSideLimitY(obj, lefteyeearsidelimity)
            %set.LeftEyeEarSideLimitY Set the value for property LeftEyeEarSideLimitY
            validateattributes(lefteyeearsidelimity, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'LeftEyeEarSideLimitY');
            
            obj.JavaMessage.setLeftEyeEarSideLimitY(lefteyeearsidelimity.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.LeftEyeEarSideLimitY)
                obj.Cache.LeftEyeEarSideLimitY.setJavaObject(lefteyeearsidelimity.getJavaObject);
            end
        end
        
        function lefteyetoplimitx = get.LeftEyeTopLimitX(obj)
            %get.LeftEyeTopLimitX Get the value for property LeftEyeTopLimitX
            if isempty(obj.Cache.LeftEyeTopLimitX)
                obj.Cache.LeftEyeTopLimitX = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getLeftEyeTopLimitX);
            end
            lefteyetoplimitx = obj.Cache.LeftEyeTopLimitX;
        end
        
        function set.LeftEyeTopLimitX(obj, lefteyetoplimitx)
            %set.LeftEyeTopLimitX Set the value for property LeftEyeTopLimitX
            validateattributes(lefteyetoplimitx, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'LeftEyeTopLimitX');
            
            obj.JavaMessage.setLeftEyeTopLimitX(lefteyetoplimitx.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.LeftEyeTopLimitX)
                obj.Cache.LeftEyeTopLimitX.setJavaObject(lefteyetoplimitx.getJavaObject);
            end
        end
        
        function lefteyetoplimity = get.LeftEyeTopLimitY(obj)
            %get.LeftEyeTopLimitY Get the value for property LeftEyeTopLimitY
            if isempty(obj.Cache.LeftEyeTopLimitY)
                obj.Cache.LeftEyeTopLimitY = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getLeftEyeTopLimitY);
            end
            lefteyetoplimity = obj.Cache.LeftEyeTopLimitY;
        end
        
        function set.LeftEyeTopLimitY(obj, lefteyetoplimity)
            %set.LeftEyeTopLimitY Set the value for property LeftEyeTopLimitY
            validateattributes(lefteyetoplimity, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'LeftEyeTopLimitY');
            
            obj.JavaMessage.setLeftEyeTopLimitY(lefteyetoplimity.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.LeftEyeTopLimitY)
                obj.Cache.LeftEyeTopLimitY.setJavaObject(lefteyetoplimity.getJavaObject);
            end
        end
        
        function lefteyebottomlimitx = get.LeftEyeBottomLimitX(obj)
            %get.LeftEyeBottomLimitX Get the value for property LeftEyeBottomLimitX
            if isempty(obj.Cache.LeftEyeBottomLimitX)
                obj.Cache.LeftEyeBottomLimitX = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getLeftEyeBottomLimitX);
            end
            lefteyebottomlimitx = obj.Cache.LeftEyeBottomLimitX;
        end
        
        function set.LeftEyeBottomLimitX(obj, lefteyebottomlimitx)
            %set.LeftEyeBottomLimitX Set the value for property LeftEyeBottomLimitX
            validateattributes(lefteyebottomlimitx, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'LeftEyeBottomLimitX');
            
            obj.JavaMessage.setLeftEyeBottomLimitX(lefteyebottomlimitx.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.LeftEyeBottomLimitX)
                obj.Cache.LeftEyeBottomLimitX.setJavaObject(lefteyebottomlimitx.getJavaObject);
            end
        end
        
        function lefteyebottomlimity = get.LeftEyeBottomLimitY(obj)
            %get.LeftEyeBottomLimitY Get the value for property LeftEyeBottomLimitY
            if isempty(obj.Cache.LeftEyeBottomLimitY)
                obj.Cache.LeftEyeBottomLimitY = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getLeftEyeBottomLimitY);
            end
            lefteyebottomlimity = obj.Cache.LeftEyeBottomLimitY;
        end
        
        function set.LeftEyeBottomLimitY(obj, lefteyebottomlimity)
            %set.LeftEyeBottomLimitY Set the value for property LeftEyeBottomLimitY
            validateattributes(lefteyebottomlimity, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'LeftEyeBottomLimitY');
            
            obj.JavaMessage.setLeftEyeBottomLimitY(lefteyebottomlimity.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.LeftEyeBottomLimitY)
                obj.Cache.LeftEyeBottomLimitY.setJavaObject(lefteyebottomlimity.getJavaObject);
            end
        end
        
        function lefteyemidtopearlimitx = get.LeftEyeMidTopEarLimitX(obj)
            %get.LeftEyeMidTopEarLimitX Get the value for property LeftEyeMidTopEarLimitX
            if isempty(obj.Cache.LeftEyeMidTopEarLimitX)
                obj.Cache.LeftEyeMidTopEarLimitX = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getLeftEyeMidTopEarLimitX);
            end
            lefteyemidtopearlimitx = obj.Cache.LeftEyeMidTopEarLimitX;
        end
        
        function set.LeftEyeMidTopEarLimitX(obj, lefteyemidtopearlimitx)
            %set.LeftEyeMidTopEarLimitX Set the value for property LeftEyeMidTopEarLimitX
            validateattributes(lefteyemidtopearlimitx, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'LeftEyeMidTopEarLimitX');
            
            obj.JavaMessage.setLeftEyeMidTopEarLimitX(lefteyemidtopearlimitx.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.LeftEyeMidTopEarLimitX)
                obj.Cache.LeftEyeMidTopEarLimitX.setJavaObject(lefteyemidtopearlimitx.getJavaObject);
            end
        end
        
        function lefteyemidtopearlimity = get.LeftEyeMidTopEarLimitY(obj)
            %get.LeftEyeMidTopEarLimitY Get the value for property LeftEyeMidTopEarLimitY
            if isempty(obj.Cache.LeftEyeMidTopEarLimitY)
                obj.Cache.LeftEyeMidTopEarLimitY = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getLeftEyeMidTopEarLimitY);
            end
            lefteyemidtopearlimity = obj.Cache.LeftEyeMidTopEarLimitY;
        end
        
        function set.LeftEyeMidTopEarLimitY(obj, lefteyemidtopearlimity)
            %set.LeftEyeMidTopEarLimitY Set the value for property LeftEyeMidTopEarLimitY
            validateattributes(lefteyemidtopearlimity, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'LeftEyeMidTopEarLimitY');
            
            obj.JavaMessage.setLeftEyeMidTopEarLimitY(lefteyemidtopearlimity.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.LeftEyeMidTopEarLimitY)
                obj.Cache.LeftEyeMidTopEarLimitY.setJavaObject(lefteyemidtopearlimity.getJavaObject);
            end
        end
        
        function lefteyemidtopnoselimitx = get.LeftEyeMidTopNoseLimitX(obj)
            %get.LeftEyeMidTopNoseLimitX Get the value for property LeftEyeMidTopNoseLimitX
            if isempty(obj.Cache.LeftEyeMidTopNoseLimitX)
                obj.Cache.LeftEyeMidTopNoseLimitX = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getLeftEyeMidTopNoseLimitX);
            end
            lefteyemidtopnoselimitx = obj.Cache.LeftEyeMidTopNoseLimitX;
        end
        
        function set.LeftEyeMidTopNoseLimitX(obj, lefteyemidtopnoselimitx)
            %set.LeftEyeMidTopNoseLimitX Set the value for property LeftEyeMidTopNoseLimitX
            validateattributes(lefteyemidtopnoselimitx, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'LeftEyeMidTopNoseLimitX');
            
            obj.JavaMessage.setLeftEyeMidTopNoseLimitX(lefteyemidtopnoselimitx.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.LeftEyeMidTopNoseLimitX)
                obj.Cache.LeftEyeMidTopNoseLimitX.setJavaObject(lefteyemidtopnoselimitx.getJavaObject);
            end
        end
        
        function lefteyemidtopnoselimity = get.LeftEyeMidTopNoseLimitY(obj)
            %get.LeftEyeMidTopNoseLimitY Get the value for property LeftEyeMidTopNoseLimitY
            if isempty(obj.Cache.LeftEyeMidTopNoseLimitY)
                obj.Cache.LeftEyeMidTopNoseLimitY = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getLeftEyeMidTopNoseLimitY);
            end
            lefteyemidtopnoselimity = obj.Cache.LeftEyeMidTopNoseLimitY;
        end
        
        function set.LeftEyeMidTopNoseLimitY(obj, lefteyemidtopnoselimity)
            %set.LeftEyeMidTopNoseLimitY Set the value for property LeftEyeMidTopNoseLimitY
            validateattributes(lefteyemidtopnoselimity, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'LeftEyeMidTopNoseLimitY');
            
            obj.JavaMessage.setLeftEyeMidTopNoseLimitY(lefteyemidtopnoselimity.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.LeftEyeMidTopNoseLimitY)
                obj.Cache.LeftEyeMidTopNoseLimitY.setJavaObject(lefteyemidtopnoselimity.getJavaObject);
            end
        end
        
        function righteyebrownosesidelimitx = get.RightEyebrowNoseSideLimitX(obj)
            %get.RightEyebrowNoseSideLimitX Get the value for property RightEyebrowNoseSideLimitX
            if isempty(obj.Cache.RightEyebrowNoseSideLimitX)
                obj.Cache.RightEyebrowNoseSideLimitX = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getRightEyebrowNoseSideLimitX);
            end
            righteyebrownosesidelimitx = obj.Cache.RightEyebrowNoseSideLimitX;
        end
        
        function set.RightEyebrowNoseSideLimitX(obj, righteyebrownosesidelimitx)
            %set.RightEyebrowNoseSideLimitX Set the value for property RightEyebrowNoseSideLimitX
            validateattributes(righteyebrownosesidelimitx, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'RightEyebrowNoseSideLimitX');
            
            obj.JavaMessage.setRightEyebrowNoseSideLimitX(righteyebrownosesidelimitx.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.RightEyebrowNoseSideLimitX)
                obj.Cache.RightEyebrowNoseSideLimitX.setJavaObject(righteyebrownosesidelimitx.getJavaObject);
            end
        end
        
        function righteyebrownosesidelimity = get.RightEyebrowNoseSideLimitY(obj)
            %get.RightEyebrowNoseSideLimitY Get the value for property RightEyebrowNoseSideLimitY
            if isempty(obj.Cache.RightEyebrowNoseSideLimitY)
                obj.Cache.RightEyebrowNoseSideLimitY = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getRightEyebrowNoseSideLimitY);
            end
            righteyebrownosesidelimity = obj.Cache.RightEyebrowNoseSideLimitY;
        end
        
        function set.RightEyebrowNoseSideLimitY(obj, righteyebrownosesidelimity)
            %set.RightEyebrowNoseSideLimitY Set the value for property RightEyebrowNoseSideLimitY
            validateattributes(righteyebrownosesidelimity, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'RightEyebrowNoseSideLimitY');
            
            obj.JavaMessage.setRightEyebrowNoseSideLimitY(righteyebrownosesidelimity.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.RightEyebrowNoseSideLimitY)
                obj.Cache.RightEyebrowNoseSideLimitY.setJavaObject(righteyebrownosesidelimity.getJavaObject);
            end
        end
        
        function righteyebrowcenterx = get.RightEyebrowCenterX(obj)
            %get.RightEyebrowCenterX Get the value for property RightEyebrowCenterX
            if isempty(obj.Cache.RightEyebrowCenterX)
                obj.Cache.RightEyebrowCenterX = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getRightEyebrowCenterX);
            end
            righteyebrowcenterx = obj.Cache.RightEyebrowCenterX;
        end
        
        function set.RightEyebrowCenterX(obj, righteyebrowcenterx)
            %set.RightEyebrowCenterX Set the value for property RightEyebrowCenterX
            validateattributes(righteyebrowcenterx, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'RightEyebrowCenterX');
            
            obj.JavaMessage.setRightEyebrowCenterX(righteyebrowcenterx.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.RightEyebrowCenterX)
                obj.Cache.RightEyebrowCenterX.setJavaObject(righteyebrowcenterx.getJavaObject);
            end
        end
        
        function righteyebrowcentery = get.RightEyebrowCenterY(obj)
            %get.RightEyebrowCenterY Get the value for property RightEyebrowCenterY
            if isempty(obj.Cache.RightEyebrowCenterY)
                obj.Cache.RightEyebrowCenterY = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getRightEyebrowCenterY);
            end
            righteyebrowcentery = obj.Cache.RightEyebrowCenterY;
        end
        
        function set.RightEyebrowCenterY(obj, righteyebrowcentery)
            %set.RightEyebrowCenterY Set the value for property RightEyebrowCenterY
            validateattributes(righteyebrowcentery, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'RightEyebrowCenterY');
            
            obj.JavaMessage.setRightEyebrowCenterY(righteyebrowcentery.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.RightEyebrowCenterY)
                obj.Cache.RightEyebrowCenterY.setJavaObject(righteyebrowcentery.getJavaObject);
            end
        end
        
        function righteyebrowearsidelimitx = get.RightEyebrowEarSideLimitX(obj)
            %get.RightEyebrowEarSideLimitX Get the value for property RightEyebrowEarSideLimitX
            if isempty(obj.Cache.RightEyebrowEarSideLimitX)
                obj.Cache.RightEyebrowEarSideLimitX = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getRightEyebrowEarSideLimitX);
            end
            righteyebrowearsidelimitx = obj.Cache.RightEyebrowEarSideLimitX;
        end
        
        function set.RightEyebrowEarSideLimitX(obj, righteyebrowearsidelimitx)
            %set.RightEyebrowEarSideLimitX Set the value for property RightEyebrowEarSideLimitX
            validateattributes(righteyebrowearsidelimitx, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'RightEyebrowEarSideLimitX');
            
            obj.JavaMessage.setRightEyebrowEarSideLimitX(righteyebrowearsidelimitx.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.RightEyebrowEarSideLimitX)
                obj.Cache.RightEyebrowEarSideLimitX.setJavaObject(righteyebrowearsidelimitx.getJavaObject);
            end
        end
        
        function righteyebrowearsidelimity = get.RightEyebrowEarSideLimitY(obj)
            %get.RightEyebrowEarSideLimitY Get the value for property RightEyebrowEarSideLimitY
            if isempty(obj.Cache.RightEyebrowEarSideLimitY)
                obj.Cache.RightEyebrowEarSideLimitY = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getRightEyebrowEarSideLimitY);
            end
            righteyebrowearsidelimity = obj.Cache.RightEyebrowEarSideLimitY;
        end
        
        function set.RightEyebrowEarSideLimitY(obj, righteyebrowearsidelimity)
            %set.RightEyebrowEarSideLimitY Set the value for property RightEyebrowEarSideLimitY
            validateattributes(righteyebrowearsidelimity, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'RightEyebrowEarSideLimitY');
            
            obj.JavaMessage.setRightEyebrowEarSideLimitY(righteyebrowearsidelimity.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.RightEyebrowEarSideLimitY)
                obj.Cache.RightEyebrowEarSideLimitY.setJavaObject(righteyebrowearsidelimity.getJavaObject);
            end
        end
        
        function lefteyebrownosesidelimitx = get.LeftEyebrowNoseSideLimitX(obj)
            %get.LeftEyebrowNoseSideLimitX Get the value for property LeftEyebrowNoseSideLimitX
            if isempty(obj.Cache.LeftEyebrowNoseSideLimitX)
                obj.Cache.LeftEyebrowNoseSideLimitX = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getLeftEyebrowNoseSideLimitX);
            end
            lefteyebrownosesidelimitx = obj.Cache.LeftEyebrowNoseSideLimitX;
        end
        
        function set.LeftEyebrowNoseSideLimitX(obj, lefteyebrownosesidelimitx)
            %set.LeftEyebrowNoseSideLimitX Set the value for property LeftEyebrowNoseSideLimitX
            validateattributes(lefteyebrownosesidelimitx, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'LeftEyebrowNoseSideLimitX');
            
            obj.JavaMessage.setLeftEyebrowNoseSideLimitX(lefteyebrownosesidelimitx.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.LeftEyebrowNoseSideLimitX)
                obj.Cache.LeftEyebrowNoseSideLimitX.setJavaObject(lefteyebrownosesidelimitx.getJavaObject);
            end
        end
        
        function lefteyebrownosesidelimity = get.LeftEyebrowNoseSideLimitY(obj)
            %get.LeftEyebrowNoseSideLimitY Get the value for property LeftEyebrowNoseSideLimitY
            if isempty(obj.Cache.LeftEyebrowNoseSideLimitY)
                obj.Cache.LeftEyebrowNoseSideLimitY = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getLeftEyebrowNoseSideLimitY);
            end
            lefteyebrownosesidelimity = obj.Cache.LeftEyebrowNoseSideLimitY;
        end
        
        function set.LeftEyebrowNoseSideLimitY(obj, lefteyebrownosesidelimity)
            %set.LeftEyebrowNoseSideLimitY Set the value for property LeftEyebrowNoseSideLimitY
            validateattributes(lefteyebrownosesidelimity, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'LeftEyebrowNoseSideLimitY');
            
            obj.JavaMessage.setLeftEyebrowNoseSideLimitY(lefteyebrownosesidelimity.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.LeftEyebrowNoseSideLimitY)
                obj.Cache.LeftEyebrowNoseSideLimitY.setJavaObject(lefteyebrownosesidelimity.getJavaObject);
            end
        end
        
        function lefteyebrowcenterx = get.LeftEyebrowCenterX(obj)
            %get.LeftEyebrowCenterX Get the value for property LeftEyebrowCenterX
            if isempty(obj.Cache.LeftEyebrowCenterX)
                obj.Cache.LeftEyebrowCenterX = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getLeftEyebrowCenterX);
            end
            lefteyebrowcenterx = obj.Cache.LeftEyebrowCenterX;
        end
        
        function set.LeftEyebrowCenterX(obj, lefteyebrowcenterx)
            %set.LeftEyebrowCenterX Set the value for property LeftEyebrowCenterX
            validateattributes(lefteyebrowcenterx, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'LeftEyebrowCenterX');
            
            obj.JavaMessage.setLeftEyebrowCenterX(lefteyebrowcenterx.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.LeftEyebrowCenterX)
                obj.Cache.LeftEyebrowCenterX.setJavaObject(lefteyebrowcenterx.getJavaObject);
            end
        end
        
        function lefteyebrowcentery = get.LeftEyebrowCenterY(obj)
            %get.LeftEyebrowCenterY Get the value for property LeftEyebrowCenterY
            if isempty(obj.Cache.LeftEyebrowCenterY)
                obj.Cache.LeftEyebrowCenterY = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getLeftEyebrowCenterY);
            end
            lefteyebrowcentery = obj.Cache.LeftEyebrowCenterY;
        end
        
        function set.LeftEyebrowCenterY(obj, lefteyebrowcentery)
            %set.LeftEyebrowCenterY Set the value for property LeftEyebrowCenterY
            validateattributes(lefteyebrowcentery, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'LeftEyebrowCenterY');
            
            obj.JavaMessage.setLeftEyebrowCenterY(lefteyebrowcentery.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.LeftEyebrowCenterY)
                obj.Cache.LeftEyebrowCenterY.setJavaObject(lefteyebrowcentery.getJavaObject);
            end
        end
        
        function lefteyebrowearsidelimitx = get.LeftEyebrowEarSideLimitX(obj)
            %get.LeftEyebrowEarSideLimitX Get the value for property LeftEyebrowEarSideLimitX
            if isempty(obj.Cache.LeftEyebrowEarSideLimitX)
                obj.Cache.LeftEyebrowEarSideLimitX = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getLeftEyebrowEarSideLimitX);
            end
            lefteyebrowearsidelimitx = obj.Cache.LeftEyebrowEarSideLimitX;
        end
        
        function set.LeftEyebrowEarSideLimitX(obj, lefteyebrowearsidelimitx)
            %set.LeftEyebrowEarSideLimitX Set the value for property LeftEyebrowEarSideLimitX
            validateattributes(lefteyebrowearsidelimitx, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'LeftEyebrowEarSideLimitX');
            
            obj.JavaMessage.setLeftEyebrowEarSideLimitX(lefteyebrowearsidelimitx.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.LeftEyebrowEarSideLimitX)
                obj.Cache.LeftEyebrowEarSideLimitX.setJavaObject(lefteyebrowearsidelimitx.getJavaObject);
            end
        end
        
        function lefteyebrowearsidelimity = get.LeftEyebrowEarSideLimitY(obj)
            %get.LeftEyebrowEarSideLimitY Get the value for property LeftEyebrowEarSideLimitY
            if isempty(obj.Cache.LeftEyebrowEarSideLimitY)
                obj.Cache.LeftEyebrowEarSideLimitY = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getLeftEyebrowEarSideLimitY);
            end
            lefteyebrowearsidelimity = obj.Cache.LeftEyebrowEarSideLimitY;
        end
        
        function set.LeftEyebrowEarSideLimitY(obj, lefteyebrowearsidelimity)
            %set.LeftEyebrowEarSideLimitY Set the value for property LeftEyebrowEarSideLimitY
            validateattributes(lefteyebrowearsidelimity, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'LeftEyebrowEarSideLimitY');
            
            obj.JavaMessage.setLeftEyebrowEarSideLimitY(lefteyebrowearsidelimity.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.LeftEyebrowEarSideLimitY)
                obj.Cache.LeftEyebrowEarSideLimitY.setJavaObject(lefteyebrowearsidelimity.getJavaObject);
            end
        end
        
        function nosebottomcenterlimitx = get.NoseBottomCenterLimitX(obj)
            %get.NoseBottomCenterLimitX Get the value for property NoseBottomCenterLimitX
            if isempty(obj.Cache.NoseBottomCenterLimitX)
                obj.Cache.NoseBottomCenterLimitX = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getNoseBottomCenterLimitX);
            end
            nosebottomcenterlimitx = obj.Cache.NoseBottomCenterLimitX;
        end
        
        function set.NoseBottomCenterLimitX(obj, nosebottomcenterlimitx)
            %set.NoseBottomCenterLimitX Set the value for property NoseBottomCenterLimitX
            validateattributes(nosebottomcenterlimitx, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'NoseBottomCenterLimitX');
            
            obj.JavaMessage.setNoseBottomCenterLimitX(nosebottomcenterlimitx.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.NoseBottomCenterLimitX)
                obj.Cache.NoseBottomCenterLimitX.setJavaObject(nosebottomcenterlimitx.getJavaObject);
            end
        end
        
        function nosebottomcenterlimity = get.NoseBottomCenterLimitY(obj)
            %get.NoseBottomCenterLimitY Get the value for property NoseBottomCenterLimitY
            if isempty(obj.Cache.NoseBottomCenterLimitY)
                obj.Cache.NoseBottomCenterLimitY = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getNoseBottomCenterLimitY);
            end
            nosebottomcenterlimity = obj.Cache.NoseBottomCenterLimitY;
        end
        
        function set.NoseBottomCenterLimitY(obj, nosebottomcenterlimity)
            %set.NoseBottomCenterLimitY Set the value for property NoseBottomCenterLimitY
            validateattributes(nosebottomcenterlimity, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'NoseBottomCenterLimitY');
            
            obj.JavaMessage.setNoseBottomCenterLimitY(nosebottomcenterlimity.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.NoseBottomCenterLimitY)
                obj.Cache.NoseBottomCenterLimitY.setJavaObject(nosebottomcenterlimity.getJavaObject);
            end
        end
        
        function nosebottomleftlimitx = get.NoseBottomLeftLimitX(obj)
            %get.NoseBottomLeftLimitX Get the value for property NoseBottomLeftLimitX
            if isempty(obj.Cache.NoseBottomLeftLimitX)
                obj.Cache.NoseBottomLeftLimitX = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getNoseBottomLeftLimitX);
            end
            nosebottomleftlimitx = obj.Cache.NoseBottomLeftLimitX;
        end
        
        function set.NoseBottomLeftLimitX(obj, nosebottomleftlimitx)
            %set.NoseBottomLeftLimitX Set the value for property NoseBottomLeftLimitX
            validateattributes(nosebottomleftlimitx, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'NoseBottomLeftLimitX');
            
            obj.JavaMessage.setNoseBottomLeftLimitX(nosebottomleftlimitx.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.NoseBottomLeftLimitX)
                obj.Cache.NoseBottomLeftLimitX.setJavaObject(nosebottomleftlimitx.getJavaObject);
            end
        end
        
        function nosebottomleftlimity = get.NoseBottomLeftLimitY(obj)
            %get.NoseBottomLeftLimitY Get the value for property NoseBottomLeftLimitY
            if isempty(obj.Cache.NoseBottomLeftLimitY)
                obj.Cache.NoseBottomLeftLimitY = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getNoseBottomLeftLimitY);
            end
            nosebottomleftlimity = obj.Cache.NoseBottomLeftLimitY;
        end
        
        function set.NoseBottomLeftLimitY(obj, nosebottomleftlimity)
            %set.NoseBottomLeftLimitY Set the value for property NoseBottomLeftLimitY
            validateattributes(nosebottomleftlimity, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'NoseBottomLeftLimitY');
            
            obj.JavaMessage.setNoseBottomLeftLimitY(nosebottomleftlimity.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.NoseBottomLeftLimitY)
                obj.Cache.NoseBottomLeftLimitY.setJavaObject(nosebottomleftlimity.getJavaObject);
            end
        end
        
        function nosebottomrightlimitx = get.NoseBottomRightLimitX(obj)
            %get.NoseBottomRightLimitX Get the value for property NoseBottomRightLimitX
            if isempty(obj.Cache.NoseBottomRightLimitX)
                obj.Cache.NoseBottomRightLimitX = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getNoseBottomRightLimitX);
            end
            nosebottomrightlimitx = obj.Cache.NoseBottomRightLimitX;
        end
        
        function set.NoseBottomRightLimitX(obj, nosebottomrightlimitx)
            %set.NoseBottomRightLimitX Set the value for property NoseBottomRightLimitX
            validateattributes(nosebottomrightlimitx, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'NoseBottomRightLimitX');
            
            obj.JavaMessage.setNoseBottomRightLimitX(nosebottomrightlimitx.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.NoseBottomRightLimitX)
                obj.Cache.NoseBottomRightLimitX.setJavaObject(nosebottomrightlimitx.getJavaObject);
            end
        end
        
        function nosebottomrightlimity = get.NoseBottomRightLimitY(obj)
            %get.NoseBottomRightLimitY Get the value for property NoseBottomRightLimitY
            if isempty(obj.Cache.NoseBottomRightLimitY)
                obj.Cache.NoseBottomRightLimitY = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getNoseBottomRightLimitY);
            end
            nosebottomrightlimity = obj.Cache.NoseBottomRightLimitY;
        end
        
        function set.NoseBottomRightLimitY(obj, nosebottomrightlimity)
            %set.NoseBottomRightLimitY Set the value for property NoseBottomRightLimitY
            validateattributes(nosebottomrightlimity, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'NoseBottomRightLimitY');
            
            obj.JavaMessage.setNoseBottomRightLimitY(nosebottomrightlimity.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.NoseBottomRightLimitY)
                obj.Cache.NoseBottomRightLimitY.setJavaObject(nosebottomrightlimity.getJavaObject);
            end
        end
        
        function mouthleftlimitx = get.MouthLeftLimitX(obj)
            %get.MouthLeftLimitX Get the value for property MouthLeftLimitX
            if isempty(obj.Cache.MouthLeftLimitX)
                obj.Cache.MouthLeftLimitX = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getMouthLeftLimitX);
            end
            mouthleftlimitx = obj.Cache.MouthLeftLimitX;
        end
        
        function set.MouthLeftLimitX(obj, mouthleftlimitx)
            %set.MouthLeftLimitX Set the value for property MouthLeftLimitX
            validateattributes(mouthleftlimitx, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'MouthLeftLimitX');
            
            obj.JavaMessage.setMouthLeftLimitX(mouthleftlimitx.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.MouthLeftLimitX)
                obj.Cache.MouthLeftLimitX.setJavaObject(mouthleftlimitx.getJavaObject);
            end
        end
        
        function mouthleftlimity = get.MouthLeftLimitY(obj)
            %get.MouthLeftLimitY Get the value for property MouthLeftLimitY
            if isempty(obj.Cache.MouthLeftLimitY)
                obj.Cache.MouthLeftLimitY = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getMouthLeftLimitY);
            end
            mouthleftlimity = obj.Cache.MouthLeftLimitY;
        end
        
        function set.MouthLeftLimitY(obj, mouthleftlimity)
            %set.MouthLeftLimitY Set the value for property MouthLeftLimitY
            validateattributes(mouthleftlimity, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'MouthLeftLimitY');
            
            obj.JavaMessage.setMouthLeftLimitY(mouthleftlimity.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.MouthLeftLimitY)
                obj.Cache.MouthLeftLimitY.setJavaObject(mouthleftlimity.getJavaObject);
            end
        end
        
        function mouthrightlimitx = get.MouthRightLimitX(obj)
            %get.MouthRightLimitX Get the value for property MouthRightLimitX
            if isempty(obj.Cache.MouthRightLimitX)
                obj.Cache.MouthRightLimitX = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getMouthRightLimitX);
            end
            mouthrightlimitx = obj.Cache.MouthRightLimitX;
        end
        
        function set.MouthRightLimitX(obj, mouthrightlimitx)
            %set.MouthRightLimitX Set the value for property MouthRightLimitX
            validateattributes(mouthrightlimitx, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'MouthRightLimitX');
            
            obj.JavaMessage.setMouthRightLimitX(mouthrightlimitx.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.MouthRightLimitX)
                obj.Cache.MouthRightLimitX.setJavaObject(mouthrightlimitx.getJavaObject);
            end
        end
        
        function mouthrightlimity = get.MouthRightLimitY(obj)
            %get.MouthRightLimitY Get the value for property MouthRightLimitY
            if isempty(obj.Cache.MouthRightLimitY)
                obj.Cache.MouthRightLimitY = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getMouthRightLimitY);
            end
            mouthrightlimity = obj.Cache.MouthRightLimitY;
        end
        
        function set.MouthRightLimitY(obj, mouthrightlimity)
            %set.MouthRightLimitY Set the value for property MouthRightLimitY
            validateattributes(mouthrightlimity, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'MouthRightLimitY');
            
            obj.JavaMessage.setMouthRightLimitY(mouthrightlimity.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.MouthRightLimitY)
                obj.Cache.MouthRightLimitY.setJavaObject(mouthrightlimity.getJavaObject);
            end
        end
        
        function mouthtoplimitx = get.MouthTopLimitX(obj)
            %get.MouthTopLimitX Get the value for property MouthTopLimitX
            if isempty(obj.Cache.MouthTopLimitX)
                obj.Cache.MouthTopLimitX = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getMouthTopLimitX);
            end
            mouthtoplimitx = obj.Cache.MouthTopLimitX;
        end
        
        function set.MouthTopLimitX(obj, mouthtoplimitx)
            %set.MouthTopLimitX Set the value for property MouthTopLimitX
            validateattributes(mouthtoplimitx, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'MouthTopLimitX');
            
            obj.JavaMessage.setMouthTopLimitX(mouthtoplimitx.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.MouthTopLimitX)
                obj.Cache.MouthTopLimitX.setJavaObject(mouthtoplimitx.getJavaObject);
            end
        end
        
        function mouthtoplimity = get.MouthTopLimitY(obj)
            %get.MouthTopLimitY Get the value for property MouthTopLimitY
            if isempty(obj.Cache.MouthTopLimitY)
                obj.Cache.MouthTopLimitY = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getMouthTopLimitY);
            end
            mouthtoplimity = obj.Cache.MouthTopLimitY;
        end
        
        function set.MouthTopLimitY(obj, mouthtoplimity)
            %set.MouthTopLimitY Set the value for property MouthTopLimitY
            validateattributes(mouthtoplimity, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'MouthTopLimitY');
            
            obj.JavaMessage.setMouthTopLimitY(mouthtoplimity.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.MouthTopLimitY)
                obj.Cache.MouthTopLimitY.setJavaObject(mouthtoplimity.getJavaObject);
            end
        end
        
        function mouthbottomlimitx = get.MouthBottomLimitX(obj)
            %get.MouthBottomLimitX Get the value for property MouthBottomLimitX
            if isempty(obj.Cache.MouthBottomLimitX)
                obj.Cache.MouthBottomLimitX = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getMouthBottomLimitX);
            end
            mouthbottomlimitx = obj.Cache.MouthBottomLimitX;
        end
        
        function set.MouthBottomLimitX(obj, mouthbottomlimitx)
            %set.MouthBottomLimitX Set the value for property MouthBottomLimitX
            validateattributes(mouthbottomlimitx, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'MouthBottomLimitX');
            
            obj.JavaMessage.setMouthBottomLimitX(mouthbottomlimitx.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.MouthBottomLimitX)
                obj.Cache.MouthBottomLimitX.setJavaObject(mouthbottomlimitx.getJavaObject);
            end
        end
        
        function mouthbottomlimity = get.MouthBottomLimitY(obj)
            %get.MouthBottomLimitY Get the value for property MouthBottomLimitY
            if isempty(obj.Cache.MouthBottomLimitY)
                obj.Cache.MouthBottomLimitY = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getMouthBottomLimitY);
            end
            mouthbottomlimity = obj.Cache.MouthBottomLimitY;
        end
        
        function set.MouthBottomLimitY(obj, mouthbottomlimity)
            %set.MouthBottomLimitY Set the value for property MouthBottomLimitY
            validateattributes(mouthbottomlimity, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'MouthBottomLimitY');
            
            obj.JavaMessage.setMouthBottomLimitY(mouthbottomlimity.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.MouthBottomLimitY)
                obj.Cache.MouthBottomLimitY.setJavaObject(mouthbottomlimity.getJavaObject);
            end
        end
        
        function mouthmidtopleftlimitx = get.MouthMidTopLeftLimitX(obj)
            %get.MouthMidTopLeftLimitX Get the value for property MouthMidTopLeftLimitX
            if isempty(obj.Cache.MouthMidTopLeftLimitX)
                obj.Cache.MouthMidTopLeftLimitX = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getMouthMidTopLeftLimitX);
            end
            mouthmidtopleftlimitx = obj.Cache.MouthMidTopLeftLimitX;
        end
        
        function set.MouthMidTopLeftLimitX(obj, mouthmidtopleftlimitx)
            %set.MouthMidTopLeftLimitX Set the value for property MouthMidTopLeftLimitX
            validateattributes(mouthmidtopleftlimitx, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'MouthMidTopLeftLimitX');
            
            obj.JavaMessage.setMouthMidTopLeftLimitX(mouthmidtopleftlimitx.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.MouthMidTopLeftLimitX)
                obj.Cache.MouthMidTopLeftLimitX.setJavaObject(mouthmidtopleftlimitx.getJavaObject);
            end
        end
        
        function mouthmidtopleftlimity = get.MouthMidTopLeftLimitY(obj)
            %get.MouthMidTopLeftLimitY Get the value for property MouthMidTopLeftLimitY
            if isempty(obj.Cache.MouthMidTopLeftLimitY)
                obj.Cache.MouthMidTopLeftLimitY = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getMouthMidTopLeftLimitY);
            end
            mouthmidtopleftlimity = obj.Cache.MouthMidTopLeftLimitY;
        end
        
        function set.MouthMidTopLeftLimitY(obj, mouthmidtopleftlimity)
            %set.MouthMidTopLeftLimitY Set the value for property MouthMidTopLeftLimitY
            validateattributes(mouthmidtopleftlimity, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'MouthMidTopLeftLimitY');
            
            obj.JavaMessage.setMouthMidTopLeftLimitY(mouthmidtopleftlimity.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.MouthMidTopLeftLimitY)
                obj.Cache.MouthMidTopLeftLimitY.setJavaObject(mouthmidtopleftlimity.getJavaObject);
            end
        end
        
        function mouthmidtoprightlimitx = get.MouthMidTopRightLimitX(obj)
            %get.MouthMidTopRightLimitX Get the value for property MouthMidTopRightLimitX
            if isempty(obj.Cache.MouthMidTopRightLimitX)
                obj.Cache.MouthMidTopRightLimitX = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getMouthMidTopRightLimitX);
            end
            mouthmidtoprightlimitx = obj.Cache.MouthMidTopRightLimitX;
        end
        
        function set.MouthMidTopRightLimitX(obj, mouthmidtoprightlimitx)
            %set.MouthMidTopRightLimitX Set the value for property MouthMidTopRightLimitX
            validateattributes(mouthmidtoprightlimitx, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'MouthMidTopRightLimitX');
            
            obj.JavaMessage.setMouthMidTopRightLimitX(mouthmidtoprightlimitx.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.MouthMidTopRightLimitX)
                obj.Cache.MouthMidTopRightLimitX.setJavaObject(mouthmidtoprightlimitx.getJavaObject);
            end
        end
        
        function mouthmidtoprightlimity = get.MouthMidTopRightLimitY(obj)
            %get.MouthMidTopRightLimitY Get the value for property MouthMidTopRightLimitY
            if isempty(obj.Cache.MouthMidTopRightLimitY)
                obj.Cache.MouthMidTopRightLimitY = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getMouthMidTopRightLimitY);
            end
            mouthmidtoprightlimity = obj.Cache.MouthMidTopRightLimitY;
        end
        
        function set.MouthMidTopRightLimitY(obj, mouthmidtoprightlimity)
            %set.MouthMidTopRightLimitY Set the value for property MouthMidTopRightLimitY
            validateattributes(mouthmidtoprightlimity, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'MouthMidTopRightLimitY');
            
            obj.JavaMessage.setMouthMidTopRightLimitY(mouthmidtoprightlimity.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.MouthMidTopRightLimitY)
                obj.Cache.MouthMidTopRightLimitY.setJavaObject(mouthmidtoprightlimity.getJavaObject);
            end
        end
        
        function mouthmidbottomrightlimitx = get.MouthMidBottomRightLimitX(obj)
            %get.MouthMidBottomRightLimitX Get the value for property MouthMidBottomRightLimitX
            if isempty(obj.Cache.MouthMidBottomRightLimitX)
                obj.Cache.MouthMidBottomRightLimitX = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getMouthMidBottomRightLimitX);
            end
            mouthmidbottomrightlimitx = obj.Cache.MouthMidBottomRightLimitX;
        end
        
        function set.MouthMidBottomRightLimitX(obj, mouthmidbottomrightlimitx)
            %set.MouthMidBottomRightLimitX Set the value for property MouthMidBottomRightLimitX
            validateattributes(mouthmidbottomrightlimitx, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'MouthMidBottomRightLimitX');
            
            obj.JavaMessage.setMouthMidBottomRightLimitX(mouthmidbottomrightlimitx.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.MouthMidBottomRightLimitX)
                obj.Cache.MouthMidBottomRightLimitX.setJavaObject(mouthmidbottomrightlimitx.getJavaObject);
            end
        end
        
        function mouthmidbottomrightlimity = get.MouthMidBottomRightLimitY(obj)
            %get.MouthMidBottomRightLimitY Get the value for property MouthMidBottomRightLimitY
            if isempty(obj.Cache.MouthMidBottomRightLimitY)
                obj.Cache.MouthMidBottomRightLimitY = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getMouthMidBottomRightLimitY);
            end
            mouthmidbottomrightlimity = obj.Cache.MouthMidBottomRightLimitY;
        end
        
        function set.MouthMidBottomRightLimitY(obj, mouthmidbottomrightlimity)
            %set.MouthMidBottomRightLimitY Set the value for property MouthMidBottomRightLimitY
            validateattributes(mouthmidbottomrightlimity, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'MouthMidBottomRightLimitY');
            
            obj.JavaMessage.setMouthMidBottomRightLimitY(mouthmidbottomrightlimity.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.MouthMidBottomRightLimitY)
                obj.Cache.MouthMidBottomRightLimitY.setJavaObject(mouthmidbottomrightlimity.getJavaObject);
            end
        end
        
        function mouthmidbottomleftlimitx = get.MouthMidBottomLeftLimitX(obj)
            %get.MouthMidBottomLeftLimitX Get the value for property MouthMidBottomLeftLimitX
            if isempty(obj.Cache.MouthMidBottomLeftLimitX)
                obj.Cache.MouthMidBottomLeftLimitX = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getMouthMidBottomLeftLimitX);
            end
            mouthmidbottomleftlimitx = obj.Cache.MouthMidBottomLeftLimitX;
        end
        
        function set.MouthMidBottomLeftLimitX(obj, mouthmidbottomleftlimitx)
            %set.MouthMidBottomLeftLimitX Set the value for property MouthMidBottomLeftLimitX
            validateattributes(mouthmidbottomleftlimitx, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'MouthMidBottomLeftLimitX');
            
            obj.JavaMessage.setMouthMidBottomLeftLimitX(mouthmidbottomleftlimitx.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.MouthMidBottomLeftLimitX)
                obj.Cache.MouthMidBottomLeftLimitX.setJavaObject(mouthmidbottomleftlimitx.getJavaObject);
            end
        end
        
        function mouthmidbottomleftlimity = get.MouthMidBottomLeftLimitY(obj)
            %get.MouthMidBottomLeftLimitY Get the value for property MouthMidBottomLeftLimitY
            if isempty(obj.Cache.MouthMidBottomLeftLimitY)
                obj.Cache.MouthMidBottomLeftLimitY = feval(obj.StdMsgsFloat32Class, obj.JavaMessage.getMouthMidBottomLeftLimitY);
            end
            mouthmidbottomleftlimity = obj.Cache.MouthMidBottomLeftLimitY;
        end
        
        function set.MouthMidBottomLeftLimitY(obj, mouthmidbottomleftlimity)
            %set.MouthMidBottomLeftLimitY Set the value for property MouthMidBottomLeftLimitY
            validateattributes(mouthmidbottomleftlimity, {obj.StdMsgsFloat32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'MouthMidBottomLeftLimitY');
            
            obj.JavaMessage.setMouthMidBottomLeftLimitY(mouthmidbottomleftlimity.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.MouthMidBottomLeftLimitY)
                obj.Cache.MouthMidBottomLeftLimitY.setJavaObject(mouthmidbottomleftlimity.getJavaObject);
            end
        end
        
        function camera0pose = get.Camera0Pose(obj)
            %get.Camera0Pose Get the value for property Camera0Pose
            if isempty(obj.Cache.Camera0Pose)
                obj.Cache.Camera0Pose = feval(obj.GeometryMsgsPoseClass, obj.JavaMessage.getCamera0Pose);
            end
            camera0pose = obj.Cache.Camera0Pose;
        end
        
        function set.Camera0Pose(obj, camera0pose)
            %set.Camera0Pose Set the value for property Camera0Pose
            validateattributes(camera0pose, {obj.GeometryMsgsPoseClass}, {'nonempty', 'scalar'}, 'FaceDetected', 'Camera0Pose');
            
            obj.JavaMessage.setCamera0Pose(camera0pose.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.Camera0Pose)
                obj.Cache.Camera0Pose.setJavaObject(camera0pose.getJavaObject);
            end
        end
        
        function camera1pose = get.Camera1Pose(obj)
            %get.Camera1Pose Get the value for property Camera1Pose
            if isempty(obj.Cache.Camera1Pose)
                obj.Cache.Camera1Pose = feval(obj.GeometryMsgsPoseClass, obj.JavaMessage.getCamera1Pose);
            end
            camera1pose = obj.Cache.Camera1Pose;
        end
        
        function set.Camera1Pose(obj, camera1pose)
            %set.Camera1Pose Set the value for property Camera1Pose
            validateattributes(camera1pose, {obj.GeometryMsgsPoseClass}, {'nonempty', 'scalar'}, 'FaceDetected', 'Camera1Pose');
            
            obj.JavaMessage.setCamera1Pose(camera1pose.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.Camera1Pose)
                obj.Cache.Camera1Pose.setJavaObject(camera1pose.getJavaObject);
            end
        end
        
        function cameraid = get.CameraId(obj)
            %get.CameraId Get the value for property CameraId
            if isempty(obj.Cache.CameraId)
                obj.Cache.CameraId = feval(obj.StdMsgsInt32Class, obj.JavaMessage.getCameraId);
            end
            cameraid = obj.Cache.CameraId;
        end
        
        function set.CameraId(obj, cameraid)
            %set.CameraId Set the value for property CameraId
            validateattributes(cameraid, {obj.StdMsgsInt32Class}, {'nonempty', 'scalar'}, 'FaceDetected', 'CameraId');
            
            obj.JavaMessage.setCameraId(cameraid.getJavaObject);
            
            % Update cache if necessary
            if ~isempty(obj.Cache.CameraId)
                obj.Cache.CameraId.setJavaObject(cameraid.getJavaObject);
            end
        end
    end
    
    methods (Access = protected)
        function resetCache(obj)
            %resetCache Resets any cached properties
            obj.Cache.Header = [];
            obj.Cache.FaceId = [];
            obj.Cache.ScoreReco = [];
            obj.Cache.FaceLabel = [];
            obj.Cache.ShapeAlpha = [];
            obj.Cache.ShapeBeta = [];
            obj.Cache.ShapeSizeX = [];
            obj.Cache.ShapeSizeY = [];
            obj.Cache.RightEyeEyeCenterX = [];
            obj.Cache.RightEyeEyeCenterY = [];
            obj.Cache.RightEyeNoseSideLimitX = [];
            obj.Cache.RightEyeNoseSideLimitY = [];
            obj.Cache.RightEyeEarSideLimitX = [];
            obj.Cache.RightEyeEarSideLimitY = [];
            obj.Cache.RightEyeTopLimitX = [];
            obj.Cache.RightEyeTopLimitY = [];
            obj.Cache.RightEyeBottomLimitX = [];
            obj.Cache.RightEyeBottomLimitY = [];
            obj.Cache.RightEyeMidTopEarLimitX = [];
            obj.Cache.RightEyeMidTopEarLimitY = [];
            obj.Cache.RightEyeMidTopNoseLimitX = [];
            obj.Cache.RightEyeMidTopNoseLimitY = [];
            obj.Cache.LeftEyeEyeCenterX = [];
            obj.Cache.LeftEyeEyeCenterY = [];
            obj.Cache.LeftEyeNoseSideLimitX = [];
            obj.Cache.LeftEyeNoseSideLimitY = [];
            obj.Cache.LeftEyeEarSideLimitX = [];
            obj.Cache.LeftEyeEarSideLimitY = [];
            obj.Cache.LeftEyeTopLimitX = [];
            obj.Cache.LeftEyeTopLimitY = [];
            obj.Cache.LeftEyeBottomLimitX = [];
            obj.Cache.LeftEyeBottomLimitY = [];
            obj.Cache.LeftEyeMidTopEarLimitX = [];
            obj.Cache.LeftEyeMidTopEarLimitY = [];
            obj.Cache.LeftEyeMidTopNoseLimitX = [];
            obj.Cache.LeftEyeMidTopNoseLimitY = [];
            obj.Cache.RightEyebrowNoseSideLimitX = [];
            obj.Cache.RightEyebrowNoseSideLimitY = [];
            obj.Cache.RightEyebrowCenterX = [];
            obj.Cache.RightEyebrowCenterY = [];
            obj.Cache.RightEyebrowEarSideLimitX = [];
            obj.Cache.RightEyebrowEarSideLimitY = [];
            obj.Cache.LeftEyebrowNoseSideLimitX = [];
            obj.Cache.LeftEyebrowNoseSideLimitY = [];
            obj.Cache.LeftEyebrowCenterX = [];
            obj.Cache.LeftEyebrowCenterY = [];
            obj.Cache.LeftEyebrowEarSideLimitX = [];
            obj.Cache.LeftEyebrowEarSideLimitY = [];
            obj.Cache.NoseBottomCenterLimitX = [];
            obj.Cache.NoseBottomCenterLimitY = [];
            obj.Cache.NoseBottomLeftLimitX = [];
            obj.Cache.NoseBottomLeftLimitY = [];
            obj.Cache.NoseBottomRightLimitX = [];
            obj.Cache.NoseBottomRightLimitY = [];
            obj.Cache.MouthLeftLimitX = [];
            obj.Cache.MouthLeftLimitY = [];
            obj.Cache.MouthRightLimitX = [];
            obj.Cache.MouthRightLimitY = [];
            obj.Cache.MouthTopLimitX = [];
            obj.Cache.MouthTopLimitY = [];
            obj.Cache.MouthBottomLimitX = [];
            obj.Cache.MouthBottomLimitY = [];
            obj.Cache.MouthMidTopLeftLimitX = [];
            obj.Cache.MouthMidTopLeftLimitY = [];
            obj.Cache.MouthMidTopRightLimitX = [];
            obj.Cache.MouthMidTopRightLimitY = [];
            obj.Cache.MouthMidBottomRightLimitX = [];
            obj.Cache.MouthMidBottomRightLimitY = [];
            obj.Cache.MouthMidBottomLeftLimitX = [];
            obj.Cache.MouthMidBottomLeftLimitY = [];
            obj.Cache.Camera0Pose = [];
            obj.Cache.Camera1Pose = [];
            obj.Cache.CameraId = [];
        end
        
        function cpObj = copyElement(obj)
            %copyElement Implements deep copy behavior for message
            
            % Call default copy method for shallow copy
            cpObj = copyElement@robotics.ros.Message(obj);
            
            % Clear any existing cached properties
            cpObj.resetCache;
            
            % Create a new Java message object
            cpObj.JavaMessage = obj.createNewJavaMessage;
            
            % Recursively copy compound properties
            cpObj.Header = copy(obj.Header);
            cpObj.FaceId = copy(obj.FaceId);
            cpObj.ScoreReco = copy(obj.ScoreReco);
            cpObj.FaceLabel = copy(obj.FaceLabel);
            cpObj.ShapeAlpha = copy(obj.ShapeAlpha);
            cpObj.ShapeBeta = copy(obj.ShapeBeta);
            cpObj.ShapeSizeX = copy(obj.ShapeSizeX);
            cpObj.ShapeSizeY = copy(obj.ShapeSizeY);
            cpObj.RightEyeEyeCenterX = copy(obj.RightEyeEyeCenterX);
            cpObj.RightEyeEyeCenterY = copy(obj.RightEyeEyeCenterY);
            cpObj.RightEyeNoseSideLimitX = copy(obj.RightEyeNoseSideLimitX);
            cpObj.RightEyeNoseSideLimitY = copy(obj.RightEyeNoseSideLimitY);
            cpObj.RightEyeEarSideLimitX = copy(obj.RightEyeEarSideLimitX);
            cpObj.RightEyeEarSideLimitY = copy(obj.RightEyeEarSideLimitY);
            cpObj.RightEyeTopLimitX = copy(obj.RightEyeTopLimitX);
            cpObj.RightEyeTopLimitY = copy(obj.RightEyeTopLimitY);
            cpObj.RightEyeBottomLimitX = copy(obj.RightEyeBottomLimitX);
            cpObj.RightEyeBottomLimitY = copy(obj.RightEyeBottomLimitY);
            cpObj.RightEyeMidTopEarLimitX = copy(obj.RightEyeMidTopEarLimitX);
            cpObj.RightEyeMidTopEarLimitY = copy(obj.RightEyeMidTopEarLimitY);
            cpObj.RightEyeMidTopNoseLimitX = copy(obj.RightEyeMidTopNoseLimitX);
            cpObj.RightEyeMidTopNoseLimitY = copy(obj.RightEyeMidTopNoseLimitY);
            cpObj.LeftEyeEyeCenterX = copy(obj.LeftEyeEyeCenterX);
            cpObj.LeftEyeEyeCenterY = copy(obj.LeftEyeEyeCenterY);
            cpObj.LeftEyeNoseSideLimitX = copy(obj.LeftEyeNoseSideLimitX);
            cpObj.LeftEyeNoseSideLimitY = copy(obj.LeftEyeNoseSideLimitY);
            cpObj.LeftEyeEarSideLimitX = copy(obj.LeftEyeEarSideLimitX);
            cpObj.LeftEyeEarSideLimitY = copy(obj.LeftEyeEarSideLimitY);
            cpObj.LeftEyeTopLimitX = copy(obj.LeftEyeTopLimitX);
            cpObj.LeftEyeTopLimitY = copy(obj.LeftEyeTopLimitY);
            cpObj.LeftEyeBottomLimitX = copy(obj.LeftEyeBottomLimitX);
            cpObj.LeftEyeBottomLimitY = copy(obj.LeftEyeBottomLimitY);
            cpObj.LeftEyeMidTopEarLimitX = copy(obj.LeftEyeMidTopEarLimitX);
            cpObj.LeftEyeMidTopEarLimitY = copy(obj.LeftEyeMidTopEarLimitY);
            cpObj.LeftEyeMidTopNoseLimitX = copy(obj.LeftEyeMidTopNoseLimitX);
            cpObj.LeftEyeMidTopNoseLimitY = copy(obj.LeftEyeMidTopNoseLimitY);
            cpObj.RightEyebrowNoseSideLimitX = copy(obj.RightEyebrowNoseSideLimitX);
            cpObj.RightEyebrowNoseSideLimitY = copy(obj.RightEyebrowNoseSideLimitY);
            cpObj.RightEyebrowCenterX = copy(obj.RightEyebrowCenterX);
            cpObj.RightEyebrowCenterY = copy(obj.RightEyebrowCenterY);
            cpObj.RightEyebrowEarSideLimitX = copy(obj.RightEyebrowEarSideLimitX);
            cpObj.RightEyebrowEarSideLimitY = copy(obj.RightEyebrowEarSideLimitY);
            cpObj.LeftEyebrowNoseSideLimitX = copy(obj.LeftEyebrowNoseSideLimitX);
            cpObj.LeftEyebrowNoseSideLimitY = copy(obj.LeftEyebrowNoseSideLimitY);
            cpObj.LeftEyebrowCenterX = copy(obj.LeftEyebrowCenterX);
            cpObj.LeftEyebrowCenterY = copy(obj.LeftEyebrowCenterY);
            cpObj.LeftEyebrowEarSideLimitX = copy(obj.LeftEyebrowEarSideLimitX);
            cpObj.LeftEyebrowEarSideLimitY = copy(obj.LeftEyebrowEarSideLimitY);
            cpObj.NoseBottomCenterLimitX = copy(obj.NoseBottomCenterLimitX);
            cpObj.NoseBottomCenterLimitY = copy(obj.NoseBottomCenterLimitY);
            cpObj.NoseBottomLeftLimitX = copy(obj.NoseBottomLeftLimitX);
            cpObj.NoseBottomLeftLimitY = copy(obj.NoseBottomLeftLimitY);
            cpObj.NoseBottomRightLimitX = copy(obj.NoseBottomRightLimitX);
            cpObj.NoseBottomRightLimitY = copy(obj.NoseBottomRightLimitY);
            cpObj.MouthLeftLimitX = copy(obj.MouthLeftLimitX);
            cpObj.MouthLeftLimitY = copy(obj.MouthLeftLimitY);
            cpObj.MouthRightLimitX = copy(obj.MouthRightLimitX);
            cpObj.MouthRightLimitY = copy(obj.MouthRightLimitY);
            cpObj.MouthTopLimitX = copy(obj.MouthTopLimitX);
            cpObj.MouthTopLimitY = copy(obj.MouthTopLimitY);
            cpObj.MouthBottomLimitX = copy(obj.MouthBottomLimitX);
            cpObj.MouthBottomLimitY = copy(obj.MouthBottomLimitY);
            cpObj.MouthMidTopLeftLimitX = copy(obj.MouthMidTopLeftLimitX);
            cpObj.MouthMidTopLeftLimitY = copy(obj.MouthMidTopLeftLimitY);
            cpObj.MouthMidTopRightLimitX = copy(obj.MouthMidTopRightLimitX);
            cpObj.MouthMidTopRightLimitY = copy(obj.MouthMidTopRightLimitY);
            cpObj.MouthMidBottomRightLimitX = copy(obj.MouthMidBottomRightLimitX);
            cpObj.MouthMidBottomRightLimitY = copy(obj.MouthMidBottomRightLimitY);
            cpObj.MouthMidBottomLeftLimitX = copy(obj.MouthMidBottomLeftLimitX);
            cpObj.MouthMidBottomLeftLimitY = copy(obj.MouthMidBottomLeftLimitY);
            cpObj.Camera0Pose = copy(obj.Camera0Pose);
            cpObj.Camera1Pose = copy(obj.Camera1Pose);
            cpObj.CameraId = copy(obj.CameraId);
        end
        
        function reload(obj, strObj)
            %reload Called by loadobj to assign properties
            obj.Header = feval([obj.StdMsgsHeaderClass '.loadobj'], strObj.Header);
            obj.FaceId = feval([obj.StdMsgsInt32Class '.loadobj'], strObj.FaceId);
            obj.ScoreReco = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.ScoreReco);
            obj.FaceLabel = feval([obj.StdMsgsStringClass '.loadobj'], strObj.FaceLabel);
            obj.ShapeAlpha = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.ShapeAlpha);
            obj.ShapeBeta = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.ShapeBeta);
            obj.ShapeSizeX = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.ShapeSizeX);
            obj.ShapeSizeY = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.ShapeSizeY);
            obj.RightEyeEyeCenterX = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.RightEyeEyeCenterX);
            obj.RightEyeEyeCenterY = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.RightEyeEyeCenterY);
            obj.RightEyeNoseSideLimitX = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.RightEyeNoseSideLimitX);
            obj.RightEyeNoseSideLimitY = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.RightEyeNoseSideLimitY);
            obj.RightEyeEarSideLimitX = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.RightEyeEarSideLimitX);
            obj.RightEyeEarSideLimitY = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.RightEyeEarSideLimitY);
            obj.RightEyeTopLimitX = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.RightEyeTopLimitX);
            obj.RightEyeTopLimitY = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.RightEyeTopLimitY);
            obj.RightEyeBottomLimitX = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.RightEyeBottomLimitX);
            obj.RightEyeBottomLimitY = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.RightEyeBottomLimitY);
            obj.RightEyeMidTopEarLimitX = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.RightEyeMidTopEarLimitX);
            obj.RightEyeMidTopEarLimitY = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.RightEyeMidTopEarLimitY);
            obj.RightEyeMidTopNoseLimitX = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.RightEyeMidTopNoseLimitX);
            obj.RightEyeMidTopNoseLimitY = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.RightEyeMidTopNoseLimitY);
            obj.LeftEyeEyeCenterX = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.LeftEyeEyeCenterX);
            obj.LeftEyeEyeCenterY = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.LeftEyeEyeCenterY);
            obj.LeftEyeNoseSideLimitX = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.LeftEyeNoseSideLimitX);
            obj.LeftEyeNoseSideLimitY = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.LeftEyeNoseSideLimitY);
            obj.LeftEyeEarSideLimitX = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.LeftEyeEarSideLimitX);
            obj.LeftEyeEarSideLimitY = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.LeftEyeEarSideLimitY);
            obj.LeftEyeTopLimitX = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.LeftEyeTopLimitX);
            obj.LeftEyeTopLimitY = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.LeftEyeTopLimitY);
            obj.LeftEyeBottomLimitX = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.LeftEyeBottomLimitX);
            obj.LeftEyeBottomLimitY = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.LeftEyeBottomLimitY);
            obj.LeftEyeMidTopEarLimitX = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.LeftEyeMidTopEarLimitX);
            obj.LeftEyeMidTopEarLimitY = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.LeftEyeMidTopEarLimitY);
            obj.LeftEyeMidTopNoseLimitX = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.LeftEyeMidTopNoseLimitX);
            obj.LeftEyeMidTopNoseLimitY = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.LeftEyeMidTopNoseLimitY);
            obj.RightEyebrowNoseSideLimitX = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.RightEyebrowNoseSideLimitX);
            obj.RightEyebrowNoseSideLimitY = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.RightEyebrowNoseSideLimitY);
            obj.RightEyebrowCenterX = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.RightEyebrowCenterX);
            obj.RightEyebrowCenterY = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.RightEyebrowCenterY);
            obj.RightEyebrowEarSideLimitX = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.RightEyebrowEarSideLimitX);
            obj.RightEyebrowEarSideLimitY = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.RightEyebrowEarSideLimitY);
            obj.LeftEyebrowNoseSideLimitX = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.LeftEyebrowNoseSideLimitX);
            obj.LeftEyebrowNoseSideLimitY = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.LeftEyebrowNoseSideLimitY);
            obj.LeftEyebrowCenterX = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.LeftEyebrowCenterX);
            obj.LeftEyebrowCenterY = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.LeftEyebrowCenterY);
            obj.LeftEyebrowEarSideLimitX = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.LeftEyebrowEarSideLimitX);
            obj.LeftEyebrowEarSideLimitY = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.LeftEyebrowEarSideLimitY);
            obj.NoseBottomCenterLimitX = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.NoseBottomCenterLimitX);
            obj.NoseBottomCenterLimitY = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.NoseBottomCenterLimitY);
            obj.NoseBottomLeftLimitX = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.NoseBottomLeftLimitX);
            obj.NoseBottomLeftLimitY = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.NoseBottomLeftLimitY);
            obj.NoseBottomRightLimitX = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.NoseBottomRightLimitX);
            obj.NoseBottomRightLimitY = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.NoseBottomRightLimitY);
            obj.MouthLeftLimitX = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.MouthLeftLimitX);
            obj.MouthLeftLimitY = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.MouthLeftLimitY);
            obj.MouthRightLimitX = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.MouthRightLimitX);
            obj.MouthRightLimitY = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.MouthRightLimitY);
            obj.MouthTopLimitX = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.MouthTopLimitX);
            obj.MouthTopLimitY = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.MouthTopLimitY);
            obj.MouthBottomLimitX = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.MouthBottomLimitX);
            obj.MouthBottomLimitY = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.MouthBottomLimitY);
            obj.MouthMidTopLeftLimitX = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.MouthMidTopLeftLimitX);
            obj.MouthMidTopLeftLimitY = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.MouthMidTopLeftLimitY);
            obj.MouthMidTopRightLimitX = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.MouthMidTopRightLimitX);
            obj.MouthMidTopRightLimitY = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.MouthMidTopRightLimitY);
            obj.MouthMidBottomRightLimitX = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.MouthMidBottomRightLimitX);
            obj.MouthMidBottomRightLimitY = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.MouthMidBottomRightLimitY);
            obj.MouthMidBottomLeftLimitX = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.MouthMidBottomLeftLimitX);
            obj.MouthMidBottomLeftLimitY = feval([obj.StdMsgsFloat32Class '.loadobj'], strObj.MouthMidBottomLeftLimitY);
            obj.Camera0Pose = feval([obj.GeometryMsgsPoseClass '.loadobj'], strObj.Camera0Pose);
            obj.Camera1Pose = feval([obj.GeometryMsgsPoseClass '.loadobj'], strObj.Camera1Pose);
            obj.CameraId = feval([obj.StdMsgsInt32Class '.loadobj'], strObj.CameraId);
        end
    end
    
    methods (Access = ?robotics.ros.Message)
        function strObj = saveobj(obj)
            %saveobj Implements saving of message to MAT file
            
            % Return an empty element if object array is empty
            if isempty(obj)
                strObj = struct.empty;
                return
            end
            
            strObj.Header = saveobj(obj.Header);
            strObj.FaceId = saveobj(obj.FaceId);
            strObj.ScoreReco = saveobj(obj.ScoreReco);
            strObj.FaceLabel = saveobj(obj.FaceLabel);
            strObj.ShapeAlpha = saveobj(obj.ShapeAlpha);
            strObj.ShapeBeta = saveobj(obj.ShapeBeta);
            strObj.ShapeSizeX = saveobj(obj.ShapeSizeX);
            strObj.ShapeSizeY = saveobj(obj.ShapeSizeY);
            strObj.RightEyeEyeCenterX = saveobj(obj.RightEyeEyeCenterX);
            strObj.RightEyeEyeCenterY = saveobj(obj.RightEyeEyeCenterY);
            strObj.RightEyeNoseSideLimitX = saveobj(obj.RightEyeNoseSideLimitX);
            strObj.RightEyeNoseSideLimitY = saveobj(obj.RightEyeNoseSideLimitY);
            strObj.RightEyeEarSideLimitX = saveobj(obj.RightEyeEarSideLimitX);
            strObj.RightEyeEarSideLimitY = saveobj(obj.RightEyeEarSideLimitY);
            strObj.RightEyeTopLimitX = saveobj(obj.RightEyeTopLimitX);
            strObj.RightEyeTopLimitY = saveobj(obj.RightEyeTopLimitY);
            strObj.RightEyeBottomLimitX = saveobj(obj.RightEyeBottomLimitX);
            strObj.RightEyeBottomLimitY = saveobj(obj.RightEyeBottomLimitY);
            strObj.RightEyeMidTopEarLimitX = saveobj(obj.RightEyeMidTopEarLimitX);
            strObj.RightEyeMidTopEarLimitY = saveobj(obj.RightEyeMidTopEarLimitY);
            strObj.RightEyeMidTopNoseLimitX = saveobj(obj.RightEyeMidTopNoseLimitX);
            strObj.RightEyeMidTopNoseLimitY = saveobj(obj.RightEyeMidTopNoseLimitY);
            strObj.LeftEyeEyeCenterX = saveobj(obj.LeftEyeEyeCenterX);
            strObj.LeftEyeEyeCenterY = saveobj(obj.LeftEyeEyeCenterY);
            strObj.LeftEyeNoseSideLimitX = saveobj(obj.LeftEyeNoseSideLimitX);
            strObj.LeftEyeNoseSideLimitY = saveobj(obj.LeftEyeNoseSideLimitY);
            strObj.LeftEyeEarSideLimitX = saveobj(obj.LeftEyeEarSideLimitX);
            strObj.LeftEyeEarSideLimitY = saveobj(obj.LeftEyeEarSideLimitY);
            strObj.LeftEyeTopLimitX = saveobj(obj.LeftEyeTopLimitX);
            strObj.LeftEyeTopLimitY = saveobj(obj.LeftEyeTopLimitY);
            strObj.LeftEyeBottomLimitX = saveobj(obj.LeftEyeBottomLimitX);
            strObj.LeftEyeBottomLimitY = saveobj(obj.LeftEyeBottomLimitY);
            strObj.LeftEyeMidTopEarLimitX = saveobj(obj.LeftEyeMidTopEarLimitX);
            strObj.LeftEyeMidTopEarLimitY = saveobj(obj.LeftEyeMidTopEarLimitY);
            strObj.LeftEyeMidTopNoseLimitX = saveobj(obj.LeftEyeMidTopNoseLimitX);
            strObj.LeftEyeMidTopNoseLimitY = saveobj(obj.LeftEyeMidTopNoseLimitY);
            strObj.RightEyebrowNoseSideLimitX = saveobj(obj.RightEyebrowNoseSideLimitX);
            strObj.RightEyebrowNoseSideLimitY = saveobj(obj.RightEyebrowNoseSideLimitY);
            strObj.RightEyebrowCenterX = saveobj(obj.RightEyebrowCenterX);
            strObj.RightEyebrowCenterY = saveobj(obj.RightEyebrowCenterY);
            strObj.RightEyebrowEarSideLimitX = saveobj(obj.RightEyebrowEarSideLimitX);
            strObj.RightEyebrowEarSideLimitY = saveobj(obj.RightEyebrowEarSideLimitY);
            strObj.LeftEyebrowNoseSideLimitX = saveobj(obj.LeftEyebrowNoseSideLimitX);
            strObj.LeftEyebrowNoseSideLimitY = saveobj(obj.LeftEyebrowNoseSideLimitY);
            strObj.LeftEyebrowCenterX = saveobj(obj.LeftEyebrowCenterX);
            strObj.LeftEyebrowCenterY = saveobj(obj.LeftEyebrowCenterY);
            strObj.LeftEyebrowEarSideLimitX = saveobj(obj.LeftEyebrowEarSideLimitX);
            strObj.LeftEyebrowEarSideLimitY = saveobj(obj.LeftEyebrowEarSideLimitY);
            strObj.NoseBottomCenterLimitX = saveobj(obj.NoseBottomCenterLimitX);
            strObj.NoseBottomCenterLimitY = saveobj(obj.NoseBottomCenterLimitY);
            strObj.NoseBottomLeftLimitX = saveobj(obj.NoseBottomLeftLimitX);
            strObj.NoseBottomLeftLimitY = saveobj(obj.NoseBottomLeftLimitY);
            strObj.NoseBottomRightLimitX = saveobj(obj.NoseBottomRightLimitX);
            strObj.NoseBottomRightLimitY = saveobj(obj.NoseBottomRightLimitY);
            strObj.MouthLeftLimitX = saveobj(obj.MouthLeftLimitX);
            strObj.MouthLeftLimitY = saveobj(obj.MouthLeftLimitY);
            strObj.MouthRightLimitX = saveobj(obj.MouthRightLimitX);
            strObj.MouthRightLimitY = saveobj(obj.MouthRightLimitY);
            strObj.MouthTopLimitX = saveobj(obj.MouthTopLimitX);
            strObj.MouthTopLimitY = saveobj(obj.MouthTopLimitY);
            strObj.MouthBottomLimitX = saveobj(obj.MouthBottomLimitX);
            strObj.MouthBottomLimitY = saveobj(obj.MouthBottomLimitY);
            strObj.MouthMidTopLeftLimitX = saveobj(obj.MouthMidTopLeftLimitX);
            strObj.MouthMidTopLeftLimitY = saveobj(obj.MouthMidTopLeftLimitY);
            strObj.MouthMidTopRightLimitX = saveobj(obj.MouthMidTopRightLimitX);
            strObj.MouthMidTopRightLimitY = saveobj(obj.MouthMidTopRightLimitY);
            strObj.MouthMidBottomRightLimitX = saveobj(obj.MouthMidBottomRightLimitX);
            strObj.MouthMidBottomRightLimitY = saveobj(obj.MouthMidBottomRightLimitY);
            strObj.MouthMidBottomLeftLimitX = saveobj(obj.MouthMidBottomLeftLimitX);
            strObj.MouthMidBottomLeftLimitY = saveobj(obj.MouthMidBottomLeftLimitY);
            strObj.Camera0Pose = saveobj(obj.Camera0Pose);
            strObj.Camera1Pose = saveobj(obj.Camera1Pose);
            strObj.CameraId = saveobj(obj.CameraId);
        end
    end
    
    methods (Static, Access = {?matlab.unittest.TestCase, ?robotics.ros.Message})
        function obj = loadobj(strObj)
            %loadobj Implements loading of message from MAT file
            
            % Return an empty object array if the structure element is not defined
            if isempty(strObj)
                obj = robotics.ros.msggen.nao_interaction_msgs.FaceDetected.empty(0,1);
                return
            end
            
            % Create an empty message object
            obj = robotics.ros.msggen.nao_interaction_msgs.FaceDetected;
            obj.reload(strObj);
        end
    end
end