bvh 1.0.0 → 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
|