6 #ifndef CNOID_BODY_BODY_MOTION_H 7 #define CNOID_BODY_BODY_MOTION_H 9 #include <cnoid/MultiValueSeq> 10 #include <cnoid/MultiSE3Seq> 11 #include <cnoid/Signal> 12 #include <boost/make_shared.hpp> 29 virtual void setDimension(
int numFrames,
int numJoints,
bool clearNewArea =
false);
31 void setDimension(
int numFrames,
int numJoints,
int numLinks,
bool clearNewArea =
false);
33 virtual void setNumParts(
int numParts,
bool clearNewElements =
false);
34 virtual int getNumParts()
const;
36 int numJoints()
const {
return jointPosSeq_->numParts(); }
37 int numLinks()
const {
return linkPosSeq_->numParts(); }
39 double frameRate()
const {
return jointPosSeq_->frameRate(); }
40 virtual double getFrameRate()
const;
41 virtual void setFrameRate(
double frameRate);
43 double timeStep()
const {
return jointPosSeq_->timeStep(); }
45 virtual int getOffsetTimeFrame()
const;
48 return std::max(jointPosSeq_->numFrames(), linkPosSeq_->numFrames());
50 virtual int getNumFrames()
const;
51 virtual void setNumFrames(
int n,
bool clearNewArea =
false);
72 Frame(
BodyMotion& motion,
int frame) : motion_(motion), frame_(frame) { }
74 Frame(
const Frame& org) : motion_(org.motion_), frame_(org.frame_) { }
76 int frame()
const {
return frame_; }
87 int frame()
const {
return frame_; }
97 bool loadStandardYAMLformat(
const std::string& filename);
98 bool saveAsStandardYAMLformat(
const std::string& filename);
106 template <
class SeqType>
107 boost::shared_ptr<SeqType>
extraSeq(
const std::string& contentName)
const {
108 ExtraSeqMap::const_iterator p = extraSeqs.find(contentName);
109 return ((p != extraSeqs.end()) ?
110 boost::dynamic_pointer_cast<SeqType>(p->second) : boost::shared_ptr<SeqType>());
115 template <
class SeqType>
118 boost::shared_ptr<SeqType> seq;
123 seq = boost::make_shared<SeqType>(numFrames());
124 seq->setFrameRate(frameRate());
126 sigExtraSeqsChanged_();
131 void clearExtraSeq(
const std::string& contentName);
134 return sigExtraSeqsChanged_;
142 ExtraSeqMap extraSeqs;
ConstSeqIterator extraSeqEnd() const
Definition: BodyMotion.h:104
CNOID_EXPORT std::ostream & operator<<(std::ostream &os, const BoundingBox &bb)
Definition: BoundingBox.cpp:153
double frameRate() const
Definition: BodyMotion.h:39
boost::shared_ptr< SeqType > extraSeq(const std::string &contentName) const
Definition: BodyMotion.h:107
int frame() const
Definition: BodyMotion.h:76
ref_ptr< T > dynamic_pointer_cast(ref_ptr< U > const &p)
Definition: Referenced.h:280
double timeStep() const
Definition: BodyMotion.h:43
Definition: ValueTree.h:224
int numJoints() const
Definition: BodyMotion.h:36
MultiValueSeq::Ptr MultiValueSeqPtr
Definition: MultiValueSeq.h:36
boost::shared_ptr< BodyMotion > BodyMotionPtr
Definition: BodyMotion.h:147
int numLinks() const
Definition: BodyMotion.h:37
CNOID_EXPORT EasyScanner & operator>>(EasyScanner &scanner, double &value)
Definition: EasyScanner.cpp:758
Definition: YAMLWriter.h:18
SignalProxy< void()> sigExtraSeqsChanged()
Definition: BodyMotion.h:133
Definition: AbstractSeq.h:118
Definition: BodyMotion.h:80
Listing & write(Mapping &mapping, const std::string &key, const Eigen::MatrixBase< Derived > &x)
Definition: EigenArchive.h:62
boost::shared_ptr< AbstractSeq > AbstractSeqPtr
Definition: AbstractSeq.h:19
int frame() const
Definition: BodyMotion.h:87
MultiSE3SeqPtr & linkPosSeq()
Definition: BodyMotion.h:61
MultiSE3Seq::Ptr MultiSE3SeqPtr
Definition: MultiSE3Seq.h:50
Definition: BodyMotion.h:20
const MultiValueSeqPtr & jointPosSeq() const
Definition: BodyMotion.h:57
int numFrames() const
Definition: BodyMotion.h:47
void read(const Listing &listing, Eigen::MatrixBase< Derived > &x)
Definition: EigenArchive.h:17
std::map< std::string, AbstractSeqPtr > ExtraSeqMap
Definition: BodyMotion.h:100
Defines the minimum processing for performing pasing file for STL.
Definition: AbstractSceneLoader.h:9
const BodyMotion & motion() const
Definition: BodyMotion.h:86
boost::shared_ptr< SeqType > getOrCreateExtraSeq(const std::string &contentName)
Definition: BodyMotion.h:116
ConstFrame(const Frame &org)
Definition: BodyMotion.h:85
Frame(const Frame &org)
Definition: BodyMotion.h:74
ConstSeqIterator extraSeqBegin() const
Definition: BodyMotion.h:103
Frame frame(int frame)
Definition: BodyMotion.h:91
BodyMotion & motion()
Definition: BodyMotion.h:75
Definition: BodyMotion.h:69
#define CNOID_EXPORT
Definition: Util/exportdecl.h:37
MultiValueSeqPtr & jointPosSeq()
Definition: BodyMotion.h:53
ConstFrame frame(int frame) const
Definition: BodyMotion.h:92
ExtraSeqMap::const_iterator ConstSeqIterator
Definition: BodyMotion.h:101
const MultiSE3SeqPtr & linkPosSeq() const
Definition: BodyMotion.h:65