45 mUid(uid), mCoord(coord)
47 mTimestamp = QDateTime::currentDateTime();
70 QDomDocument doc = dataNode.ownerDocument();
72 dataNode.toElement().setAttribute(
"uid",
qstring_cast(mUid));
74 QDomElement coordNode = doc.createElement(
"coord");
75 coordNode.appendChild(doc.createTextNode(
qstring_cast(mCoord)));
76 dataNode.appendChild(coordNode);
78 QDomElement timestampNode = doc.createElement(
"timestamp");
80 dataNode.appendChild(timestampNode);
84 if (dataNode.isNull())
87 QDomElement base = dataNode.toElement();
89 mUid = base.attribute(
"uid");
90 mCoord = Vector3D::fromString(dataNode.namedItem(
"coord").toElement().text());
91 mTimestamp = QDateTime::fromString(dataNode.namedItem(
"timestamp").toElement().text(),
timestampSecondsFormat());
98 int i_lhs = lhs.
getUid().toInt(&ok);
99 int i_rhs = rhs.
getUid().toInt(&ok);
101 return i_lhs < i_rhs;
111 Landmarks::Landmarks() : QObject(NULL)
128 mLandmarks[landmark.
getUid()] = landmark;
129 emit landmarkAdded(landmark.
getUid());
134 mLandmarks.erase(uid);
135 emit landmarkRemoved(uid);
140 while (!mLandmarks.empty())
141 this->removeLandmark(mLandmarks.begin()->first);
146 QDomElement landmarksNode = dataNode.toElement();
147 QDomDocument doc = dataNode.ownerDocument();
149 LandmarkMap::const_iterator it = mLandmarks.begin();
150 for (; it != mLandmarks.end(); ++it)
152 QDomElement landmarkNode = doc.createElement(
"landmark");
153 it->second.addXml(landmarkNode);
154 landmarksNode.appendChild(landmarkNode);
160 QDomElement landmarksNode = dataNode.toElement();
162 if (dataNode.isNull())
165 QDomElement landmarkNode = landmarksNode.firstChildElement(
"landmark");
166 for (; !landmarkNode.isNull(); landmarkNode = landmarkNode.nextSiblingElement(
"landmark"))
170 this->setLandmark(landmark);
179 mUid(uid), mName(name), mActive(active)
212 dataNode.toElement().setAttribute(
"uid",
qstring_cast(mUid));
213 dataNode.toElement().setAttribute(
"active",
qstring_cast(mActive));
214 dataNode.toElement().setAttribute(
"name",
qstring_cast(mName));
218 if (dataNode.isNull())
221 QDomElement base = dataNode.toElement();
222 mUid = base.attribute(
"uid");
223 mActive = base.attribute(
"active").toInt();
224 mName = base.attribute(
"name");
QString qstring_cast(const T &val)
bool operator<(const Landmark &lhs, const Landmark &rhs)
LandmarkMap getLandmarks()
One landmark, or fiducial, coordinate.
QDateTime getTimestamp() const
void removeLandmark(QString uid)
QString timestampSecondsFormat()
LandmarkProperty(const QString &uid="", const QString &name="", bool active=true)
boost::shared_ptr< class Landmarks > LandmarksPtr
void addXml(QDomNode &dataNode)
Landmark(QString uid="", Vector3D coord=Vector3D(0, 0, 0))
void addXml(QDomNode &dataNode) const
void addXml(QDomNode dataNode) const
void setLandmark(Landmark landmark)
void parseXml(QDomNode &dataNode)
Vector3D getCoord() const
static LandmarksPtr create()
Eigen::Vector3d Vector3D
Vector3D is a representation of a point or vector in 3D.
std::map< QString, class Landmark > LandmarkMap
void setName(const QString &name)
void setActive(bool active)
void parseXml(QDomNode &dataNode)
void parseXml(QDomNode dataNode)
Namespace for all CustusX production code.