Skip to content
Snippets Groups Projects
Commit 28e62d11 authored by Ansgar Philippsen's avatar Ansgar Philippsen
Browse files

added frame delta and start time properties to coord group

parent 81d57f78
Branches
Tags
No related merge requests found
...@@ -306,7 +306,7 @@ public: ...@@ -306,7 +306,7 @@ public:
} }
virtual uint GetFrameCount() virtual uint GetFrameCount() const
{ {
if (!frame_count_) if (!frame_count_)
const_cast<DCDCoordSource*>(this)->FetchFrame(0); const_cast<DCDCoordSource*>(this)->FetchFrame(0);
......
...@@ -47,24 +47,32 @@ void export_CoordGroup() ...@@ -47,24 +47,32 @@ void export_CoordGroup()
class_<CoordGroupHandle>("CoordGroupHandle",no_init) class_<CoordGroupHandle>("CoordGroupHandle",no_init)
.def("IsValid",&CoordGroupHandle::IsValid) .def("IsValid",&CoordGroupHandle::IsValid)
.def("GetEntity",&CoordGroupHandle::GetEntity) .def("GetEntity",&CoordGroupHandle::GetEntity)
.add_property("entity",&CoordGroupHandle::GetEntity)
.def("GetAtomCount",&CoordGroupHandle::GetAtomCount) .def("GetAtomCount",&CoordGroupHandle::GetAtomCount)
.add_property("atom_count",&CoordGroupHandle::GetAtomCount)
.def("GetFrame",&CoordGroupHandle::GetFrame2) .def("GetFrame",&CoordGroupHandle::GetFrame2)
.def("AddFrames", &CoordGroupHandle::AddFrames) .def("AddFrames", &CoordGroupHandle::AddFrames)
.def("AddFrame", add_frame1) .def("AddFrame", add_frame1)
.def("AddFrame", add_frame2) .def("AddFrame", add_frame2)
.def("GetFrameCount",&CoordGroupHandle::GetFrameCount) .def("GetFrameCount",&CoordGroupHandle::GetFrameCount)
.add_property("frame_count",&CoordGroupHandle::GetFrameCount)
.def("GetFramePositions",&CoordGroupHandle::GetFramePositions) .def("GetFramePositions",&CoordGroupHandle::GetFramePositions)
.def("SetFramePositions",&CoordGroupHandle::SetFramePositions) .def("SetFramePositions",&CoordGroupHandle::SetFramePositions)
.def("SetAtomPos",&CoordGroupHandle::SetAtomPos) .def("SetAtomPos",&CoordGroupHandle::SetAtomPos)
.def("GetAtomPos",&CoordGroupHandle::GetAtomPos) .def("GetAtomPos",&CoordGroupHandle::GetAtomPos)
.def("CopyFrame",&CoordGroupHandle::CopyFrame) .def("CopyFrame",&CoordGroupHandle::CopyFrame)
.add_property("atoms", &CoordGroupHandle::GetAtomList)
.add_property("entity", &CoordGroupHandle::GetEntity)
.def("IsValid", &CoordGroupHandle::IsValid) .def("IsValid", &CoordGroupHandle::IsValid)
.def("Capture", capture1) .def("Capture", capture1)
.def("Capture", capture2) .def("Capture", capture2)
.def("CaptureInto",&CoordGroupHandle::CaptureInto) .def("CaptureInto",&CoordGroupHandle::CaptureInto)
.def("GetAtomList",&CoordGroupHandle::GetAtomList) .def("GetAtomList",&CoordGroupHandle::GetAtomList)
.add_property("atoms", &CoordGroupHandle::GetAtomList)
.def("GetDelta",&CoordGroupHandle::GetDelta)
.def("SetDelta",&CoordGroupHandle::SetDelta)
.add_property("delta",&CoordGroupHandle::GetDelta,&CoordGroupHandle::SetDelta)
.def("GetStartTime",&CoordGroupHandle::GetStartTime)
.def("SetStartTime",&CoordGroupHandle::SetStartTime)
.add_property("start_time",&CoordGroupHandle::GetStartTime,&CoordGroupHandle::SetStartTime)
.def("__getitem__",cg_getitem) .def("__getitem__",cg_getitem)
.def("__setitem__",cg_setitem) .def("__setitem__",cg_setitem)
.def("Filter", &CoordGroupHandle::Filter, (arg("selected"),arg("first")=0,arg("last")=-1)) .def("Filter", &CoordGroupHandle::Filter, (arg("selected"),arg("first")=0,arg("last")=-1))
......
...@@ -66,6 +66,30 @@ uint CoordGroupHandle::GetFrameCount() const ...@@ -66,6 +66,30 @@ uint CoordGroupHandle::GetFrameCount() const
return source_->GetFrameCount(); return source_->GetFrameCount();
} }
float CoordGroupHandle::GetDelta() const
{
this->CheckValidity();
return source_->GetFrameDelta();
}
void CoordGroupHandle::SetDelta(float d)
{
this->CheckValidity();
source_->SetFrameDelta(d);
}
float CoordGroupHandle::GetStartTime() const
{
this->CheckValidity();
return source_->GetStartTime();
}
void CoordGroupHandle::SetStartTime(float t)
{
this->CheckValidity();
source_->SetStartTime(t);
}
void CoordGroupHandle::SetFramePositions(uint frame, void CoordGroupHandle::SetFramePositions(uint frame,
const std::vector<geom::Vec3>& clist) const std::vector<geom::Vec3>& clist)
{ {
......
...@@ -35,6 +35,8 @@ class DLLEXPORT_OST_MOL CoordGroupHandle { ...@@ -35,6 +35,8 @@ class DLLEXPORT_OST_MOL CoordGroupHandle {
public: public:
/// \brief create empty, invalid handle /// \brief create empty, invalid handle
CoordGroupHandle(); CoordGroupHandle();
/// \brief used internally
CoordGroupHandle(CoordSourcePtr source);
/// \brief return trajectories entity handle /// \brief return trajectories entity handle
EntityHandle GetEntity() const; EntityHandle GetEntity() const;
...@@ -48,6 +50,18 @@ public: ...@@ -48,6 +50,18 @@ public:
/// \brief number of frames /// \brief number of frames
uint GetFrameCount() const; uint GetFrameCount() const;
/// \brief time in ps between frames, default 0.0
float GetDelta() const;
/// \brief set time between each frame in ps
void SetDelta(float d);
/// \brief start time in ps, default 0.0
float GetStartTime() const;
/// \rbrief set start time in ps
void SetStartTime(float t);
/// \brief assign positions to the given frame - order and count must match /// \brief assign positions to the given frame - order and count must match
/// initial atomlist /// initial atomlist
void SetFramePositions(uint frame, const std::vector<geom::Vec3>& clist); void SetFramePositions(uint frame, const std::vector<geom::Vec3>& clist);
...@@ -92,7 +106,6 @@ public: ...@@ -92,7 +106,6 @@ public:
/// view /// view
CoordGroupHandle Filter(const EntityView& selected,int first=0,int last=-1) const; CoordGroupHandle Filter(const EntityView& selected,int first=0,int last=-1) const;
CoordGroupHandle(CoordSourcePtr source);
private: private:
......
...@@ -35,7 +35,9 @@ CoordSource::CoordSource(const AtomHandleList& atoms): ...@@ -35,7 +35,9 @@ CoordSource::CoordSource(const AtomHandleList& atoms):
atoms_(atoms), atoms_(atoms),
entity_(), entity_(),
mutable_(false), mutable_(false),
atom_dict_() atom_dict_(),
delta_(1.0),
start_time_(0.0)
{ {
if (!atoms_.empty()) { if (!atoms_.empty()) {
entity_=atoms_.front().GetEntity(); entity_=atoms_.front().GetEntity();
...@@ -45,12 +47,6 @@ CoordSource::CoordSource(const AtomHandleList& atoms): ...@@ -45,12 +47,6 @@ CoordSource::CoordSource(const AtomHandleList& atoms):
} }
} }
CoordSource::~CoordSource()
{
}
void CoordSource::CopyFrame(uint frame_id) void CoordSource::CopyFrame(uint frame_id)
{ {
if (atoms_.empty()) { if (atoms_.empty()) {
......
...@@ -43,14 +43,22 @@ class DLLEXPORT_OST_MOL CoordSource { ...@@ -43,14 +43,22 @@ class DLLEXPORT_OST_MOL CoordSource {
public: public:
CoordSource(const AtomHandleList& atoms); CoordSource(const AtomHandleList& atoms);
virtual ~CoordSource(); virtual ~CoordSource() {}
virtual uint GetFrameCount() const =0;
virtual CoordFramePtr GetFrame(uint frame_id) const = 0;
CoordSourcePtr Extract(int start=0, int stop=-1, int step=1); CoordSourcePtr Extract(int start=0, int stop=-1, int step=1);
virtual uint GetFrameCount()=0; // time in ps between frames
float GetFrameDelta() const {return delta_;}
void SetFrameDelta(float d) {delta_=d;}
// start time in ps
float GetStartTime() const {return start_time_;}
void SetStartTime(float t) {start_time_=t;}
virtual CoordFramePtr GetFrame(uint frame_id) const = 0;
int GetAtomCount() const; int GetAtomCount() const;
EntityHandle GetEntity() const; EntityHandle GetEntity() const;
...@@ -79,6 +87,7 @@ private: ...@@ -79,6 +87,7 @@ private:
EntityHandle entity_; EntityHandle entity_;
bool mutable_; bool mutable_;
std::map<long,uint> atom_dict_; std::map<long,uint> atom_dict_;
float delta_,start_time_;
}; };
}} }}
......
...@@ -9,7 +9,7 @@ InMemCoordSource::InMemCoordSource(const AtomHandleList& atoms): ...@@ -9,7 +9,7 @@ InMemCoordSource::InMemCoordSource(const AtomHandleList& atoms):
this->SetMutable(true); this->SetMutable(true);
} }
uint InMemCoordSource::GetFrameCount() uint InMemCoordSource::GetFrameCount() const
{ {
return frames_.size(); return frames_.size();
} }
......
...@@ -38,7 +38,7 @@ class DLLEXPORT_OST_MOL InMemCoordSource : public CoordSource { ...@@ -38,7 +38,7 @@ class DLLEXPORT_OST_MOL InMemCoordSource : public CoordSource {
public: public:
InMemCoordSource(const AtomHandleList& atoms); InMemCoordSource(const AtomHandleList& atoms);
virtual uint GetFrameCount(); virtual uint GetFrameCount() const;
virtual CoordFramePtr GetFrame(uint frame_id) const; virtual CoordFramePtr GetFrame(uint frame_id) const;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment