floorplanner-fml 0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/xml/fml.rng ADDED
@@ -0,0 +1,268 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <grammar xmlns:m="http://www.floorplaner.com" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
3
+ <start>
4
+ <element name="project">
5
+ <interleave>
6
+ <element name="name"><text/></element>
7
+ <optional>
8
+ <element name="description"><text/></element>
9
+ </optional><optional>
10
+ <element name="public"><data type="boolean"/></element>
11
+ </optional><optional>
12
+ <element name="external-identifier"><ref name="fp.digitLess"/></element>
13
+ </optional><optional>
14
+ <element name="id"><data type="integer"/></element>
15
+ </optional><optional>
16
+ <element name="created-at"><data type="dateTime"/></element>
17
+ </optional><optional>
18
+ <element name="updated-at"><data type="dateTime"/></element>
19
+ </optional><optional>
20
+ <element name="element-library-id"><data type="integer"/></element>
21
+ </optional><optional>
22
+ <element name="enable-autosave"><data type="boolean"/></element>
23
+ </optional><optional>
24
+ <element name="grid-cell-size"><data type="decimal"/></element>
25
+ </optional><optional>
26
+ <element name="grid-sub-cell-size"><data type="decimal"/></element>
27
+ </optional><optional>
28
+ <element name="project-url"><data type="anyURI"/></element>
29
+ </optional>
30
+
31
+ <oneOrMore>
32
+ <element name="floor">
33
+ <interleave>
34
+ <element name="name"><text/></element>
35
+ <element name="level"><data type="integer"/></element>
36
+ <element name="height"><data type="float"/></element>
37
+ <optional>
38
+ <element name="id"><data type="integer"/></element>
39
+ </optional><optional>
40
+ <element name="created-at"><data type="dateTime"/></element>
41
+ </optional><optional>
42
+ <element name="updated-at"><data type="dateTime"/></element>
43
+ </optional>
44
+
45
+ <oneOrMore>
46
+ <element name="design">
47
+ <interleave>
48
+ <element name="name"><text/></element>
49
+ <optional>
50
+ <element name="id"><data type="integer"/></element>
51
+ </optional><optional>
52
+ <element name="project-id"><data type="integer"/></element>
53
+ </optional><optional>
54
+ <element name="floor-id"><data type="integer"/></element>
55
+ </optional><optional>
56
+ <element name="created-at"><data type="dateTime"/></element>
57
+ </optional><optional>
58
+ <element name="updated-at"><data type="dateTime"/></element>
59
+ </optional><optional>
60
+ <element name="thumb-url"><data type="anyURI"/></element>
61
+ </optional><optional>
62
+ <element name="design-type">
63
+ <choice>
64
+ <value>save</value>
65
+ <value>save_as</value>
66
+ <value>save_and_mail</value>
67
+ </choice>
68
+ </element>
69
+ </optional>
70
+
71
+ <zeroOrMore>
72
+ <element name="asset">
73
+ <interleave>
74
+ <attribute name="id"><ref name="fp.digitLess"/></attribute>
75
+ <element name="url2d"><data type="anyURI"/></element>
76
+ <choice>
77
+ <!-- Object assets -->
78
+ <group>
79
+ <interleave>
80
+ <element name="name"><text/></element>
81
+ <element name="url3d"><data type="anyURI"/></element>
82
+ <element name="layer"><data type="integer"/></element>
83
+ <optional>
84
+ <element name="filter-value"><text/></element>
85
+ </optional>
86
+ </interleave>
87
+ </group>
88
+ <!-- Texture assets -->
89
+ <group>
90
+ <interleave>
91
+ <element name="name"><text/></element>
92
+ <element name="color"><ref name="fp.color"/></element>
93
+ </interleave>
94
+ </group>
95
+ <!-- Line assets -->
96
+ <group>
97
+ <interleave>
98
+ <element name="type"><text/></element>
99
+ <element name="color"><ref name="fp.color"/></element>
100
+ <element name="thickness"><data type="float"/></element>
101
+ </interleave>
102
+ </group>
103
+ </choice>
104
+ </interleave>
105
+ </element>
106
+ </zeroOrMore>
107
+
108
+ <zeroOrMore>
109
+ <element name="object">
110
+ <choice>
111
+ <!-- Furniture elements -->
112
+ <group>
113
+ <interleave>
114
+ <element name="asset">
115
+ <attribute name="refid"><ref name="fp.digitLess"/></attribute>
116
+ </element>
117
+ <element name="type">
118
+ <choice>
119
+ <value>furniture</value>
120
+ <value>text</value>
121
+ <value>opening</value>
122
+ </choice>
123
+ </element>
124
+ <element name="points"><ref name="fp.threeFloats"/></element>
125
+ <element name="size"><ref name="fp.threeFloats"/></element>
126
+ <optional>
127
+ <element name="color"><ref name="fp.color"/></element>
128
+ </optional><optional>
129
+ <element name="rotation"><ref name="fp.color"/></element>
130
+ </optional><optional>
131
+ <element name="mirrored"><ref name="fp.threeBools"/></element>
132
+ </optional><optional>
133
+ <element name="locked"><data type="boolean"/></element>
134
+ </optional>
135
+ </interleave>
136
+ </group>
137
+ <!-- Text labels -->
138
+ <group>
139
+ <interleave>
140
+ <element name="text"><text/></element>
141
+ <element name="font-family"><text/></element>
142
+ <element name="font-size"><data type="integer"/></element>
143
+ <element name="font-color"><ref name="fp.color"/></element>
144
+ <element name="background-color"><ref name="fp.color"/></element>
145
+ <element name="background-alpha"><data type="integer"/></element>
146
+ <optional>
147
+ <element name="font-bold"><data type="boolean"/></element>
148
+ </optional><optional>
149
+ <element name="font-italic"><data type="boolean"/></element>
150
+ </optional><optional>
151
+ <element name="font-underline"><data type="boolean"/></element>
152
+ </optional><optional>
153
+ <element name="font-outline"><data type="boolean"/></element>
154
+ </optional>
155
+ </interleave>
156
+ </group>
157
+ </choice>
158
+ </element>
159
+ </zeroOrMore>
160
+
161
+ <zeroOrMore>
162
+ <element name="line">
163
+ <interleave>
164
+ <element name="type"><text/></element>
165
+ <element name="points"><ref name="fp.sixOrNineFloats"/></element>
166
+ <optional>
167
+ <element name="asset">
168
+ <attribute name="refid"><ref name="fp.digitLess"/></attribute>
169
+ </element>
170
+ </optional>
171
+ <optional>
172
+ <element name="color"><ref name="fp.color"/></element>
173
+ </optional><optional>
174
+ <element name="thickness"><data type="float"/></element>
175
+ </optional><optional>
176
+ <element name="height"><data type="float"/></element>
177
+ </optional><optional>
178
+ <element name="custom-text"><text/></element>
179
+ </optional>
180
+ </interleave>
181
+ </element>
182
+ </zeroOrMore>
183
+
184
+ <zeroOrMore>
185
+ <element name="area">
186
+ <oneOrMore>
187
+ <element name="line">
188
+ <interleave>
189
+ <element name="type">
190
+ <choice>
191
+ <value>generated_area</value>
192
+ <value>custom_area</value>
193
+ </choice>
194
+ </element>
195
+ <element name="points">
196
+ <data type="string">
197
+ <!-- broke regexp implementation, pattern works Ruby's regexp ->
198
+ <param name="pattern">
199
+ ^((\s*[-+]?[0-9]*\.?[0-9]+\s+){5,8}\s*[-+]?[0-9]*\.?[0-9]+\s*?(?:,)?)*$
200
+ </param>
201
+ <- -->
202
+ </data>
203
+ </element>
204
+ <element name="color"><ref name="fp.color"/></element>
205
+ <optional>
206
+ <element name="asset">
207
+ <attribute name="refid"><ref name="fp.digitLess"/></attribute>
208
+ </element>
209
+ </optional><optional>
210
+ <element name="rotation"><ref name="fp.threeFloats"/></element>
211
+ </optional>
212
+ </interleave>
213
+ </element>
214
+ </oneOrMore>
215
+ </element>
216
+ </zeroOrMore>
217
+ </interleave>
218
+ </element>
219
+ </oneOrMore>
220
+ </interleave>
221
+ </element>
222
+ </oneOrMore>
223
+ </interleave>
224
+ </element>
225
+ </start>
226
+
227
+ <define name="fp.color">
228
+ <data type="string">
229
+ <param name="pattern">#([a-fA-F\d]{3}|[a-fA-F\d]{6})</param>
230
+ </data>
231
+ </define>
232
+
233
+ <define name="fp.threeFloats">
234
+ <list>
235
+ <data type="float"/>
236
+ <data type="float"/>
237
+ <data type="float"/>
238
+ </list>
239
+ </define>
240
+
241
+ <define name="fp.threeBools">
242
+ <list>
243
+ <data type="boolean"/>
244
+ <data type="boolean"/>
245
+ <data type="boolean"/>
246
+ </list>
247
+ </define>
248
+
249
+ <define name="fp.digitLess">
250
+ <data type="string">
251
+ <param name="pattern">[a-zA-Z].*</param>
252
+ </data>
253
+ </define>
254
+ <define name="fp.sixOrNineFloats">
255
+ <choice>
256
+ <list>
257
+ <data type="float"/><data type="float"/>
258
+ <data type="float"/><data type="float"/>
259
+ <data type="float"/><data type="float"/>
260
+ </list>
261
+ <list>
262
+ <data type="float"/><data type="float"/><data type="float"/>
263
+ <data type="float"/><data type="float"/><data type="float"/>
264
+ <data type="float"/><data type="float"/><data type="float"/>
265
+ </list>
266
+ </choice>
267
+ </define>
268
+ </grammar>
metadata ADDED
@@ -0,0 +1,110 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: floorplanner-fml
3
+ version: !ruby/object:Gem::Version
4
+ version: "0.2"
5
+ platform: ruby
6
+ authors:
7
+ - Dusan Maliarik
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-06-30 00:00:00 -07:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: libxml-ruby
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: "0"
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: rubyzip
27
+ type: :runtime
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: "0"
34
+ version:
35
+ description: Floor plan document toolkit
36
+ email: dusan.maliarik@gmail.com
37
+ executables:
38
+ - fml2dae.rb
39
+ - fml2obj.rb
40
+ extensions: []
41
+
42
+ extra_rdoc_files: []
43
+
44
+ files:
45
+ - README
46
+ - bin/fml2dae.rb
47
+ - bin/fml2obj.rb
48
+ - lib/config.yml
49
+ - lib/floorplanner.rb
50
+ - lib/floorplanner/area_builder.rb
51
+ - lib/floorplanner/asset.rb
52
+ - lib/floorplanner/collada_export.rb
53
+ - lib/floorplanner/design.rb
54
+ - lib/floorplanner/document.rb
55
+ - lib/floorplanner/obj_export.rb
56
+ - lib/floorplanner/opening3d.rb
57
+ - lib/floorplanner/rib_export.rb
58
+ - lib/floorplanner/svg_export.rb
59
+ - lib/floorplanner/wall3d.rb
60
+ - lib/floorplanner/wall_builder.rb
61
+ - lib/geom.rb
62
+ - lib/geom/connection.rb
63
+ - lib/geom/ear_trim.rb
64
+ - lib/geom/edge.rb
65
+ - lib/geom/intersection.rb
66
+ - lib/geom/matrix3d.rb
67
+ - lib/geom/number.rb
68
+ - lib/geom/plane.rb
69
+ - lib/geom/polygon.rb
70
+ - lib/geom/triangle_mesh.rb
71
+ - lib/geom/triangle.rb
72
+ - lib/geom/vertex.rb
73
+ - lib/collada/document.rb
74
+ - lib/collada/geometry.rb
75
+ - lib/keyhole/archive.rb
76
+ - views/design.dae.erb
77
+ - views/design.obj.erb
78
+ - views/design.svg.erb
79
+ - views/design.rib.erb
80
+ - xml/fml.rng
81
+ - xml/collada_schema_1_4.xsd
82
+ has_rdoc: false
83
+ homepage: http://floorplanner.com/
84
+ licenses:
85
+ post_install_message:
86
+ rdoc_options: []
87
+
88
+ require_paths:
89
+ - lib
90
+ required_ruby_version: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - ">="
93
+ - !ruby/object:Gem::Version
94
+ version: "0"
95
+ version:
96
+ required_rubygems_version: !ruby/object:Gem::Requirement
97
+ requirements:
98
+ - - ">="
99
+ - !ruby/object:Gem::Version
100
+ version: 1.3.0
101
+ version:
102
+ requirements: []
103
+
104
+ rubyforge_project:
105
+ rubygems_version: 1.3.5
106
+ signing_key:
107
+ specification_version: 2
108
+ summary: Floor plan document toolkit
109
+ test_files: []
110
+