1- from urdf_parser_py . xml_reflection . basics import *
2- import urdf_parser_py .xml_reflection as xmlr
1+ from urdf_parser_py import _now_private_property
2+ import urdf_parser_py ._xml_reflection as _xmlr
33
4- # What is the scope of plugins? Model, World, Sensor?
4+ _xmlr . start_namespace ( 'sdf' )
55
6- xmlr .start_namespace ('sdf' )
76
8-
9- class Pose (xmlr .Object ):
7+ class Pose (_xmlr .Object ):
108 def __init__ (self , vec = None , extra = None ):
119 self .xyz = None
1210 self .rpy = None
@@ -32,37 +30,37 @@ def as_vec(self):
3230 rpy = self .rpy if self .rpy else [0 , 0 , 0 ]
3331 return xyz + rpy
3432
35- def read_xml (self , node ):
33+ def _read_xml (self , node ):
3634 # Better way to do this? Define type?
37- vec = get_type ('vector6' ).read_xml (node )
38- self .load_vec (vec )
35+ vec = _xmlr . get_type ('vector6' ).read_xml_value (node )
36+ self .from_vec (vec )
3937
40- def write_xml (self , node ):
38+ def _write_xml (self , node ):
4139 vec = self .as_vec ()
42- get_type ('vector6' ).write_xml (node , vec )
40+ _xmlr . get_type ('vector6' ).write_xml_value (node , vec )
4341
44- def check_valid (self ):
42+ def _check_valid (self ):
4543 assert self .xyz is not None or self .rpy is not None
4644
4745
48- name_attribute = xmlr .Attribute ('name' , str )
49- pose_element = xmlr .Element ('pose' , Pose , False )
46+ _name_attribute = _xmlr .Attribute ('name' , str )
47+ _pose_element = _xmlr .Element ('pose' , Pose , required = False )
5048
5149
52- class Entity (xmlr .Object ):
50+ class Entity (_xmlr .Object ):
5351 def __init__ (self , name = None , pose = None ):
5452 self .name = name
5553 self .pose = pose
5654
5755
58- xmlr .reflect (Entity , params = [
59- name_attribute ,
60- pose_element
56+ _xmlr .reflect (Entity , params = [
57+ _name_attribute ,
58+ _pose_element
6159])
6260
6361
64- class Inertia (xmlr .Object ):
65- KEYS = ['ixx' , 'ixy' , 'ixz' , 'iyy' , 'iyz' , 'izz' ]
62+ class Inertia (_xmlr .Object ):
63+ _KEYS = ['ixx' , 'ixy' , 'ixz' , 'iyy' , 'iyz' , 'izz' ]
6664
6765 def __init__ (self , ixx = 0.0 , ixy = 0.0 , ixz = 0.0 , iyy = 0.0 , iyz = 0.0 , izz = 0.0 ):
6866 self .ixx = ixx
@@ -79,24 +77,21 @@ def to_matrix(self):
7977 [self .ixz , self .iyz , self .izz ]]
8078
8179
82- xmlr .reflect (Inertia ,
83- params = [xmlr .Element (key , float ) for key in Inertia .KEYS ])
84-
85- # Pretty much copy-paste... Better method?
86- # Use multiple inheritance to separate the objects out so they are unique?
80+ _xmlr .reflect (Inertia , tag = 'inertia' ,
81+ params = [_xmlr .Element (key , float ) for key in Inertia ._KEYS ])
8782
8883
89- class Inertial (xmlr .Object ):
84+ class Inertial (_xmlr .Object ):
9085 def __init__ (self , mass = 0.0 , inertia = None , pose = None ):
9186 self .mass = mass
9287 self .inertia = inertia
9388 self .pose = pose
9489
9590
96- xmlr .reflect (Inertial , params = [
97- xmlr .Element ('mass' , float ),
98- xmlr .Element ('inertia' , Inertia ),
99- pose_element
91+ _xmlr .reflect (Inertial , tag = 'inertial' , params = [
92+ _xmlr .Element ('mass' , float ),
93+ _xmlr .Element ('inertia' , Inertia ),
94+ _pose_element
10095])
10196
10297
@@ -107,14 +102,21 @@ def __init__(self, name=None, pose=None, inertial=None, kinematic=False):
107102 self .kinematic = kinematic
108103
109104
110- xmlr .reflect (Link , parent_cls = Entity , params = [
111- xmlr .Element ('inertial' , Inertial ),
112- xmlr .Attribute ('kinematic' , bool , False ),
113- xmlr .AggregateElement ('visual' , Visual , var = 'visuals' ),
114- xmlr .AggregateElement ('collision' , Collision , var = 'collisions' )
105+ _xmlr .reflect (Link , tag = 'link' , parent_cls = Entity , params = [
106+ _xmlr .Element ('inertial' , Inertial ),
107+ _xmlr .Attribute ('kinematic' , bool , False ),
108+ _xmlr .AggregateElement ('visual' , Visual , var = 'visuals' ),
109+ _xmlr .AggregateElement ('collision' , Collision , var = 'collisions' )
115110])
116111
117112
113+ class Joint (Entity ):
114+ pass
115+
116+
117+ _xmlr .reflect (Joint , tag = 'joint' , parent_cls = Entity , params = [])
118+
119+
118120class Model (Entity ):
119121 def __init__ (self , name = None , pose = None ):
120122 Entity .__init__ (self , name , pose )
@@ -123,10 +125,10 @@ def __init__(self, name=None, pose=None):
123125 self .plugins = []
124126
125127
126- xmlr .reflect (Model , parent_cls = Entity , params = [
127- xmlr .AggregateElement ('link' , Link , var = 'links' ),
128- xmlr .AggregateElement ('joint' , Joint , var = 'joints' ),
129- xmlr .AggregateElement ('plugin' , Plugin , var = 'plugins' )
128+ _xmlr .reflect (Model , parent_cls = Entity , params = [
129+ _xmlr .AggregateElement ('link' , Link , var = 'links' ),
130+ _xmlr .AggregateElement ('joint' , Joint , var = 'joints' ),
131+ _xmlr .AggregateElement ('plugin' , Plugin , var = 'plugins' )
130132])
131133
132- xmlr .end_namespace ('sdf' )
134+ _xmlr .end_namespace ('sdf' )
0 commit comments