Public メソッド | |
XmlIF (MapManager *mgr) | |
コンストラクタ。 | |
void | setIOQueue (Queue_t *xmlq, Queue_t *resultq) |
入出力に用いるqueueを設定する。 | |
void | emitDestination (const QPointF &pos) const |
GUIから指定された目的地をXMLとして書き出す | |
void | emitLocation (const QPointF &pos, qreal theta) const |
GUIから指定された現在地XMLとして書き出す | |
void | try_dequeue () |
入力queueをのぞき,有ればdequeして処理する。 timerから呼ばれる。 | |
void | setPotentialRange (double pot_min, double pot_max) |
Pseudo Color表示のための値をセット。 | |
bool | processXml (const string &xml, bool ask_overwrite=false) |
XML処理のエントリポイント。ヘッダをパースして下請け関数をdispatch | |
bool | readXmlHeader (istream &is, baseRTC::Header &ihdr) |
XMLのヘッダを読み込む | |
void | invalidateCurpos () |
現在地を無効化 | |
bool | getCurrentPos (QPointF &pos) const |
現在地が有れば返す | |
Static Public 変数 | |
static const char | CURPOS_LAYER_NAME [] = "CurrentPosition" |
Private メソッド | |
MapLayer * | mkDestinationLayer (const baseRTC::Header &hdr, istream &is) |
現在地layerを表す名前 | |
MapLayer * | mkSelfPosLayer (const baseRTC::Header &hdr, istream &is) |
processXmlの下請け関数。現在地レイヤーを生成 | |
MapLayer * | mkPathLayer (const baseRTC::Header &hdr, istream &is) |
processXmlの下請け関数。経路レイヤーを生成 | |
MapLayer * | mkPotentialLayer (const baseRTC::Header &hdr, istream &is) |
processXmlの下請け関数。ポテンシャルレイヤを作成 | |
MapLayer * | mkGridMapLayer (const baseRTC::Header &hdr, istream &is) |
processXmlの下請け関数。確率グリッドレイヤを作成 | |
MapLayer * | proc_CommandString (const baseRTC::Header &hdr, istream &is) |
processXmlの下請け関数。CommandStringのtypeを見て処理する。 | |
MapLayer * | mkTextLayer (const string &arg) |
proc_CommandStringの下請け関数。text layerを生成 | |
void | calc_color_tbl () |
偽色表示のためのテーブル作成 | |
Private 変数 | |
Queue_t * | xmlq_ |
このqueueからxmlを読む | |
Queue_t * | resultq_ |
このqueueへ結果を出す | |
MapManager * | mgr_ |
自分を生成したMapManagerへの参照 | |
QVector< QRgb > | tbl_ |
pseudo color table | |
qreal | pot_min_ |
偽色表示の際,これ以下の値は最低値と見なし同色とする | |
qreal | pot_max_ |
偽色表示の際,これ以上の値は最高値と見なし同色とする | |
Localization | curpos_ |
現在位置 | |
bool | have_cur_pos_ |
現在位置が設定されたかどうか | |
time_t | last_path_time_ |
Static Private 変数 | |
static const char | NAME [] = "MapViewer" |
XML送信ヘッダのnameの値 | |
static const int | N_COLOR_TBL_ENTRY = 1024 |
カラーテーブルの大きさ |
MapManager::XmlIF::XmlIF | ( | MapManager * | mgr | ) |
コンストラクタ。
[in] | 自身を生成したMapManagerへの参照 |
入出力に用いるqueueを設定する。
[in] | xmlq | このクラスがxmlを読み込むqueue。RTCはこれに書き込む |
[in] | resultq | このクラスが出力を書込むqueue RTCはここから読む |
void MapManager::XmlIF::emitDestination | ( | const QPointF & | pos | ) | const |
GUIから指定された目的地をXMLとして書き出す
[in] | pos | 書き出す目的地情報 |
void MapManager::XmlIF::emitLocation | ( | const QPointF & | pos, | |
qreal | theta | |||
) | const |
GUIから指定された現在地XMLとして書き出す
[in] | pos | 書き出す目的地情報 |
[in] | theta | 方位[rad] |
void MapManager::XmlIF::try_dequeue | ( | ) |
入力queueをのぞき,有ればdequeして処理する。 timerから呼ばれる。
void MapManager::XmlIF::setPotentialRange | ( | double | pot_min, | |
double | pot_max | |||
) |
Pseudo Color表示のための値をセット。
[in] | pot_min | これ以下のポテンシャルは最低値として同じ色にする |
[in] | pot_max | これ以下のポテンシャルは最高値として同じ色にする |
bool MapManager::XmlIF::processXml | ( | const string & | xml, | |
bool | ask_overwrite = false | |||
) |
XML処理のエントリポイント。ヘッダをパースして下請け関数をdispatch
[in] | xml | 処理するXMLが格納された文字列 |
[in] | ask_overwrite | 同名のレイヤが有ったとき確認するかどうか |
bool MapManager::XmlIF::readXmlHeader | ( | istream & | is, | |
baseRTC::Header & | ihdr | |||
) |
XMLのヘッダを読み込む
is | 入力ストリーム | |
ihdr | ここにヘッダを読み込む |
void MapManager::XmlIF::invalidateCurpos | ( | ) |
現在地を無効化
bool MapManager::XmlIF::getCurrentPos | ( | QPointF & | pos | ) | const |
現在地が有れば返す
[out] | pos | 現在地があればここに返される |
false | 現在地は設定されていない。引数posは不変 | |
true | 現在地が引数posに返された |
MapLayer * MapManager::XmlIF::mkDestinationLayer | ( | const baseRTC::Header & | hdr, | |
istream & | is | |||
) | [private] |
現在地layerを表す名前
processXmlの下請け関数。目的地レイヤーを生成
[in] | hdr | 受信したヘッダ |
[in] | is | XMLを読むためのストリーム |
nonnull | 生成されたレイヤへのポインタ | |
NULL | パースエラーなどで生成されなかった場合 |
MapLayer * MapManager::XmlIF::mkSelfPosLayer | ( | const baseRTC::Header & | hdr, | |
istream & | is | |||
) | [private] |
processXmlの下請け関数。現在地レイヤーを生成
[in] | hdr | 受信したヘッダ |
[in] | is | XMLを読むためのストリーム |
nonnull | 生成されたレイヤへのポインタ | |
NULL | パースエラーなどで生成されなかった場合 |
MapLayer * MapManager::XmlIF::mkPathLayer | ( | const baseRTC::Header & | hdr, | |
istream & | is | |||
) | [private] |
processXmlの下請け関数。経路レイヤーを生成
[in] | is | XMLを読むためのストリーム |
[in] | hdr | 受信したヘッダ |
nonnull | 生成されたレイヤへのポインタ | |
NULL | パースエラーなどで生成されなかった場合 |
MapLayer * MapManager::XmlIF::mkPotentialLayer | ( | const baseRTC::Header & | hdr, | |
istream & | is | |||
) | [private] |
processXmlの下請け関数。ポテンシャルレイヤを作成
[in] | hdr | 受信したヘッダ |
[in] | is | XMLを読むためのストリーム |
nonnull | 生成されたレイヤへのポインタ | |
NULL | パースエラーなどで生成されなかった場合 |
MapLayer * MapManager::XmlIF::mkGridMapLayer | ( | const baseRTC::Header & | hdr, | |
istream & | is | |||
) | [private] |
processXmlの下請け関数。確率グリッドレイヤを作成
[in] | hdr | 受信したヘッダ |
[in] | is | XMLを読むためのストリーム |
nonnull | 生成されたレイヤへのポインタ | |
NULL | パースエラーなどで生成されなかった場合 |
MapLayer * MapManager::XmlIF::proc_CommandString | ( | const baseRTC::Header & | hdr, | |
istream & | is | |||
) | [private] |
processXmlの下請け関数。CommandStringのtypeを見て処理する。
[in] | hdr | 受信したヘッダ |
[in] | is | XMLを読むためのストリーム |
nonnull | 生成されたレイヤへのポインタ(もしあったら) | |
NULL | パースエラーなどで生成されなかった場合 |
MapLayer* MapManager::XmlIF::mkTextLayer | ( | const string & | arg | ) | [private] |
proc_CommandStringの下請け関数。text layerを生成
[in] | arg | コマンドの引数文字列 |
nonnull | 生成されたレイヤへのポインタ(もしあったら) | |
NULL | パースエラーなどで生成されなかった場合 |
void MapManager::XmlIF::calc_color_tbl | ( | ) | [private] |
偽色表示のためのテーブル作成
const char MapManager::XmlIF::CURPOS_LAYER_NAME = "CurrentPosition" [static] |
Queue_t* MapManager::XmlIF::xmlq_ [private] |
このqueueからxmlを読む
Queue_t* MapManager::XmlIF::resultq_ [private] |
このqueueへ結果を出す
MapManager* MapManager::XmlIF::mgr_ [private] |
自分を生成したMapManagerへの参照
const char MapManager::XmlIF::NAME = "MapViewer" [static, private] |
XML送信ヘッダのnameの値
const int MapManager::XmlIF::N_COLOR_TBL_ENTRY = 1024 [static, private] |
カラーテーブルの大きさ
QVector<QRgb> MapManager::XmlIF::tbl_ [private] |
pseudo color table
qreal MapManager::XmlIF::pot_min_ [private] |
偽色表示の際,これ以下の値は最低値と見なし同色とする
qreal MapManager::XmlIF::pot_max_ [private] |
偽色表示の際,これ以上の値は最高値と見なし同色とする
Localization MapManager::XmlIF::curpos_ [private] |
現在位置
bool MapManager::XmlIF::have_cur_pos_ [private] |
現在位置が設定されたかどうか
time_t MapManager::XmlIF::last_path_time_ [private] |