bvh 1.0.0 → 1.0.1
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/.document +5 -5
- data/.gitignore +29 -27
- data/EXAMPLES.rdoc +1 -1
- data/LICENSE +20 -20
- data/README.rdoc +97 -97
- data/Rakefile +58 -58
- data/VERSION +1 -1
- data/bvh.gemspec +69 -69
- data/ext/bvh/Makefile +96 -58
- data/ext/bvh/bvh.c +10 -10
- data/ext/bvh/bvh.h +18 -10
- data/ext/bvh/bvh_parser.c +65 -63
- data/ext/bvh/extconf.rb +4 -4
- data/lib/bvh.rb +74 -74
- data/lib/bvh/exporter.rb +86 -86
- data/lib/bvh/matrix.rb +19 -19
- data/lib/bvh/motion.rb +79 -79
- data/lib/bvh/motion/channel_data.rb +147 -147
- data/lib/bvh/motion/frame.rb +124 -124
- data/lib/bvh/parser.rb +177 -177
- data/lib/bvh/skeleton.rb +84 -84
- data/test/bvh_test.rb +62 -62
- data/test/data/in/karate.bvh +767 -767
- data/test/helper.rb +13 -13
- metadata +21 -9
data/.document
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
README.rdoc
|
2
|
-
lib/**/*.rb
|
3
|
-
bin/*
|
4
|
-
features/**/*.feature
|
5
|
-
LICENSE
|
1
|
+
README.rdoc
|
2
|
+
lib/**/*.rb
|
3
|
+
bin/*
|
4
|
+
features/**/*.feature
|
5
|
+
LICENSE
|
data/.gitignore
CHANGED
@@ -1,27 +1,29 @@
|
|
1
|
-
## MAC OS
|
2
|
-
.DS_Store
|
3
|
-
|
4
|
-
## TEXTMATE
|
5
|
-
*.tmproj
|
6
|
-
tmtags
|
7
|
-
|
8
|
-
## EMACS
|
9
|
-
*~
|
10
|
-
\#*
|
11
|
-
.\#*
|
12
|
-
|
13
|
-
## VIM
|
14
|
-
*.swp
|
15
|
-
|
16
|
-
## PROJECT::GENERAL
|
17
|
-
coverage
|
18
|
-
rdoc
|
19
|
-
pkg
|
20
|
-
|
21
|
-
## PROJECT::SPECIFIC
|
22
|
-
viewer
|
23
|
-
test/data/in/lady.*
|
24
|
-
test/data/out/*
|
25
|
-
.idea
|
26
|
-
*.o
|
27
|
-
*.so
|
1
|
+
## MAC OS
|
2
|
+
.DS_Store
|
3
|
+
|
4
|
+
## TEXTMATE
|
5
|
+
*.tmproj
|
6
|
+
tmtags
|
7
|
+
|
8
|
+
## EMACS
|
9
|
+
*~
|
10
|
+
\#*
|
11
|
+
.\#*
|
12
|
+
|
13
|
+
## VIM
|
14
|
+
*.swp
|
15
|
+
|
16
|
+
## PROJECT::GENERAL
|
17
|
+
coverage
|
18
|
+
rdoc
|
19
|
+
pkg
|
20
|
+
|
21
|
+
## PROJECT::SPECIFIC
|
22
|
+
viewer
|
23
|
+
test/data/in/lady.*
|
24
|
+
test/data/out/*
|
25
|
+
.idea
|
26
|
+
*.o
|
27
|
+
*.so
|
28
|
+
*.bundle
|
29
|
+
Makefile
|
data/EXAMPLES.rdoc
CHANGED
@@ -1 +1 @@
|
|
1
|
-
Coming soon.
|
1
|
+
Coming soon.
|
data/LICENSE
CHANGED
@@ -1,20 +1,20 @@
|
|
1
|
-
Copyright (c) 2009 Colin MacKenzie IV
|
2
|
-
|
3
|
-
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
-
a copy of this software and associated documentation files (the
|
5
|
-
"Software"), to deal in the Software without restriction, including
|
6
|
-
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
-
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
-
permit persons to whom the Software is furnished to do so, subject to
|
9
|
-
the following conditions:
|
10
|
-
|
11
|
-
The above copyright notice and this permission notice shall be
|
12
|
-
included in all copies or substantial portions of the Software.
|
13
|
-
|
14
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
-
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
-
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
-
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
-
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
-
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
1
|
+
Copyright (c) 2009 Colin MacKenzie IV
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.rdoc
CHANGED
@@ -1,97 +1,97 @@
|
|
1
|
-
= BVH
|
2
|
-
|
3
|
-
This library allows you to parse, manipulate and save files in the BVH motion capture format.
|
4
|
-
|
5
|
-
To get started, remember to add the obligatory "require" statements:
|
6
|
-
|
7
|
-
require 'rubygems'
|
8
|
-
require 'bvh'
|
9
|
-
|
10
|
-
Once done, you can load a BVH file pretty easily:
|
11
|
-
|
12
|
-
bvh = Bvh.import("path/to/animation.bvh")
|
13
|
-
|
14
|
-
And you can export them just so:
|
15
|
-
|
16
|
-
bvh.export("path/to/copy_of_animation.bvh")
|
17
|
-
|
18
|
-
For a more exhaustive set of examples, see EXAMPLES.
|
19
|
-
|
20
|
-
== IMPORTANT
|
21
|
-
|
22
|
-
Although BVH is marked as 1.0, there is some functionality I haven't yet tested. In particular, the transform matrices
|
23
|
-
may or may not be accurate. The numbers look right from my command line, but I haven't had a chance to plug BVH into my
|
24
|
-
graphics engine, so they may in fact be wrong. Please let me know what you learn if you've tested this!
|
25
|
-
|
26
|
-
== The Format
|
27
|
-
|
28
|
-
What follows is a run-down of what I've learned about the BVH file format while researching and coding this library.
|
29
|
-
I reserve the right to be mistaken (but I don't think I am).
|
30
|
-
|
31
|
-
The BVH format was developed by a now-defunct company called Biovision, and stands for Biovision Hierarchical data
|
32
|
-
format. Used to store motion capture data, a BVH file consists of two sections: a HIERARCHY section, which describes
|
33
|
-
the skeletal structure that the motion capture data pertains to; and a MOTION section, which stores the motion capture
|
34
|
-
data itself.
|
35
|
-
|
36
|
-
=== Hierarchy
|
37
|
-
|
38
|
-
The HIERARCHY section contains a set of nested nodes which describe a character. Most of these nodes are named. Though
|
39
|
-
the name of a given node seems to be rarely used within the context of the BVH file itself, I suspect it will be quite
|
40
|
-
useful when biping 3D models to various body parts -- but that's well beyond the scope of this library.
|
41
|
-
|
42
|
-
Each node name is expected to be unique, regardless of usage, and this library enforces that. Every node in the
|
43
|
-
HIERARCHY section is referred to by this library as a Bone, and a collection of Bones (beginning with the ROOT node) is
|
44
|
-
referred to as a Skeleton.
|
45
|
-
|
46
|
-
The first (outermost) node is tagged "ROOT" and is, obviously, considered the root of the skeleton. (Technically, there
|
47
|
-
may be more than one ROOT in a BVH file, but this is atypical. This library does support multiple roots, however.)
|
48
|
-
Following the tag is the node name, and on the next line is an opening curly brace ("{").
|
49
|
-
|
50
|
-
Information about the current Bone follows the curly braces, and includes OFFSET and CHANNELS data. OFFSET information
|
51
|
-
specifies the offset from the parent Bone, or an offset from the origin for a root. Offset information of joints are
|
52
|
-
also used to infer length and orientation for their parent bone. If multiple joints are found, the length and
|
53
|
-
orientation are determined from the first of them.
|
54
|
-
|
55
|
-
By convention, the data for a given node is preceded by a tab character for readability. This is not technically
|
56
|
-
necessary, but some stricter BVH parsers require this explicitly and cannot support other forms of white space. This
|
57
|
-
library supports arbitrary amounts and types of white space.
|
58
|
-
|
59
|
-
Child nodes, which are tagged "JOINT", follow the OFFSET and CHANNELS data, and recursively define the tree until an
|
60
|
-
"End Site" node is detected. The "End Site" node contains only OFFSET information, which is used exclusively to infer
|
61
|
-
length and orientation of the last node in the list.
|
62
|
-
|
63
|
-
The CHANNELS information for each node specifies the order in which the channel information will appear; this applies
|
64
|
-
to OFFSET data (even though the Xposition, Yposition and Zposition channels are generally only declared at the root
|
65
|
-
level, and generally follow in the expected order) as well as the frame data in the MOTION segment.
|
66
|
-
|
67
|
-
=== Motion
|
68
|
-
|
69
|
-
The Motion section of the file contains the motion capture data itself. There are generally 2 lines preceding the data:
|
70
|
-
"Frames" and "Frame Time". The "Frames" line specifies the number of frames that will follow, and the "Frame Time" field
|
71
|
-
indicates how many seconds will pass per frame. Most BVH files specify the Frame Time as 0.0333333, or 30 frames per
|
72
|
-
second, but this can vary.
|
73
|
-
|
74
|
-
This BVH library dynamically counts the number of frames, and only uses the "Frames" field to verify that all available
|
75
|
-
data has been loaded. If the "Frames" field is missing, this library will not raise an error -- it will simply be unable
|
76
|
-
to verify the number of frames after a file has been loaded. (An error will be raised if the "Frames" field is supplied
|
77
|
-
and the numbers do not match, however.)
|
78
|
-
|
79
|
-
Finally, the remainder of the file consists of numbers delimited by a tab character and a space (though, again, this
|
80
|
-
library isn't particularly picky about the white space). Each line constitutes a single frame, and the series of numbers
|
81
|
-
on each line apply to the CHANNELS information in the order it was seen in the file. Because the same order is
|
82
|
-
maintained, the first several numbers usually correspond to translation (usually X, Y and Z), while the remainder of
|
83
|
-
the numbers correspond to rotation.
|
84
|
-
|
85
|
-
== Note on Patches/Pull Requests
|
86
|
-
|
87
|
-
* Fork the project.
|
88
|
-
* Make your feature addition or bug fix.
|
89
|
-
* Add tests for it. This is important so I don't break it in a future version unintentionally.
|
90
|
-
* Commit -- do not mess with rakefile, version, or history.
|
91
|
-
(If you want to have your own version, that's fine, but bump version in a commit by itself so that I can ignore it
|
92
|
-
when I pull.)
|
93
|
-
* Send me a pull request. Bonus points for topic branches.
|
94
|
-
|
95
|
-
== Copyright
|
96
|
-
|
97
|
-
Copyright (c) 2009 Colin MacKenzie IV. See LICENSE for details.
|
1
|
+
= BVH
|
2
|
+
|
3
|
+
This library allows you to parse, manipulate and save files in the BVH motion capture format.
|
4
|
+
|
5
|
+
To get started, remember to add the obligatory "require" statements:
|
6
|
+
|
7
|
+
require 'rubygems'
|
8
|
+
require 'bvh'
|
9
|
+
|
10
|
+
Once done, you can load a BVH file pretty easily:
|
11
|
+
|
12
|
+
bvh = Bvh.import("path/to/animation.bvh")
|
13
|
+
|
14
|
+
And you can export them just so:
|
15
|
+
|
16
|
+
bvh.export("path/to/copy_of_animation.bvh")
|
17
|
+
|
18
|
+
For a more exhaustive set of examples, see EXAMPLES.
|
19
|
+
|
20
|
+
== IMPORTANT
|
21
|
+
|
22
|
+
Although BVH is marked as 1.0, there is some functionality I haven't yet tested. In particular, the transform matrices
|
23
|
+
may or may not be accurate. The numbers look right from my command line, but I haven't had a chance to plug BVH into my
|
24
|
+
graphics engine, so they may in fact be wrong. Please let me know what you learn if you've tested this!
|
25
|
+
|
26
|
+
== The Format
|
27
|
+
|
28
|
+
What follows is a run-down of what I've learned about the BVH file format while researching and coding this library.
|
29
|
+
I reserve the right to be mistaken (but I don't think I am).
|
30
|
+
|
31
|
+
The BVH format was developed by a now-defunct company called Biovision, and stands for Biovision Hierarchical data
|
32
|
+
format. Used to store motion capture data, a BVH file consists of two sections: a HIERARCHY section, which describes
|
33
|
+
the skeletal structure that the motion capture data pertains to; and a MOTION section, which stores the motion capture
|
34
|
+
data itself.
|
35
|
+
|
36
|
+
=== Hierarchy
|
37
|
+
|
38
|
+
The HIERARCHY section contains a set of nested nodes which describe a character. Most of these nodes are named. Though
|
39
|
+
the name of a given node seems to be rarely used within the context of the BVH file itself, I suspect it will be quite
|
40
|
+
useful when biping 3D models to various body parts -- but that's well beyond the scope of this library.
|
41
|
+
|
42
|
+
Each node name is expected to be unique, regardless of usage, and this library enforces that. Every node in the
|
43
|
+
HIERARCHY section is referred to by this library as a Bone, and a collection of Bones (beginning with the ROOT node) is
|
44
|
+
referred to as a Skeleton.
|
45
|
+
|
46
|
+
The first (outermost) node is tagged "ROOT" and is, obviously, considered the root of the skeleton. (Technically, there
|
47
|
+
may be more than one ROOT in a BVH file, but this is atypical. This library does support multiple roots, however.)
|
48
|
+
Following the tag is the node name, and on the next line is an opening curly brace ("{").
|
49
|
+
|
50
|
+
Information about the current Bone follows the curly braces, and includes OFFSET and CHANNELS data. OFFSET information
|
51
|
+
specifies the offset from the parent Bone, or an offset from the origin for a root. Offset information of joints are
|
52
|
+
also used to infer length and orientation for their parent bone. If multiple joints are found, the length and
|
53
|
+
orientation are determined from the first of them.
|
54
|
+
|
55
|
+
By convention, the data for a given node is preceded by a tab character for readability. This is not technically
|
56
|
+
necessary, but some stricter BVH parsers require this explicitly and cannot support other forms of white space. This
|
57
|
+
library supports arbitrary amounts and types of white space.
|
58
|
+
|
59
|
+
Child nodes, which are tagged "JOINT", follow the OFFSET and CHANNELS data, and recursively define the tree until an
|
60
|
+
"End Site" node is detected. The "End Site" node contains only OFFSET information, which is used exclusively to infer
|
61
|
+
length and orientation of the last node in the list.
|
62
|
+
|
63
|
+
The CHANNELS information for each node specifies the order in which the channel information will appear; this applies
|
64
|
+
to OFFSET data (even though the Xposition, Yposition and Zposition channels are generally only declared at the root
|
65
|
+
level, and generally follow in the expected order) as well as the frame data in the MOTION segment.
|
66
|
+
|
67
|
+
=== Motion
|
68
|
+
|
69
|
+
The Motion section of the file contains the motion capture data itself. There are generally 2 lines preceding the data:
|
70
|
+
"Frames" and "Frame Time". The "Frames" line specifies the number of frames that will follow, and the "Frame Time" field
|
71
|
+
indicates how many seconds will pass per frame. Most BVH files specify the Frame Time as 0.0333333, or 30 frames per
|
72
|
+
second, but this can vary.
|
73
|
+
|
74
|
+
This BVH library dynamically counts the number of frames, and only uses the "Frames" field to verify that all available
|
75
|
+
data has been loaded. If the "Frames" field is missing, this library will not raise an error -- it will simply be unable
|
76
|
+
to verify the number of frames after a file has been loaded. (An error will be raised if the "Frames" field is supplied
|
77
|
+
and the numbers do not match, however.)
|
78
|
+
|
79
|
+
Finally, the remainder of the file consists of numbers delimited by a tab character and a space (though, again, this
|
80
|
+
library isn't particularly picky about the white space). Each line constitutes a single frame, and the series of numbers
|
81
|
+
on each line apply to the CHANNELS information in the order it was seen in the file. Because the same order is
|
82
|
+
maintained, the first several numbers usually correspond to translation (usually X, Y and Z), while the remainder of
|
83
|
+
the numbers correspond to rotation.
|
84
|
+
|
85
|
+
== Note on Patches/Pull Requests
|
86
|
+
|
87
|
+
* Fork the project.
|
88
|
+
* Make your feature addition or bug fix.
|
89
|
+
* Add tests for it. This is important so I don't break it in a future version unintentionally.
|
90
|
+
* Commit -- do not mess with rakefile, version, or history.
|
91
|
+
(If you want to have your own version, that's fine, but bump version in a commit by itself so that I can ignore it
|
92
|
+
when I pull.)
|
93
|
+
* Send me a pull request. Bonus points for topic branches.
|
94
|
+
|
95
|
+
== Copyright
|
96
|
+
|
97
|
+
Copyright (c) 2009 Colin MacKenzie IV. See LICENSE for details.
|
data/Rakefile
CHANGED
@@ -1,58 +1,58 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'rake'
|
3
|
-
|
4
|
-
begin
|
5
|
-
require 'jeweler'
|
6
|
-
Jeweler::Tasks.new do |gem|
|
7
|
-
gem.name = "bvh"
|
8
|
-
gem.summary = %Q{A library for loading, modifying and saving BVH motion capture files.}
|
9
|
-
gem.description = %Q{A library for loading, modifying and saving BVH motion capture files.}
|
10
|
-
gem.email = "sinisterchipmunk@gmail.com"
|
11
|
-
gem.homepage = "http://github.com/sinisterchipmunk/bvh"
|
12
|
-
gem.authors = ["Colin MacKenzie IV (sinisterchipmunk)"]
|
13
|
-
gem.add_development_dependency "shoulda", ">= 0"
|
14
|
-
gem.extensions = FileList["ext/**/extconf.rb"].to_a
|
15
|
-
gem.files.concat FileList["ext/**/*.c"].to_a
|
16
|
-
gem.files.concat FileList["ext/**/*.h"].to_a
|
17
|
-
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
18
|
-
end
|
19
|
-
Jeweler::GemcutterTasks.new
|
20
|
-
rescue LoadError
|
21
|
-
puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
|
22
|
-
end
|
23
|
-
|
24
|
-
require 'rake/testtask'
|
25
|
-
Rake::TestTask.new(:test) do |test|
|
26
|
-
test.libs << 'lib' << 'test'
|
27
|
-
test.pattern = 'test/**/*_test.rb'
|
28
|
-
test.verbose = true
|
29
|
-
end
|
30
|
-
|
31
|
-
begin
|
32
|
-
require 'rcov/rcovtask'
|
33
|
-
Rcov::RcovTask.new do |test|
|
34
|
-
test.libs << 'test'
|
35
|
-
test.pattern = 'test/**/test_*.rb'
|
36
|
-
test.verbose = true
|
37
|
-
end
|
38
|
-
rescue LoadError
|
39
|
-
task :rcov do
|
40
|
-
abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
task :test => :check_dependencies
|
45
|
-
|
46
|
-
task :default => :test
|
47
|
-
|
48
|
-
require 'rake/rdoctask'
|
49
|
-
Rake::RDocTask.new do |rdoc|
|
50
|
-
version = File.exist?('VERSION') ? File.read('VERSION') : ""
|
51
|
-
|
52
|
-
rdoc.rdoc_dir = 'rdoc'
|
53
|
-
rdoc.title = "BVH #{version}"
|
54
|
-
rdoc.rdoc_files.include('README*')
|
55
|
-
rdoc.rdoc_files.include('EXAMPLES*')
|
56
|
-
rdoc.rdoc_files.include('LICENSE')
|
57
|
-
rdoc.rdoc_files.include('lib/**/*.rb')
|
58
|
-
end
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rake'
|
3
|
+
|
4
|
+
begin
|
5
|
+
require 'jeweler'
|
6
|
+
Jeweler::Tasks.new do |gem|
|
7
|
+
gem.name = "bvh"
|
8
|
+
gem.summary = %Q{A library for loading, modifying and saving BVH motion capture files.}
|
9
|
+
gem.description = %Q{A library for loading, modifying and saving BVH motion capture files.}
|
10
|
+
gem.email = "sinisterchipmunk@gmail.com"
|
11
|
+
gem.homepage = "http://github.com/sinisterchipmunk/bvh"
|
12
|
+
gem.authors = ["Colin MacKenzie IV (sinisterchipmunk)"]
|
13
|
+
gem.add_development_dependency "shoulda", ">= 0"
|
14
|
+
gem.extensions = FileList["ext/**/extconf.rb"].to_a
|
15
|
+
gem.files.concat FileList["ext/**/*.c"].to_a
|
16
|
+
gem.files.concat FileList["ext/**/*.h"].to_a
|
17
|
+
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
18
|
+
end
|
19
|
+
Jeweler::GemcutterTasks.new
|
20
|
+
rescue LoadError
|
21
|
+
puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
|
22
|
+
end
|
23
|
+
|
24
|
+
require 'rake/testtask'
|
25
|
+
Rake::TestTask.new(:test) do |test|
|
26
|
+
test.libs << 'lib' << 'test'
|
27
|
+
test.pattern = 'test/**/*_test.rb'
|
28
|
+
test.verbose = true
|
29
|
+
end
|
30
|
+
|
31
|
+
begin
|
32
|
+
require 'rcov/rcovtask'
|
33
|
+
Rcov::RcovTask.new do |test|
|
34
|
+
test.libs << 'test'
|
35
|
+
test.pattern = 'test/**/test_*.rb'
|
36
|
+
test.verbose = true
|
37
|
+
end
|
38
|
+
rescue LoadError
|
39
|
+
task :rcov do
|
40
|
+
abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
task :test => :check_dependencies
|
45
|
+
|
46
|
+
task :default => :test
|
47
|
+
|
48
|
+
require 'rake/rdoctask'
|
49
|
+
Rake::RDocTask.new do |rdoc|
|
50
|
+
version = File.exist?('VERSION') ? File.read('VERSION') : ""
|
51
|
+
|
52
|
+
rdoc.rdoc_dir = 'rdoc'
|
53
|
+
rdoc.title = "BVH #{version}"
|
54
|
+
rdoc.rdoc_files.include('README*')
|
55
|
+
rdoc.rdoc_files.include('EXAMPLES*')
|
56
|
+
rdoc.rdoc_files.include('LICENSE')
|
57
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
58
|
+
end
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.0.
|
1
|
+
1.0.1
|
data/bvh.gemspec
CHANGED
@@ -1,69 +1,69 @@
|
|
1
|
-
# Generated by jeweler
|
2
|
-
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in
|
4
|
-
# -*- encoding: utf-8 -*-
|
5
|
-
|
6
|
-
Gem::Specification.new do |s|
|
7
|
-
s.name = %q{bvh}
|
8
|
-
s.version = "1.0.
|
9
|
-
|
10
|
-
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
-
s.authors = ["Colin MacKenzie IV (sinisterchipmunk)"]
|
12
|
-
s.date = %q{
|
13
|
-
s.description = %q{A library for loading, modifying and saving BVH motion capture files.}
|
14
|
-
s.email = %q{sinisterchipmunk@gmail.com}
|
15
|
-
s.extensions = ["ext/bvh/extconf.rb"]
|
16
|
-
s.extra_rdoc_files = [
|
17
|
-
"LICENSE",
|
18
|
-
"README.rdoc"
|
19
|
-
]
|
20
|
-
s.files = [
|
21
|
-
".document",
|
22
|
-
".gitignore",
|
23
|
-
"EXAMPLES.rdoc",
|
24
|
-
"LICENSE",
|
25
|
-
"README.rdoc",
|
26
|
-
"Rakefile",
|
27
|
-
"VERSION",
|
28
|
-
"bvh.gemspec",
|
29
|
-
"ext/bvh/Makefile",
|
30
|
-
"ext/bvh/bvh.c",
|
31
|
-
"ext/bvh/bvh.h",
|
32
|
-
"ext/bvh/bvh_parser.c",
|
33
|
-
"ext/bvh/extconf.rb",
|
34
|
-
"lib/bvh.rb",
|
35
|
-
"lib/bvh/exporter.rb",
|
36
|
-
"lib/bvh/matrix.rb",
|
37
|
-
"lib/bvh/motion.rb",
|
38
|
-
"lib/bvh/motion/channel_data.rb",
|
39
|
-
"lib/bvh/motion/frame.rb",
|
40
|
-
"lib/bvh/parser.rb",
|
41
|
-
"lib/bvh/skeleton.rb",
|
42
|
-
"test/bvh_test.rb",
|
43
|
-
"test/data/in/karate.bvh",
|
44
|
-
"test/helper.rb"
|
45
|
-
]
|
46
|
-
s.homepage = %q{http://github.com/sinisterchipmunk/bvh}
|
47
|
-
s.rdoc_options = ["--charset=UTF-8"]
|
48
|
-
s.require_paths = ["lib"]
|
49
|
-
s.rubygems_version = %q{1.3.
|
50
|
-
s.summary = %q{A library for loading, modifying and saving BVH motion capture files.}
|
51
|
-
s.test_files = [
|
52
|
-
"test/bvh_test.rb",
|
53
|
-
"test/helper.rb"
|
54
|
-
]
|
55
|
-
|
56
|
-
if s.respond_to? :specification_version then
|
57
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
58
|
-
s.specification_version = 3
|
59
|
-
|
60
|
-
if Gem::Version.new(Gem::
|
61
|
-
s.add_development_dependency(%q<shoulda>, [">= 0"])
|
62
|
-
else
|
63
|
-
s.add_dependency(%q<shoulda>, [">= 0"])
|
64
|
-
end
|
65
|
-
else
|
66
|
-
s.add_dependency(%q<shoulda>, [">= 0"])
|
67
|
-
end
|
68
|
-
end
|
69
|
-
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{bvh}
|
8
|
+
s.version = "1.0.1"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Colin MacKenzie IV (sinisterchipmunk)"]
|
12
|
+
s.date = %q{2010-10-02}
|
13
|
+
s.description = %q{A library for loading, modifying and saving BVH motion capture files.}
|
14
|
+
s.email = %q{sinisterchipmunk@gmail.com}
|
15
|
+
s.extensions = ["ext/bvh/extconf.rb"]
|
16
|
+
s.extra_rdoc_files = [
|
17
|
+
"LICENSE",
|
18
|
+
"README.rdoc"
|
19
|
+
]
|
20
|
+
s.files = [
|
21
|
+
".document",
|
22
|
+
".gitignore",
|
23
|
+
"EXAMPLES.rdoc",
|
24
|
+
"LICENSE",
|
25
|
+
"README.rdoc",
|
26
|
+
"Rakefile",
|
27
|
+
"VERSION",
|
28
|
+
"bvh.gemspec",
|
29
|
+
"ext/bvh/Makefile",
|
30
|
+
"ext/bvh/bvh.c",
|
31
|
+
"ext/bvh/bvh.h",
|
32
|
+
"ext/bvh/bvh_parser.c",
|
33
|
+
"ext/bvh/extconf.rb",
|
34
|
+
"lib/bvh.rb",
|
35
|
+
"lib/bvh/exporter.rb",
|
36
|
+
"lib/bvh/matrix.rb",
|
37
|
+
"lib/bvh/motion.rb",
|
38
|
+
"lib/bvh/motion/channel_data.rb",
|
39
|
+
"lib/bvh/motion/frame.rb",
|
40
|
+
"lib/bvh/parser.rb",
|
41
|
+
"lib/bvh/skeleton.rb",
|
42
|
+
"test/bvh_test.rb",
|
43
|
+
"test/data/in/karate.bvh",
|
44
|
+
"test/helper.rb"
|
45
|
+
]
|
46
|
+
s.homepage = %q{http://github.com/sinisterchipmunk/bvh}
|
47
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
48
|
+
s.require_paths = ["lib"]
|
49
|
+
s.rubygems_version = %q{1.3.7}
|
50
|
+
s.summary = %q{A library for loading, modifying and saving BVH motion capture files.}
|
51
|
+
s.test_files = [
|
52
|
+
"test/bvh_test.rb",
|
53
|
+
"test/helper.rb"
|
54
|
+
]
|
55
|
+
|
56
|
+
if s.respond_to? :specification_version then
|
57
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
58
|
+
s.specification_version = 3
|
59
|
+
|
60
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
61
|
+
s.add_development_dependency(%q<shoulda>, [">= 0"])
|
62
|
+
else
|
63
|
+
s.add_dependency(%q<shoulda>, [">= 0"])
|
64
|
+
end
|
65
|
+
else
|
66
|
+
s.add_dependency(%q<shoulda>, [">= 0"])
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|