Skip to content

[クリーンアップ] crane_visualizer_wrapperの未使用描画APIを削除 - #1439

Merged
HansRobo merged 1 commit into
developfrom
feature/remove-unused-visualizer-wrapper-api
Sep 13, 2026
Merged

HansRobo merged 1 commit into
developfrom
feature/remove-unused-visualizer-wrapper-api

Conversation

@HansRobo

Copy link
Copy Markdown
Member

概要

crane_visualization_interfaces/crane_visualizer_wrapper.hpp(834行)/.cpp(355行)に定義された高レベル描画APIのうち、リポジトリ全体で一度も呼び出されていないものを削除しました。

未使用と確認した根拠

各項目について git grep -n "メソッド名(" -- '*.cpp' '*.hpp' '*.py' '*.launch.py' '*.yaml' '*.msg' 'CMakeLists.txt' を実行し、定義元ファイル自身以外にヒットが無いことを確認した上で削除しています。

削除した項目

  • SvgColors 名前空間の色定数群(呼び出し側は "white" 等の生文字列を直書きしており未使用)
  • VisualizerMessageBuilder::asReplace / asAppend / asClear の3メソッド
    • operation メンバー自体は flush() で使われ続けるため維持し、呼び出し箇所は operation = "replace" のような直接代入に統一しました
  • circleAt / lineFrom(2オーバーロード)の宣言+inline実装
  • velocityArrow の宣言+実装
  • drawTrajectory の宣言+実装
  • drawFadingTrajectory の宣言+実装
  • SvgBuilderBase::raii() テンプレートメソッド
    • raii() が唯一の書き込み元だった auto_build フラグ、およびそれに伴い到達不能になる ~SvgBuilderBase() の分岐も合わせて削除し、= default に簡略化しました
  • SvgPolygonBuilder 構造体丸ごと(前方宣言・polygon() 宣言・実装含む。エントリポイントの polygon() 自体が呼ばれていないため到達不能でした)
  • SvgPathBuilder::SvgPathDefinitionBuilderhorizontalTo / verticalTo / closePath / cubicBezierTo(2) / smoothCubicBezierTo(2) / quadraticBezierTo(2) / smoothQuadraticBezierTo(2) / arcTo(2) の計11メソッド
    • moveTo / lineTocrane_robot_skills/src/goal_kick.cpp で実使用のため維持しています

doubleCircle / labeledCircle / arc / arrow / drawFilledCircle / drawFieldRect / drawStyledCircle / drawRobotWithID / rectangle / moveTo / lineTo / fromSegment 等、実際に使われているAPIは変更していません。

ドキュメント更新

docs/visualizer.md は削除したAPIをそのまま紹介していると実態と乖離するため、以下を合わせて更新しました。

  • RAII(.raii())セクションの削除
  • 「軌跡描画の便利関数」セクション(drawTrajectory / drawFadingTrajectory)の削除
  • polygon() の表行、高レベルヘルパー一覧の velocityArrow 行の削除
  • path() の説明を definition.moveTo().lineTo() に修正(closePath は削除済みのため)
  • asReplace() / asAppend() / asClear() を使ったコード例を operation = "replace" 等の直接代入に書き換え
  • crane::SvgColors::Yellow 等の使用箇所を生文字列("yellow" 等)に書き換え

ビルド確認

cwm ws build -w feature/remove-unused-visualizer-wrapper-apicrane_visualization_interfaces および逆依存の以下パッケージが全てエラーなくビルド成功することを確認しました。

  • crane_msg_wrappers
  • crane_robot_skills
  • crane_game_analyzer
  • crane_world_model_publisher
  • crane_local_planner
  • crane_robot_receiver
  • crane_sender
  • crane_play_switcher
  • crane_sessions
  • crane_session_coordinator
  • crane_web_debugger

出力された stderr はいずれも既存の [[nodiscard]] 警告や無関係な matplotlib_cpp_17_vendor の CMake 警告のみで、エラーはありません。

削除しなかった項目

事前に想定していた範囲(hpp/cppからの削除対象)はすべて予定通り削除できました。ただし、ドキュメント(docs/visualizer.md)側は当初指示にあった velocityArrow / drawTrajectory / drawFadingTrajectory の3項目だけでなく、同じく削除した asReplace/asAppend/asClear/raii()/SvgColors/polygon() を参照しているコード例・表・セクションも実態との乖離を防ぐため合わせて更新しています。

@HansRobo
HansRobo force-pushed the feature/remove-unused-visualizer-wrapper-api branch from 8ab4c8e to 447bc8d Compare September 13, 2026 08:30
事前監査(git grepと全文Readによる2段階の実地検証)で、
crane_visualization_interfaces/crane_visualizer_wrapper.hpp/cppに
定義された高レベル描画APIの一部がリポジトリ全体で一度も呼び出されて
いないことを確認したため、以下を削除した。

- SvgColors名前空間の色定数群(呼び出し側は生文字列を直書きしており未使用)
- VisualizerMessageBuilder::asReplace/asAppend/asClear
  (operationメンバー自体とデフォルト値設定ロジックは flush() で
  使われ続けるため維持し、直接代入 operation = "replace" 等に統一)
- circleAt/lineFrom(2オーバーロード)の宣言+inline実装
- velocityArrowの宣言+実装
- drawTrajectory/drawFadingTrajectoryの宣言+実装
- SvgBuilderBase::raii()テンプレートメソッド
  (唯一の書き込み元だったため、以後常にfalseとなるauto_buildフラグ
  および到達不能になるデストラクタの分岐も合わせて削除)
- SvgPolygonBuilder構造体丸ごと(前方宣言・polygon()宣言・実装含む。
  エントリポイントのpolygon()自体が呼ばれていないため到達不能だった)
- SvgPathBuilder::SvgPathDefinitionBuilderのhorizontalTo/verticalTo/
  closePath/cubicBezierTo(2)/smoothCubicBezierTo(2)/quadraticBezierTo(2)/
  smoothQuadraticBezierTo(2)/arcTo(2)の計11メソッド
  (moveTo/lineToはcrane_robot_skills/goal_kick.cppで実使用のため維持)

doubleCircle/labeledCircle/arc/arrow/drawFilledCircle/drawFieldRect/
drawStyledCircle/drawRobotWithID/rectangle/moveTo/lineTo/fromSegment等、
実際に使われているメソッドは変更していない。

docs/visualizer.mdは削除したAPIを紹介したままだと実態と乖離するため、
該当する説明・コード例(RAIIセクション、軌跡描画セクション、
polygon()の表行、SvgColors使用箇所、asReplace/asAppend/asClearの
コード例)を合わせて更新した。

ビルド確認: cwm ws build で crane_visualization_interfaces および
逆依存の全パッケージ(crane_msg_wrappers/crane_robot_skills/
crane_game_analyzer/crane_world_model_publisher/crane_local_planner/
crane_robot_receiver/crane_sender/crane_play_switcher/crane_sessions/
crane_session_coordinator/crane_web_debugger)が全てエラーなくビルド
成功することを確認済み。
@HansRobo
HansRobo force-pushed the feature/remove-unused-visualizer-wrapper-api branch from 447bc8d to c8cfca5 Compare September 13, 2026 10:01
@HansRobo
HansRobo merged commit 3a2bc59 into develop Sep 13, 2026
2 of 3 checks passed
@HansRobo
HansRobo deleted the feature/remove-unused-visualizer-wrapper-api branch September 13, 2026 10:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant