www.gusucode.com > ros 工具箱 matlab源码程序 > ros/+robotics/+ros/+msggen/+nao_interaction_msgs/LandmarkDetected.m
classdef LandmarkDetected < robotics.ros.Message %LandmarkDetected MATLAB implementation of nao_interaction_msgs/LandmarkDetected % 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/LandmarkDetected' % The ROS message type end properties (Constant, Hidden) MD5Checksum = '4d97e85c0a306501da5d22b795cdac76' % 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 CameraLocalPose CameraWorldPose CameraName MarkIds ShapeAlpha ShapeBeta ShapeSizex ShapeSizey end properties (Access = protected) Cache = struct('Header', [], 'MarkIds', [], 'ShapeAlpha', [], 'ShapeBeta', [], 'ShapeSizex', [], 'ShapeSizey', [], 'CameraLocalPose', [], 'CameraWorldPose', [], 'CameraName', []) % The cache for fast data access end properties (Constant, Hidden) PropertyList = {'CameraLocalPose', 'CameraName', 'CameraWorldPose', 'Header', 'MarkIds', 'ShapeAlpha', 'ShapeBeta', 'ShapeSizex', 'ShapeSizey'} % List of non-constant message properties ROSPropertyList = {'camera_local_pose', 'camera_name', 'camera_world_pose', 'header', 'mark_ids', 'shape_alpha', 'shape_beta', 'shape_sizex', 'shape_sizey'} % List of non-constant ROS message properties end methods function obj = LandmarkDetected(msg) %LandmarkDetected Construct the message object LandmarkDetected 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'}, 'LandmarkDetected', 'Header'); obj.JavaMessage.setHeader(header.getJavaObject); % Update cache if necessary if ~isempty(obj.Cache.Header) obj.Cache.Header.setJavaObject(header.getJavaObject); end end function cameralocalpose = get.CameraLocalPose(obj) %get.CameraLocalPose Get the value for property CameraLocalPose if isempty(obj.Cache.CameraLocalPose) obj.Cache.CameraLocalPose = feval(obj.GeometryMsgsPoseClass, obj.JavaMessage.getCameraLocalPose); end cameralocalpose = obj.Cache.CameraLocalPose; end function set.CameraLocalPose(obj, cameralocalpose) %set.CameraLocalPose Set the value for property CameraLocalPose validateattributes(cameralocalpose, {obj.GeometryMsgsPoseClass}, {'nonempty', 'scalar'}, 'LandmarkDetected', 'CameraLocalPose'); obj.JavaMessage.setCameraLocalPose(cameralocalpose.getJavaObject); % Update cache if necessary if ~isempty(obj.Cache.CameraLocalPose) obj.Cache.CameraLocalPose.setJavaObject(cameralocalpose.getJavaObject); end end function cameraworldpose = get.CameraWorldPose(obj) %get.CameraWorldPose Get the value for property CameraWorldPose if isempty(obj.Cache.CameraWorldPose) obj.Cache.CameraWorldPose = feval(obj.GeometryMsgsPoseClass, obj.JavaMessage.getCameraWorldPose); end cameraworldpose = obj.Cache.CameraWorldPose; end function set.CameraWorldPose(obj, cameraworldpose) %set.CameraWorldPose Set the value for property CameraWorldPose validateattributes(cameraworldpose, {obj.GeometryMsgsPoseClass}, {'nonempty', 'scalar'}, 'LandmarkDetected', 'CameraWorldPose'); obj.JavaMessage.setCameraWorldPose(cameraworldpose.getJavaObject); % Update cache if necessary if ~isempty(obj.Cache.CameraWorldPose) obj.Cache.CameraWorldPose.setJavaObject(cameraworldpose.getJavaObject); end end function cameraname = get.CameraName(obj) %get.CameraName Get the value for property CameraName if isempty(obj.Cache.CameraName) obj.Cache.CameraName = feval(obj.StdMsgsStringClass, obj.JavaMessage.getCameraName); end cameraname = obj.Cache.CameraName; end function set.CameraName(obj, cameraname) %set.CameraName Set the value for property CameraName validateattributes(cameraname, {obj.StdMsgsStringClass}, {'nonempty', 'scalar'}, 'LandmarkDetected', 'CameraName'); obj.JavaMessage.setCameraName(cameraname.getJavaObject); % Update cache if necessary if ~isempty(obj.Cache.CameraName) obj.Cache.CameraName.setJavaObject(cameraname.getJavaObject); end end function markids = get.MarkIds(obj) %get.MarkIds Get the value for property MarkIds if isempty(obj.Cache.MarkIds) javaArray = obj.JavaMessage.getMarkIds; array = obj.readJavaArray(javaArray, obj.StdMsgsInt32Class); obj.Cache.MarkIds = feval(obj.StdMsgsInt32Class, array); end markids = obj.Cache.MarkIds; end function set.MarkIds(obj, markids) %set.MarkIds Set the value for property MarkIds if ~isvector(markids) && isempty(markids) % Allow empty [] input markids = feval([obj.StdMsgsInt32Class '.empty'], 0, 1); end validateattributes(markids, {obj.StdMsgsInt32Class}, {'vector'}, 'LandmarkDetected', 'MarkIds'); javaArray = obj.JavaMessage.getMarkIds; array = obj.writeJavaArray(markids, javaArray, obj.StdMsgsInt32Class); obj.JavaMessage.setMarkIds(array); % Update cache if necessary if ~isempty(obj.Cache.MarkIds) obj.Cache.MarkIds = []; obj.Cache.MarkIds = obj.MarkIds; end end function shapealpha = get.ShapeAlpha(obj) %get.ShapeAlpha Get the value for property ShapeAlpha if isempty(obj.Cache.ShapeAlpha) javaArray = obj.JavaMessage.getShapeAlpha; array = obj.readJavaArray(javaArray, obj.StdMsgsFloat32Class); obj.Cache.ShapeAlpha = feval(obj.StdMsgsFloat32Class, array); end shapealpha = obj.Cache.ShapeAlpha; end function set.ShapeAlpha(obj, shapealpha) %set.ShapeAlpha Set the value for property ShapeAlpha if ~isvector(shapealpha) && isempty(shapealpha) % Allow empty [] input shapealpha = feval([obj.StdMsgsFloat32Class '.empty'], 0, 1); end validateattributes(shapealpha, {obj.StdMsgsFloat32Class}, {'vector'}, 'LandmarkDetected', 'ShapeAlpha'); javaArray = obj.JavaMessage.getShapeAlpha; array = obj.writeJavaArray(shapealpha, javaArray, obj.StdMsgsFloat32Class); obj.JavaMessage.setShapeAlpha(array); % Update cache if necessary if ~isempty(obj.Cache.ShapeAlpha) obj.Cache.ShapeAlpha = []; obj.Cache.ShapeAlpha = obj.ShapeAlpha; end end function shapebeta = get.ShapeBeta(obj) %get.ShapeBeta Get the value for property ShapeBeta if isempty(obj.Cache.ShapeBeta) javaArray = obj.JavaMessage.getShapeBeta; array = obj.readJavaArray(javaArray, obj.StdMsgsFloat32Class); obj.Cache.ShapeBeta = feval(obj.StdMsgsFloat32Class, array); end shapebeta = obj.Cache.ShapeBeta; end function set.ShapeBeta(obj, shapebeta) %set.ShapeBeta Set the value for property ShapeBeta if ~isvector(shapebeta) && isempty(shapebeta) % Allow empty [] input shapebeta = feval([obj.StdMsgsFloat32Class '.empty'], 0, 1); end validateattributes(shapebeta, {obj.StdMsgsFloat32Class}, {'vector'}, 'LandmarkDetected', 'ShapeBeta'); javaArray = obj.JavaMessage.getShapeBeta; array = obj.writeJavaArray(shapebeta, javaArray, obj.StdMsgsFloat32Class); obj.JavaMessage.setShapeBeta(array); % Update cache if necessary if ~isempty(obj.Cache.ShapeBeta) obj.Cache.ShapeBeta = []; obj.Cache.ShapeBeta = obj.ShapeBeta; end end function shapesizex = get.ShapeSizex(obj) %get.ShapeSizex Get the value for property ShapeSizex if isempty(obj.Cache.ShapeSizex) javaArray = obj.JavaMessage.getShapeSizex; array = obj.readJavaArray(javaArray, obj.StdMsgsFloat32Class); obj.Cache.ShapeSizex = feval(obj.StdMsgsFloat32Class, array); end shapesizex = obj.Cache.ShapeSizex; end function set.ShapeSizex(obj, shapesizex) %set.ShapeSizex Set the value for property ShapeSizex if ~isvector(shapesizex) && isempty(shapesizex) % Allow empty [] input shapesizex = feval([obj.StdMsgsFloat32Class '.empty'], 0, 1); end validateattributes(shapesizex, {obj.StdMsgsFloat32Class}, {'vector'}, 'LandmarkDetected', 'ShapeSizex'); javaArray = obj.JavaMessage.getShapeSizex; array = obj.writeJavaArray(shapesizex, javaArray, obj.StdMsgsFloat32Class); obj.JavaMessage.setShapeSizex(array); % Update cache if necessary if ~isempty(obj.Cache.ShapeSizex) obj.Cache.ShapeSizex = []; obj.Cache.ShapeSizex = obj.ShapeSizex; end end function shapesizey = get.ShapeSizey(obj) %get.ShapeSizey Get the value for property ShapeSizey if isempty(obj.Cache.ShapeSizey) javaArray = obj.JavaMessage.getShapeSizey; array = obj.readJavaArray(javaArray, obj.StdMsgsFloat32Class); obj.Cache.ShapeSizey = feval(obj.StdMsgsFloat32Class, array); end shapesizey = obj.Cache.ShapeSizey; end function set.ShapeSizey(obj, shapesizey) %set.ShapeSizey Set the value for property ShapeSizey if ~isvector(shapesizey) && isempty(shapesizey) % Allow empty [] input shapesizey = feval([obj.StdMsgsFloat32Class '.empty'], 0, 1); end validateattributes(shapesizey, {obj.StdMsgsFloat32Class}, {'vector'}, 'LandmarkDetected', 'ShapeSizey'); javaArray = obj.JavaMessage.getShapeSizey; array = obj.writeJavaArray(shapesizey, javaArray, obj.StdMsgsFloat32Class); obj.JavaMessage.setShapeSizey(array); % Update cache if necessary if ~isempty(obj.Cache.ShapeSizey) obj.Cache.ShapeSizey = []; obj.Cache.ShapeSizey = obj.ShapeSizey; end end end methods (Access = protected) function resetCache(obj) %resetCache Resets any cached properties obj.Cache.Header = []; obj.Cache.MarkIds = []; obj.Cache.ShapeAlpha = []; obj.Cache.ShapeBeta = []; obj.Cache.ShapeSizex = []; obj.Cache.ShapeSizey = []; obj.Cache.CameraLocalPose = []; obj.Cache.CameraWorldPose = []; obj.Cache.CameraName = []; 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.CameraLocalPose = copy(obj.CameraLocalPose); cpObj.CameraWorldPose = copy(obj.CameraWorldPose); cpObj.CameraName = copy(obj.CameraName); cpObj.MarkIds = copy(obj.MarkIds); cpObj.ShapeAlpha = copy(obj.ShapeAlpha); cpObj.ShapeBeta = copy(obj.ShapeBeta); cpObj.ShapeSizex = copy(obj.ShapeSizex); cpObj.ShapeSizey = copy(obj.ShapeSizey); end function reload(obj, strObj) %reload Called by loadobj to assign properties obj.Header = feval([obj.StdMsgsHeaderClass '.loadobj'], strObj.Header); obj.CameraLocalPose = feval([obj.GeometryMsgsPoseClass '.loadobj'], strObj.CameraLocalPose); obj.CameraWorldPose = feval([obj.GeometryMsgsPoseClass '.loadobj'], strObj.CameraWorldPose); obj.CameraName = feval([obj.StdMsgsStringClass '.loadobj'], strObj.CameraName); MarkIdsCell = arrayfun(@(x) feval([obj.StdMsgsInt32Class '.loadobj'], x), strObj.MarkIds, 'UniformOutput', false); obj.MarkIds = vertcat(MarkIdsCell{:}); ShapeAlphaCell = arrayfun(@(x) feval([obj.StdMsgsFloat32Class '.loadobj'], x), strObj.ShapeAlpha, 'UniformOutput', false); obj.ShapeAlpha = vertcat(ShapeAlphaCell{:}); ShapeBetaCell = arrayfun(@(x) feval([obj.StdMsgsFloat32Class '.loadobj'], x), strObj.ShapeBeta, 'UniformOutput', false); obj.ShapeBeta = vertcat(ShapeBetaCell{:}); ShapeSizexCell = arrayfun(@(x) feval([obj.StdMsgsFloat32Class '.loadobj'], x), strObj.ShapeSizex, 'UniformOutput', false); obj.ShapeSizex = vertcat(ShapeSizexCell{:}); ShapeSizeyCell = arrayfun(@(x) feval([obj.StdMsgsFloat32Class '.loadobj'], x), strObj.ShapeSizey, 'UniformOutput', false); obj.ShapeSizey = vertcat(ShapeSizeyCell{:}); 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.CameraLocalPose = saveobj(obj.CameraLocalPose); strObj.CameraWorldPose = saveobj(obj.CameraWorldPose); strObj.CameraName = saveobj(obj.CameraName); strObj.MarkIds = arrayfun(@(x) saveobj(x), obj.MarkIds); strObj.ShapeAlpha = arrayfun(@(x) saveobj(x), obj.ShapeAlpha); strObj.ShapeBeta = arrayfun(@(x) saveobj(x), obj.ShapeBeta); strObj.ShapeSizex = arrayfun(@(x) saveobj(x), obj.ShapeSizex); strObj.ShapeSizey = arrayfun(@(x) saveobj(x), obj.ShapeSizey); 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.LandmarkDetected.empty(0,1); return end % Create an empty message object obj = robotics.ros.msggen.nao_interaction_msgs.LandmarkDetected; obj.reload(strObj); end end end