ViSP
2.10.0
|
#include <vpMbtXmlParser.h>
Public Member Functions | |
vpMbtXmlParser () | |
virtual | ~vpMbtXmlParser () |
bool | getLodState () const |
void | getMe (vpMe &_ecm) const |
double | getMinLineLengthThreshold () const |
double | getMinPolygonAreaThreshold () const |
void | parse (const char *filename) |
virtual void | readMainClass (xmlDocPtr doc, xmlNodePtr node) |
void | read_ecm (xmlDocPtr doc, xmlNodePtr node) |
void | read_sample (xmlDocPtr doc, xmlNodePtr node) |
void | read_mask (xmlDocPtr doc, xmlNodePtr node) |
void | read_range (xmlDocPtr doc, xmlNodePtr node) |
void | read_contrast (xmlDocPtr doc, xmlNodePtr node) |
void | read_lod (xmlDocPtr doc, xmlNodePtr node) |
void | setMovingEdge (const vpMe &_ecm) |
void | writeMainClass (xmlNodePtr node) |
double | getAngleAppear () const |
double | getAngleDisappear () const |
void | getCameraParameters (vpCameraParameters &_cam) const |
double | getFarClippingDistance () const |
bool | getFovClipping () const |
double | getNearClippingDistance () const |
bool | hasFarClippingDistance () const |
bool | hasNearClippingDistance () const |
void | parse (const std::string &filename) |
void | read_camera (xmlDocPtr doc, xmlNodePtr node) |
void | read_face (xmlDocPtr doc, xmlNodePtr node) |
void | setAngleAppear (const double &aappear) |
void | setAngleDisappear (const double &adisappear) |
void | setCameraParameters (const vpCameraParameters &_cam) |
void | setFarClippingDistance (const double &fclip) |
void | setNearClippingDistance (const double &nclip) |
void | save (const std::string &filename, const bool append=false) |
void | setMap (const std::map< std::string, int > &_map) |
void | setMainTag (const std::string &tag) |
Static Public Member Functions | |
static void | cleanup () |
Protected Types | |
enum | dataToParseMb { ecm = vpMbXmlParser::last, mask, size, nb_mask, range, tracking, contrast, edge_threshold, mu1, mu2, sample, step, nb_sample, lod, use_lod, min_line_length_threshold, min_polygon_area_threshold, last } |
Protected Member Functions | |
void | init () |
std::string | xmlReadStringChild (xmlDocPtr doc, xmlNodePtr node) |
char * | xmlReadCharChild (xmlDocPtr doc, xmlNodePtr node) |
int | xmlReadIntChild (xmlDocPtr doc, xmlNodePtr node) |
unsigned int | xmlReadUnsignedIntChild (xmlDocPtr doc, xmlNodePtr node) |
double | xmlReadDoubleChild (xmlDocPtr doc, xmlNodePtr node) |
void | xmlWriteStringChild (xmlNodePtr node, const char *label, const std::string &value) |
void | xmlWriteCharChild (xmlNodePtr node, const char *label, const char *value) |
void | xmlWriteIntChild (xmlNodePtr node, const char *label, const int value) |
void | xmlWriteUnsignedIntChild (xmlNodePtr node, const char *label, const unsigned int value) |
void | xmlWriteDoubleChild (xmlNodePtr node, const char *label, const double value) |
Protected Attributes | |
vpMe | m_ecm |
bool | useLod |
double | minLineLengthThreshold |
double | minPolygonAreaThreshold |
vpCameraParameters | cam |
double | angleAppear |
double | angleDisappear |
bool | hasNearClipping |
double | nearClipping |
bool | hasFarClipping |
double | farClipping |
bool | fovClipping |
std::map< std::string, int > | nodeMap |
std::string | main_tag |
Parse an Xml file to extract configuration parameters of a mbtConfig object.
Data parser for the model based tracker.
Definition at line 70 of file vpMbtXmlParser.h.
|
protected |
Enumerator | |
---|---|
ecm | |
mask | |
size | |
nb_mask | |
range | |
tracking | |
contrast | |
edge_threshold | |
mu1 | |
mu2 | |
sample | |
step | |
nb_sample | |
lod | |
use_lod | |
min_line_length_threshold | |
min_polygon_area_threshold | |
last |
Definition at line 73 of file vpMbtXmlParser.h.
vpMbtXmlParser::vpMbtXmlParser | ( | ) |
|
virtual |
Default destructor.
Definition at line 69 of file vpMbtXmlParser.cpp.
|
inlinestaticinherited |
As stated in http://xmlsoft.org/html/libxml-parser.html#xmlCleanupParser to clean up memory allocated by the xml2 library itself, the user should call xmlCleanupParser() only when the process has finished using the xml2 library. In case of doubt abstain from calling this function or do it just before calling exit() to avoid leak reports from valgrind ! That's why in ViSP the destructor doesn't call xmlCleanupParser(). Rather we provide the static function vpXmlParser::cleanup() that calls xmlCleanupParser() that could be called just before exit().
Definition at line 220 of file vpXmlParser.h.
|
inlineinherited |
Get the angle to determine if a face appeared.
Definition at line 116 of file vpMbXmlParser.h.
Referenced by vpMbEdgeKltTracker::loadConfigFile(), vpMbKltTracker::loadConfigFile(), and vpMbEdgeTracker::loadConfigFile().
|
inlineinherited |
Get the angle to determine if a face disappeared.
Definition at line 123 of file vpMbXmlParser.h.
Referenced by vpMbEdgeKltTracker::loadConfigFile(), vpMbKltTracker::loadConfigFile(), and vpMbEdgeTracker::loadConfigFile().
|
inlineinherited |
Definition at line 125 of file vpMbXmlParser.h.
Referenced by vpMbEdgeKltTracker::loadConfigFile(), vpMbKltTracker::loadConfigFile(), and vpMbEdgeTracker::loadConfigFile().
|
inlineinherited |
Get the far clipping distance.
Definition at line 132 of file vpMbXmlParser.h.
Referenced by vpMbEdgeKltTracker::loadConfigFile(), vpMbKltTracker::loadConfigFile(), and vpMbEdgeTracker::loadConfigFile().
|
inlineinherited |
Use FOV clipping
Definition at line 139 of file vpMbXmlParser.h.
Referenced by vpMbEdgeKltTracker::loadConfigFile(), vpMbKltTracker::loadConfigFile(), and vpMbEdgeTracker::loadConfigFile().
|
inline |
Get the state of LOD setting.
Definition at line 114 of file vpMbtXmlParser.h.
Referenced by vpMbEdgeTracker::loadConfigFile().
|
inline |
Definition at line 118 of file vpMbtXmlParser.h.
Referenced by vpMbEdgeKltTracker::loadConfigFile(), and vpMbEdgeTracker::loadConfigFile().
|
inline |
Get the minimum line length to track a segment when LOD is enabled.
Definition at line 125 of file vpMbtXmlParser.h.
Referenced by vpMbEdgeTracker::loadConfigFile().
|
inline |
Get the minimum polygon area to track a face when LOD is enabled.
Definition at line 134 of file vpMbtXmlParser.h.
Referenced by vpMbEdgeTracker::loadConfigFile().
|
inlineinherited |
Get the near clipping distance.
Definition at line 146 of file vpMbXmlParser.h.
Referenced by vpMbEdgeKltTracker::loadConfigFile(), vpMbKltTracker::loadConfigFile(), and vpMbEdgeTracker::loadConfigFile().
|
inlineinherited |
Has Far clipping been specified?
Definition at line 153 of file vpMbXmlParser.h.
Referenced by vpMbEdgeKltTracker::loadConfigFile(), vpMbKltTracker::loadConfigFile(), and vpMbEdgeTracker::loadConfigFile().
|
inlineinherited |
Has Near clipping been specified?
Definition at line 160 of file vpMbXmlParser.h.
Referenced by vpMbEdgeKltTracker::loadConfigFile(), vpMbKltTracker::loadConfigFile(), and vpMbEdgeTracker::loadConfigFile().
|
protected |
Initialise internal variables (including the map).
Definition at line 77 of file vpMbtXmlParser.cpp.
References contrast, ecm, edge_threshold, vpMbXmlParser::init(), lod, mask, min_line_length_threshold, min_polygon_area_threshold, mu1, mu2, nb_mask, nb_sample, vpXmlParser::nodeMap, range, sample, size, step, tracking, and use_lod.
Referenced by vpMbtEdgeKltXmlParser::init(), and vpMbtXmlParser().
void vpMbtXmlParser::parse | ( | const char * | filename | ) |
Parse the file in parameters. This method is deprecated, use parse() instead.
filename | : File to parse. |
Definition at line 107 of file vpMbtXmlParser.cpp.
References vpXmlParser::parse().
Referenced by vpMbEdgeTracker::loadConfigFile().
|
inherited |
parse the document. The data in the file are stored in the attributes of the child class. This method calls the readMainClass method which has to be implemented for every child class depending on the content to parse.
filename | : name of the file to parse |
Definition at line 343 of file vpXmlParser.cpp.
References vpException::ioError, vpXmlParser::readMainClass(), and vpERROR_TRACE.
Referenced by vpMbtEdgeKltXmlParser::parse(), parse(), vpMbtKltXmlParser::parse(), vpMbXmlParser::parse(), and vpXmlConfigParserKeyPoint::parse().
|
inherited |
Read camera information.
vpException::fatalError | if there was an unexpected number of data. |
doc | : Pointer to the document. |
node | : Pointer to the node of the camera information. |
Definition at line 178 of file vpMbXmlParser.cpp.
References vpMbXmlParser::cam, vpCameraParameters::get_px(), vpCameraParameters::get_py(), vpCameraParameters::get_u0(), vpCameraParameters::get_v0(), vpCameraParameters::initPersProjWithoutDistortion(), vpXmlParser::nodeMap, vpMbXmlParser::px, vpMbXmlParser::py, vpMbXmlParser::u0, vpMbXmlParser::v0, and vpXmlParser::xmlReadDoubleChild().
Referenced by vpMbtEdgeKltXmlParser::readMainClass(), readMainClass(), vpMbtKltXmlParser::readMainClass(), and vpMbXmlParser::readMainClass().
void vpMbtXmlParser::read_contrast | ( | xmlDocPtr | doc, |
xmlNodePtr | node | ||
) |
Read the contrast information from the xml file.
vpException::fatalError | if there was an unexpected number of data. |
doc | : Pointer to the document. |
node | : Pointer to the node of the contrast information. |
Definition at line 423 of file vpMbtXmlParser.cpp.
References edge_threshold, vpMe::getMu1(), vpMe::getMu2(), vpMe::getThreshold(), m_ecm, mu1, mu2, vpXmlParser::nodeMap, vpMe::setMu1(), vpMe::setMu2(), vpMe::setThreshold(), and vpXmlParser::xmlReadDoubleChild().
Referenced by read_ecm().
void vpMbtXmlParser::read_ecm | ( | xmlDocPtr | doc, |
xmlNodePtr | node | ||
) |
Read ecm information.
vpException::fatalError | if there was an unexpected number of data. |
doc | : Pointer to the document. |
node | : Pointer to the node of the ecm information. |
Definition at line 216 of file vpMbtXmlParser.cpp.
References contrast, vpMe::getMaskNumber(), vpMe::getMaskSize(), vpMe::getMu1(), vpMe::getMu2(), vpMe::getRange(), vpMe::getThreshold(), m_ecm, mask, vpXmlParser::nodeMap, range, read_contrast(), read_mask(), and read_range().
Referenced by vpMbtEdgeKltXmlParser::readMainClass(), and readMainClass().
|
inherited |
Read face information.
vpException::fatalError | if there was an unexpected number of data. |
doc | : Pointer to the document. |
node | : Pointer to the node of the camera information. |
Definition at line 252 of file vpMbXmlParser.cpp.
References vpMbXmlParser::angle_appear, vpMbXmlParser::angle_disappear, vpMbXmlParser::angleAppear, vpMbXmlParser::angleDisappear, vpMbXmlParser::far_clipping, vpMbXmlParser::farClipping, vpMbXmlParser::fov_clipping, vpMbXmlParser::fovClipping, vpMbXmlParser::hasFarClipping, vpMbXmlParser::hasNearClipping, vpMbXmlParser::near_clipping, vpMbXmlParser::nearClipping, vpXmlParser::nodeMap, vpXmlParser::xmlReadDoubleChild(), and vpXmlParser::xmlReadIntChild().
Referenced by vpMbtEdgeKltXmlParser::readMainClass(), readMainClass(), vpMbtKltXmlParser::readMainClass(), and vpMbXmlParser::readMainClass().
void vpMbtXmlParser::read_lod | ( | xmlDocPtr | doc, |
xmlNodePtr | node | ||
) |
Definition at line 480 of file vpMbtXmlParser.cpp.
References min_line_length_threshold, min_polygon_area_threshold, minLineLengthThreshold, minPolygonAreaThreshold, vpXmlParser::nodeMap, use_lod, useLod, vpXmlParser::xmlReadDoubleChild(), and vpXmlParser::xmlReadIntChild().
Referenced by readMainClass().
void vpMbtXmlParser::read_mask | ( | xmlDocPtr | doc, |
xmlNodePtr | node | ||
) |
Read mask information for the vpMeSite.
vpException::fatalError | if there was an unexpected number of data. |
doc | : Pointer to the document. |
node | : Pointer to the node of the mask information. |
Definition at line 325 of file vpMbtXmlParser.cpp.
References vpException::badValue, vpMe::getMaskNumber(), vpMe::getMaskSize(), m_ecm, nb_mask, vpXmlParser::nodeMap, vpMe::setMaskNumber(), vpMe::setMaskSize(), size, and vpXmlParser::xmlReadUnsignedIntChild().
Referenced by read_ecm().
void vpMbtXmlParser::read_range | ( | xmlDocPtr | doc, |
xmlNodePtr | node | ||
) |
Read range information for the vpMeSite.
vpException::fatalError | if there was an unexpected number of data. |
doc | : Pointer to the document. |
node | : Pointer to the node of the range information. |
Definition at line 381 of file vpMbtXmlParser.cpp.
References vpMe::getRange(), m_ecm, vpXmlParser::nodeMap, vpMe::setRange(), tracking, and vpXmlParser::xmlReadUnsignedIntChild().
Referenced by read_ecm().
void vpMbtXmlParser::read_sample | ( | xmlDocPtr | doc, |
xmlNodePtr | node | ||
) |
Read sample information.
vpException::fatalError | if there was an unexpected number of data. |
doc | : Pointer to the document. |
node | : Pointer to the node of the sample information. |
Definition at line 272 of file vpMbtXmlParser.cpp.
References vpMe::getNbTotalSample(), vpMe::getSampleStep(), m_ecm, nb_sample, vpXmlParser::nodeMap, vpMe::setNbTotalSample(), vpMe::setSampleStep(), step, and vpXmlParser::xmlReadIntChild().
Referenced by vpMbtEdgeKltXmlParser::readMainClass(), and readMainClass().
|
virtual |
Read the parameters of the class from the file given by its document pointer and by its root node.
doc | : Document to parse. |
node | : Root node. |
Reimplemented from vpMbXmlParser.
Reimplemented in vpMbtEdgeKltXmlParser.
Definition at line 132 of file vpMbtXmlParser.cpp.
References vpMbXmlParser::angleAppear, vpMbXmlParser::angleDisappear, vpMbXmlParser::cam, vpMbXmlParser::camera, ecm, vpMbXmlParser::face, vpCameraParameters::get_px(), vpCameraParameters::get_py(), vpCameraParameters::get_u0(), vpCameraParameters::get_v0(), vpMe::getMaskNumber(), vpMe::getMaskSize(), vpMe::getMu1(), vpMe::getMu2(), vpMe::getNbTotalSample(), vpMe::getRange(), vpMe::getSampleStep(), vpMe::getThreshold(), lod, m_ecm, minLineLengthThreshold, minPolygonAreaThreshold, vpXmlParser::nodeMap, vpMbXmlParser::read_camera(), read_ecm(), vpMbXmlParser::read_face(), read_lod(), read_sample(), sample, and useLod.
|
inherited |
Save the content of the class in the file given in parameters. The data of the class are in the child class. This method calls the write_main_class method which has to be implemented for every class depending on the data to save.
filename | : the name of the file used to record the data |
append | : if true and if the file exists, the data will be added to the data already in the file |
Definition at line 376 of file vpXmlParser.cpp.
References vpException::ioError, vpXmlParser::main_tag, vpERROR_TRACE, and vpXmlParser::writeMainClass().
|
inlineinherited |
Set the angle to determine if a face appeared.
aappear | : New angleAppear |
Definition at line 173 of file vpMbXmlParser.h.
Referenced by vpMbEdgeKltTracker::loadConfigFile(), vpMbKltTracker::loadConfigFile(), and vpMbEdgeTracker::loadConfigFile().
|
inlineinherited |
Set the angle to determine if a face disappeared.
adisappear | : New angleDisappear |
Definition at line 180 of file vpMbXmlParser.h.
Referenced by vpMbEdgeKltTracker::loadConfigFile(), vpMbKltTracker::loadConfigFile(), and vpMbEdgeTracker::loadConfigFile().
|
inlineinherited |
Definition at line 182 of file vpMbXmlParser.h.
Referenced by vpMbEdgeKltTracker::loadConfigFile(), and vpMbEdgeTracker::loadConfigFile().
|
inlineinherited |
Set the far clipping distance.
fclip | : New farClipping |
Definition at line 189 of file vpMbXmlParser.h.
|
inlineinherited |
set the name of the main tag
The main tag corresponds to the name of the root node
tag | : name of the root node of the document |
Definition at line 280 of file vpXmlParser.h.
Referenced by vpMbXmlParser::init().
|
inlineinherited |
Set the map describing the data to parse. This map stores the name of each node and an associated key used to simplify the parsing of the file.
If the following file want to be parsed:
The following map has to be declared:
Or, you can use keyzord instead of number as key but it implies to declare in the child class an enumeration type of the name. For example:
_map | : the map describing the data to parse |
Definition at line 271 of file vpXmlParser.h.
|
inline |
Definition at line 148 of file vpMbtXmlParser.h.
Referenced by vpMbEdgeKltTracker::loadConfigFile(), and vpMbEdgeTracker::loadConfigFile().
|
inlineinherited |
Set the near clipping distance.
nclip | : New nearClipping |
Definition at line 196 of file vpMbXmlParser.h.
|
virtual |
Write info to file.
Implements vpXmlParser.
Reimplemented in vpMbtEdgeKltXmlParser.
Definition at line 119 of file vpMbtXmlParser.cpp.
References vpException::notImplementedError.
|
protectedinherited |
Read an array of character.
doc | : The main xml document |
node | : a pointer to the node to read value |
Definition at line 110 of file vpXmlParser.cpp.
References vpException::fatalError.
|
protectedinherited |
read a double
doc | : The main xml document |
node | : a pointer to the node to read value |
Definition at line 224 of file vpXmlParser.cpp.
References vpException::fatalError, and vpException::ioError.
Referenced by vpMbXmlParser::read_camera(), read_contrast(), vpMbXmlParser::read_face(), vpMbtKltXmlParser::read_klt(), and read_lod().
|
protectedinherited |
read an int
doc | : The main xml document |
node | : a pointer to the node to read value |
Definition at line 155 of file vpXmlParser.cpp.
References vpException::fatalError, and vpException::ioError.
Referenced by vpMbXmlParser::read_face(), read_lod(), and read_sample().
|
protectedinherited |
Read an array of character.
doc | : The main xml document |
node | : a pointer to the node to read value |
Definition at line 131 of file vpXmlParser.cpp.
References vpException::fatalError.
|
protectedinherited |
read an int
doc | : The main xml document |
node | : a pointer to the node to read value |
Definition at line 189 of file vpXmlParser.cpp.
References vpException::fatalError, and vpException::ioError.
Referenced by vpMbtKltXmlParser::read_klt(), read_mask(), and read_range().
|
protectedinherited |
write an array of character.
node | : a pointer to the node to read value |
label | : label (name of the data) of the node |
value | : pointer to the array of character to write |
Definition at line 254 of file vpXmlParser.cpp.
|
protectedinherited |
write a double.
node | : a pointer to the node to read value |
label | : label (name of the data) of the node |
value | : double to write |
Definition at line 320 of file vpXmlParser.cpp.
|
protectedinherited |
write an integer.
node | : a pointer to the node to read value |
label | : label (name of the data) of the node |
value | : integer to write |
Definition at line 285 of file vpXmlParser.cpp.
|
protectedinherited |
write an array of character.
node | : a pointer to the node to read value |
label | : label (name of the data) of the node |
value | : std::string to write; |
Definition at line 269 of file vpXmlParser.cpp.
|
protectedinherited |
write an unsigned integer.
node | : a pointer to the node to read value |
label | : label (name of the data) of the node |
value | : unsigned integer to write |
Definition at line 302 of file vpXmlParser.cpp.
|
protectedinherited |
Angle to determine if a face appeared.
Definition at line 73 of file vpMbXmlParser.h.
Referenced by vpMbXmlParser::read_face(), vpMbtEdgeKltXmlParser::readMainClass(), readMainClass(), vpMbtKltXmlParser::readMainClass(), and vpMbXmlParser::readMainClass().
|
protectedinherited |
Angle to determine if a face disappeared.
Definition at line 75 of file vpMbXmlParser.h.
Referenced by vpMbXmlParser::read_face(), vpMbtEdgeKltXmlParser::readMainClass(), readMainClass(), vpMbtKltXmlParser::readMainClass(), and vpMbXmlParser::readMainClass().
|
protectedinherited |
Camera parameters.
Definition at line 71 of file vpMbXmlParser.h.
Referenced by vpMbXmlParser::read_camera(), vpMbtEdgeKltXmlParser::readMainClass(), readMainClass(), vpMbtKltXmlParser::readMainClass(), and vpMbXmlParser::readMainClass().
|
protectedinherited |
Near clipping distance.
Definition at line 83 of file vpMbXmlParser.h.
Referenced by vpMbXmlParser::read_face().
|
protectedinherited |
Fov Clipping.
Definition at line 85 of file vpMbXmlParser.h.
Referenced by vpMbXmlParser::read_face().
|
protectedinherited |
Is far clipping distance specified?
Definition at line 81 of file vpMbXmlParser.h.
Referenced by vpMbXmlParser::read_face().
|
protectedinherited |
Is near clipping distance specified?
Definition at line 77 of file vpMbXmlParser.h.
Referenced by vpMbXmlParser::read_face().
|
protected |
Moving edges parameters.
Definition at line 95 of file vpMbtXmlParser.h.
Referenced by read_contrast(), read_ecm(), read_mask(), read_range(), read_sample(), vpMbtEdgeKltXmlParser::readMainClass(), and readMainClass().
|
protectedinherited |
The name of the main tag for the file to parse
Definition at line 202 of file vpXmlParser.h.
Referenced by vpXmlParser::save(), and vpXmlParser::vpXmlParser().
|
protected |
Minimum line length to track a segment when LOD is enabled.
Definition at line 99 of file vpMbtXmlParser.h.
Referenced by read_lod(), and readMainClass().
|
protected |
Minimum polygon area to track a face when LOD is enabled.
Definition at line 101 of file vpMbtXmlParser.h.
Referenced by read_lod(), and readMainClass().
|
protectedinherited |
Near clipping distance.
Definition at line 79 of file vpMbXmlParser.h.
Referenced by vpMbXmlParser::read_face().
|
protectedinherited |
The map describing the data to parse
Definition at line 197 of file vpXmlParser.h.
Referenced by vpMbtEdgeKltXmlParser::init(), init(), vpMbXmlParser::init(), vpMbtKltXmlParser::init(), vpMbXmlParser::read_camera(), read_contrast(), read_ecm(), vpMbXmlParser::read_face(), vpMbtKltXmlParser::read_klt(), read_lod(), read_mask(), read_range(), read_sample(), vpMbtEdgeKltXmlParser::readMainClass(), readMainClass(), vpMbtKltXmlParser::readMainClass(), vpMbXmlParser::readMainClass(), and vpXmlParser::vpXmlParser().
|
protected |
If true, the LOD is enabled, otherwise it is not.
Definition at line 97 of file vpMbtXmlParser.h.
Referenced by read_lod(), and readMainClass().