1 /*********************************************************************
2 * Software License Agreement (BSD License)
3 *
4 *  Copyright (c) 2008, Willow Garage, Inc.
5 *  All rights reserved.
6 *
7 *  Redistribution and use in source and binary forms, with or without
8 *  modification, are permitted provided that the following conditions
9 *  are met:
10 *
11 *   * Redistributions of source code must retain the above copyright
12 *     notice, this list of conditions and the following disclaimer.
13 *   * Redistributions in binary form must reproduce the above
14 *     copyright notice, this list of conditions and the following
15 *     disclaimer in the documentation and/or other materials provided
16 *     with the distribution.
17 *   * Neither the name of the Willow Garage nor the names of its
18 *     contributors may be used to endorse or promote products derived
19 *     from this software without specific prior written permission.
20 *
21 *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22 *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23 *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
24 *  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
25 *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
26 *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
27 *  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
28 *  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
29 *  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30 *  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
31 *  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
32 *  POSSIBILITY OF SUCH DAMAGE.
33 *********************************************************************/
34 
35 /* Author: John Hsu */
36 
37 
38 #include <urdf_model/twist.h>
39 #include <fstream>
40 #include <sstream>
41 #include <algorithm>
42 #include <tinyxml.h>
43 #include <console_bridge/console.h>
44 
45 namespace urdf{
46 
parseTwist(Twist & twist,TiXmlElement * xml)47 bool parseTwist(Twist &twist, TiXmlElement* xml)
48 {
49   twist.clear();
50   if (xml)
51   {
52     const char* linear_char = xml->Attribute("linear");
53     if (linear_char != NULL)
54     {
55       try {
56         twist.linear.init(linear_char);
57       }
58       catch (ParseError &e) {
59         twist.linear.clear();
60         CONSOLE_BRIDGE_logError("Malformed linear string [%s]: %s", linear_char, e.what());
61         return false;
62       }
63     }
64 
65     const char* angular_char = xml->Attribute("angular");
66     if (angular_char != NULL)
67     {
68       try {
69         twist.angular.init(angular_char);
70       }
71       catch (ParseError &e) {
72         twist.angular.clear();
73         CONSOLE_BRIDGE_logError("Malformed angular [%s]: %s", angular_char, e.what());
74         return false;
75       }
76     }
77   }
78   return true;
79 }
80 
81 }
82 
83 
84 
85