original_docstring: 
          Will handle the building_map_area service call. This function will create the interactive markers to build a new room.
          Returns a text message as response
  
          :param req: input parameters of the service
          :type action: BuildingMapArea
          
docstring: Will handle the building_map_area service call. This function will create the interactive markers to build a new room.
  Returns a text message as response
docstring_tokens: Will handle the building_map_area service call . This function will create the interactive markers to build a new room . Returns a text message as response
code: def handle_building_map_area(self,req):
          """
          Will handle the building_map_area service call. This function will create the interactive markers to build a new room.
          Returns a text message as response
  
          :param req: input parameters of the service
          :type action: BuildingMapArea
          """
          
          area_name = req.area_name
          interactive_markers_number = req.interactive_markers_number
          self.coord_IMs[area_name]={}
  
          for i in range (0,interactive_markers_number):
              int_marker = InteractiveMarker()
              int_marker.header.frame_id = "/map"
              int_marker.name = "marker_" + area_name + "_" + str(i)
              int_marker.description = "marker_" + area_name + "_" + str(i)
  
              # create a grey box marker
              box_marker = Marker()
              box_marker.type = Marker.CUBE
              box_marker.scale.x = 0.2
              box_marker.scale.y = 0.2
              box_marker.scale.z = 0.2
              box_marker.color.r = 0.0
              box_marker.color.g = 0.5
              box_marker.color.b = 0.5
              box_marker.color.a = 1.0
  
              # create a non-interactive control which contains the box
              box_control = InteractiveMarkerControl()
              box_control.always_visible = True
              box_control.markers.append( box_marker )
  
              # add the control to the interactive marker
              int_marker.controls.append( box_control )
  
              # create a control which will move the box
              # this control does not contain any markers,
              # which will cause RViz to insert two arrows
  
  
              rotate_control = InteractiveMarkerControl()
              rotate_control.orientation.w = 1
              rotate_control.orientation.x = 1
              rotate_control.orientation.y = 0
              rotate_control.orientation.z = 0
              rotate_control.name = "move_x"
              rotate_control.interaction_mode = InteractiveMarkerControl.MOVE_AXIS
              
  
              # # add the control to the interactive marker
              int_marker.controls.append(rotate_control)
  
              rotate_control = InteractiveMarkerControl()
              rotate_control.orientation.w = 1
              rotate_control.orientation.x = 0
              rotate_control.orientation.y = 0
              rotate_control.orientation.z = 1
              rotate_control.name = "move_y"
              rotate_control.interaction_mode = InteractiveMarkerControl.MOVE_AXIS
              int_marker.controls.append(rotate_control)
              # add the interactive marker to our collection &
              # tell the server to call processFeedback() when feedback arrives for it
              self.server.insert(int_marker, self.processFeedback)
  
              self.coord_IMs[area_name][str(i)]= {
                  "x": 0,
                  "y": 0
              }
  
              # 'commit' changes and send to all clients
              self.server.applyChanges()
  
  
          return BuildingMapAreaResponse('OK')
code_tokens: def handle_building_map_area ( self , req ) : area_name = req . area_name interactive_markers_number = req . interactive_markers_number self . coord_IMs [ area_name ] = { } for i in range ( 0 , interactive_markers_number ) : int_marker = InteractiveMarker ( ) int_marker . header . frame_id = "/map" int_marker . name = "marker_" + area_name + "_" + str ( i ) int_marker . description = "marker_" + area_name + "_" + str ( i ) box_marker = Marker ( ) box_marker . type = Marker . CUBE box_marker . scale . x = 0.2 box_marker . scale . y = 0.2 box_marker . scale . z = 0.2 box_marker . color . r = 0.0 box_marker . color . g = 0.5 box_marker . color . b = 0.5 box_marker . color . a = 1.0 box_control = InteractiveMarkerControl ( ) box_control . always_visible = True box_control . markers . append ( box_marker ) int_marker . controls . append ( box_control ) rotate_control = InteractiveMarkerControl ( ) rotate_control . orientation . w = 1 rotate_control . orientation . x = 1 rotate_control . orientation . y = 0 rotate_control . orientation . z = 0 rotate_control . name = "move_x" rotate_control . interaction_mode = InteractiveMarkerControl . MOVE_AXIS int_marker . controls . append ( rotate_control ) rotate_control = InteractiveMarkerControl ( ) rotate_control . orientation . w = 1 rotate_control . orientation . x = 0 rotate_control . orientation . y = 0 rotate_control . orientation . z = 1 rotate_control . name = "move_y" rotate_control . interaction_mode = InteractiveMarkerControl . MOVE_AXIS int_marker . controls . append ( rotate_control ) self . server . insert ( int_marker , self . processFeedback ) self . coord_IMs [ area_name ] [ str ( i ) ] = { "x" : 0 , "y" : 0 } self . server . applyChanges ( ) return BuildingMapAreaResponse ( 'OK' )
short_docstring: Will handle the building_map_area service call.
short_docstring_tokens: Will handle the building_map_area service call .
comment: """
          Will handle the building_map_area service call. This function will create the interactive markers to build a new room.
          Returns a text message as response
  
          :param req: input parameters of the service
          :type action: BuildingMapArea
          """$SEP$# create a grey box marker$SEP$# create a non-interactive control which contains the box$SEP$# add the control to the interactive marker$SEP$# create a control which will move the box$SEP$# this control does not contain any markers,$SEP$# which will cause RViz to insert two arrows$SEP$# # add the control to the interactive marker$SEP$# add the interactive marker to our collection &$SEP$# tell the server to call processFeedback() when feedback arrives for it$SEP$# 'commit' changes and send to all clients