~choreonoid/choreonoid/debian

« back to all changes in this revision

Viewing changes to src/Base/Vector3SeqItem.cpp

  • Committer: Thomas Moulard
  • Date: 2012-10-23 12:43:24 UTC
  • Revision ID: git-v1:351cf736ad49bc7a9a7b9767dee760a013517a5d
Tags: upstream/1.1.0
ImportedĀ UpstreamĀ versionĀ 1.1.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/**
 
2
   @file
 
3
   @author Shin'ichiro Nakaoka
 
4
*/
 
5
 
 
6
#include "Vector3SeqItem.h"
 
7
#include "ItemManager.h"
 
8
#include "Archive.h"
 
9
#include "gettext.h"
 
10
 
 
11
using namespace cnoid;
 
12
 
 
13
void Vector3SeqItem::initialize(ExtensionManager* ext)
 
14
{
 
15
    ext->itemManager().registerClass<Vector3SeqItem>(N_("Vector3SeqItem"));
 
16
}
 
17
 
 
18
 
 
19
Vector3SeqItem::Vector3SeqItem()
 
20
    : seq_(new Vector3Seq())
 
21
{
 
22
 
 
23
}
 
24
 
 
25
 
 
26
Vector3SeqItem::Vector3SeqItem(Vector3SeqPtr seq)
 
27
  : seq_(seq)
 
28
{
 
29
    
 
30
}
 
31
 
 
32
Vector3SeqItem::Vector3SeqItem(const Vector3SeqItem& org)
 
33
    : Item(org),
 
34
      seq_(new Vector3Seq(*org.seq_))
 
35
{
 
36
 
 
37
}
 
38
 
 
39
 
 
40
Vector3SeqItem::~Vector3SeqItem()
 
41
{
 
42
 
 
43
}
 
44
 
 
45
 
 
46
bool Vector3SeqItem::loadPlainFormat(const std::string& filename)
 
47
{
 
48
    bool loaded = seq_->loadPlainFormat(filename);
 
49
    notifyUpdate();
 
50
    return loaded;
 
51
}
 
52
 
 
53
 
 
54
bool Vector3SeqItem::saveAsPlainFormat(const std::string& filename)
 
55
{
 
56
    return seq_->saveAsPlainFormat(filename);
 
57
}
 
58
 
 
59
 
 
60
ItemPtr Vector3SeqItem::doDuplicate() const
 
61
{
 
62
    return new Vector3SeqItem(*this);
 
63
}
 
64
 
 
65
 
 
66
void Vector3SeqItem::notifyUpdate()
 
67
{
 
68
    setInconsistencyWithLastAccessedFile();
 
69
    Item::notifyUpdate();
 
70
}
 
71
 
 
72
 
 
73
bool Vector3SeqItem::store(Archive& archive)
 
74
{
 
75
    if(overwrite()){
 
76
        archive.writeRelocatablePath("filename", lastAccessedFileName());
 
77
        archive.write("format", lastAccessedFileFormatId());
 
78
        return true;
 
79
    }
 
80
    return false;
 
81
}
 
82
 
 
83
 
 
84
bool Vector3SeqItem::restore(const Archive& archive)
 
85
{
 
86
    std::string filename, formatId;
 
87
    if(archive.readRelocatablePath("filename", filename) && archive.read("format", formatId)){
 
88
        if(load(filename, formatId)){
 
89
            return true;
 
90
        }
 
91
    }
 
92
    return false;
 
93
}
 
94
 
 
95
 
 
96
void Vector3SeqItem::doPutProperties(PutPropertyFunction& putProperty)
 
97
{
 
98
    putProperty(_("Frame rate"), seq_->frameRate());
 
99
    putProperty(_("Number of frames"), seq_->numFrames());
 
100
    putProperty(_("Time length"), seq_->numFrames() / seq_->frameRate());
 
101
    putProperty(_("Time step"), 1.0 / seq_->frameRate());
 
102
}