Gazebo Common
API Reference
6.0.1
insert_drive_file
Tutorials
library_books
Classes
toc
Namespaces
insert_drive_file
Files
launch
Gazebo Website
Index
List
Hierarchy
Members: All
Members: Functions
Members: Variables
Members: Typedefs
Members: Enumerations
Members: Enumerator
List
Members
Functions
Typedefs
Variables
Enumerations
Enumerator
src
gz-common
graphics
include
gz
common
Skeleton.hh
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2016 Open Source Robotics Foundation
3
*
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
* you may not use this file except in compliance with the License.
6
* You may obtain a copy of the License at
7
*
8
* http://www.apache.org/licenses/LICENSE-2.0
9
*
10
* Unless required by applicable law or agreed to in writing, software
11
* distributed under the License is distributed on an "AS IS" BASIS,
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
* See the License for the specific language governing permissions and
14
* limitations under the License.
15
*
16
*/
17
#ifndef GZ_COMMON_SKELETON_HH_
18
#define GZ_COMMON_SKELETON_HH_
19
20
#include <vector>
21
#include <string>
22
#include <map>
23
#include <utility>
24
25
#include <
gz/math/Matrix4.hh
>
26
27
#include <gz/utils/ImplPtr.hh>
28
29
#include <
gz/common/SkeletonNode.hh
>
30
#include <gz/common/graphics/Export.hh>
31
32
namespace
gz
33
{
34
namespace
common
35
{
36
class
SkeletonAnimation;
37
40
class
GZ_COMMON_GRAPHICS_VISIBLE
Skeleton
41
{
43
public
:
Skeleton
();
44
47
public
:
explicit
Skeleton
(
SkeletonNode
*_root);
48
50
public
:
virtual
~Skeleton
();
51
54
public
:
void
RootNode
(
SkeletonNode
*_node);
55
58
public
:
SkeletonNode
*
RootNode
()
const
;
59
63
public
:
SkeletonNode
*
NodeByName
(
const
std::string
&_name)
const
;
64
68
public
:
SkeletonNode
*
NodeById
(
const
std::string
&_id)
const
;
69
73
public
:
SkeletonNode
*
NodeByHandle
(
const
unsigned
int
_handle)
const
;
74
77
public
:
unsigned
int
NodeCount
()
const
;
78
81
public
:
unsigned
int
JointCount
()
const
;
82
85
public
:
void
Scale
(
const
double
_scale);
86
89
public
:
void
SetBindShapeTransform
(
const
math::Matrix4d
&_trans);
90
93
public
:
math::Matrix4d
BindShapeTransform
()
const
;
94
96
public
:
void
PrintTransforms
()
const
;
97
100
public
:
const
SkeletonNodeMap
&
Nodes
()
const
;
101
104
public
:
void
SetNumVertAttached
(
const
unsigned
int
_vertices);
105
110
public
:
void
AddVertNodeWeight
(
const
unsigned
int
_vertex,
111
const
std::string
&_node,
const
double
_weight);
112
116
public
:
unsigned
int
VertNodeWeightCount
(
117
const
unsigned
int
_vertex)
const
;
118
123
public
:
std::pair<std::string, double>
VertNodeWeight
(
124
const
unsigned
int
_v,
const
unsigned
int
_i)
const
;
125
128
public
:
unsigned
int
AnimationCount
()
const
;
129
133
public
:
SkeletonAnimation
*
Animation
(
const
unsigned
int
_i)
const
;
134
138
public
:
void
AddAnimation
(
SkeletonAnimation
*_anim);
139
144
public
:
bool
AddBvhAnimation
(
const
std::string
&_bvhFile,
double
_scale);
145
151
public
:
std::string
NodeNameAnimToSkin
(
unsigned
int
_index,
152
const
std::string
&_animNodeName);
153
159
public
:
math::Matrix4d
AlignTranslation
(
unsigned
int
_index,
160
const
std::string
&_animNodeName);
161
167
public
:
math::Matrix4d
AlignRotation
(
unsigned
int
_index,
168
const
std::string
&_animNodeName);
169
172
private
:
void
BuildNodeMap();
173
175
GZ_UTILS_UNIQUE_IMPL_PTR(dataPtr)
176
};
177
}
178
}
179
#endif