A Qt-based editor plugin for Unigine 2.18 that provides a UI panel for applying labels to gantry structures in the scene. Supports both single numbers and sequence number assignment.
- Editor Integration: Dockable UI panel in Unigine Editor with dark theme
- Multi-Gantry Support: Select and apply labels to multiple gantries simultaneously
- Label Types:
- Label 1: Same text applied to all selected gantries
- Label 2: Single number OR sequence number assignment
- Sequence Number Logic: Per-gantry assignment (each gantry gets one number from sequence)
- Even/Odd Filtering: Optional filtering for sequence numbers
- Automatic Detection: Finds gantry nodes with
GantryLabelproperty - Real-time Preview: Immediate visual feedback in the editor
GantryLabelTool/
├── CMakeLists.txt # CMake build configuration
├── README.md
├── source/
│ ├── plugin_editor.cpp # Qt plugin implementation
│ ├── plugin_editor.h
│ ├── ui_panel_editor.cpp # Qt UI panel with label controls
│ ├── ui_panel_editor.h
│ ├── label_generator.cpp # Label creation and scene logic
│ ├── label_generator.h
│ └── GantryLabelTool.json # Plugin metadata
└── build/ # CMake build output directory
- Unigine SDK 2.18 (sim_windows_2.18.0.1_bin or later)
- Visual Studio 2022 with C++ development tools
- Qt 5.12.3 (included with Unigine SDK)
- CMake 3.16 or later
- Git (for version control)
- Open Command Prompt in the project root directory
- Create build directory and configure:
mkdir build
cd build
cmake .. -G "Ninja" -DCMAKE_BUILD_TYPE=Releasecmake --build . --config ReleaseThe output DLL will be: GantryLabelTool_editorplugin_double_x64.dll
Copy the following files to your Unigine project:
FROM: build/source/GantryLabelTool_editorplugin_double_x64.dll
TO: YOUR_PROJECT/bin/plugins/Vamps/GantryLabelTool/
FROM: source/GantryLabelTool.json
TO: YOUR_PROJECT/bin/plugins/Vamps/GantryLabelTool/
Example paths:
Copy DLL to: C:/Users/YOU/Documents/UNIGINE Projects/your_project/bin/plugins/Vamps/GantryLabelTool/
Copy JSON to: C:/Users/YOU/Documents/UNIGINE Projects/your_project/bin/plugins/Vamps/GantryLabelTool/
- Open your Unigine project in the editor
- The plugin will be automatically detected and loaded
- Look for the "Gantry Label Tool" panel in the editor interface
The scene must contain gantry nodes with the following structure:
- Gantry Nodes: Named with
gantry_pole_prefix (e.g.,gantry_pole_1) - GantryLabel Property: Property assigned to gantry nodes with
label_textparameter - Dummy Nodes: Inside gantry hierarchy named
labelandlabel2
Property: GantryLabel
├── Parameter: label_text (string)
└── Mesh surfaces: "Label1", "Label2"- Select gantry nodes in the editor outline (multi-select supported)
- Click "Refresh Selection" to update the selection counter
- Enter text (e.g., "Gantry")
- Click "Apply Label 1" - same text applied to all selected gantries
- Select "Single Number" radio button
- Enter number (e.g., "42")
- Click "Apply Label 2" - same number applied to all selected gantries
- Select "Sequence Number" radio button
- Set range: From: 1 To: 10
- Optional: Check "Even numbers only"
- Click "Apply Label 2" - assigns one number per gantry in alphabetical order
Example: 3 gantries (A, B, C) with sequence 1-5:
- Gantry A gets "1"
- Gantry B gets "2"
- Gantry C gets "3"
- Click "Apply Both Labels to Selected" to apply both labels simultaneously
- GantryLabelToolEditorPlugin: Main Qt plugin class
- UiPanelEditor: Qt UI panel with controls
- LabelGenerator: Core logic for label creation and scene interaction
- Qt Integration: Uses Qt5 for UI components
- Unigine API: Direct integration with Unigine Editor API
- Automatic Discovery: Plugin automatically detected by editor
- Metadata: JSON metadata file for plugin identification
| Issue | Solution |
|---|---|
| Plugin not loading | Verify DLL is in bin/plugins/Vamps/GantryLabelTool/ and JSON metadata exists |
| UI panel not visible | Check editor console for initialization messages |
| Gantries not detected | Ensure nodes have GantryLabel property and correct naming |
| Labels not applying | Verify dummy nodes label and label2 exist in gantry hierarchy |
| Sequence numbers not working | Ensure sequence mode is selected and range is valid |
- Uses CMake for cross-platform compatibility
- Follows Unigine 2.18 editor plugin conventions
- Qt5 MOC automatically generated for Q_OBJECT classes
- Header files contain class declarations
- Implementation files contain logic
- JSON metadata for plugin identification
- Clear separation between UI and business logic
- v1.0: Initial release with basic labeling functionality
- v1.1: Added sequence number support and multi-gantry selection
- v1.2: Converted to editor plugin with Qt UI integration
- v1.3: Fixed sequence logic and added radio button mode selection
Internal tool — not for distribution.