View Issue Details

IDProjectCategoryView StatusLast Update
0031237CommunityOCCT:Visualizationpublic2019-12-13 19:29
Reportermahaidong Assigned Tomahaidong  
PrioritynormalSeverityfeature 
Status newResolutionopen 
Summary0031237: Visualization - implement simple 2d gui on the AIS layer
Descriptioncreate a simple 2d gui on the ais layer, such as sprite. This sprite has position and area properties. When it is implemented, it has a callback function that responds to mouse events. is it possible?
TagsNo tags attached.
Test case number

Attached Files

  • scribble.png (138,960 bytes)
  • Screen Shot 2019-12-14 at 00.11.35.png (51,178 bytes)

Relationships

related to 0030952 newvpozdyayev Open CASCADE Draw Harness, ViewerTest - add command showing on-screen GUI for configuring material properties 

Activities

mahaidong

2019-12-12 09:15

reporter   ~0089472

inspired by SDL2 gui layer.

kgv

2019-12-13 13:10

developer   ~0089495

> cool! can I do something with this?
Draft within 0030952 creates some interactive OSD presentations within ViewerTest, so that it gives the idea of how such kind of things can be technically implemented on top of AIS.

The more comprehensive idea is:
- Define a new basic interface for this kind of 2D OSD objects (aka clickable).
- Provide reusable tools like sensitive entity to be useful for such kind of presentations.
- Implement a couple of presentations ("widgets") that can be used as building blocks for most common operations.
- Optionally introduce simplified signal-slot mechanism instead of callbacks for more flexible connections.
- Extend AIS_InteractiveContext / AIS_ViewController to redirect mouse movement / button press and release events on this kind of objects, so that more sophisticated logic can be implemented by widget.

Designing own widget hierarchy is not a simple but feasible task, and the main problem here is developing a minimal set of standard widgets enough for building simplified GUI. Things like buttons and text labels are trivial enough, flickable and clipped areas require extra efforts and implementing a comprehensive text input and managing input focus between widgets might be quite complicated.

I'm not sure it is worth developing a comprehensive GUI toolkit on top of AIS - there are a lot of GUI frameworks and it is clear that such task require quite an effort. But introducing some minimal blocks might be nice for cases, where complex GUI is not necessary, or portions of GUI are better connected to 3D objects.

mahaidong

2019-12-13 17:03

reporter  

scribble.png (138,960 bytes)

mahaidong

2019-12-13 17:09

reporter   ~0089507

Last edited: 2019-12-13 17:09

some simple gui like https://inkscape.org/news/2018/11/11/graphics-math-library-2geoms-first-release-availab , as you said which are better connected to 3d objects.

they implement the slider, text label.

I think we maybe need xyz-point input, slider

mahaidong

2019-12-13 19:29

reporter  

Screen Shot 2019-12-14 at 00.11.35.png (51,178 bytes)

Issue History

Date Modified Username Field Change
2019-12-12 09:09 mahaidong New Issue
2019-12-12 09:09 mahaidong Assigned To => kgv
2019-12-12 09:10 mahaidong Assigned To kgv =>
2019-12-12 09:15 mahaidong Note Added: 0089472
2019-12-12 10:35 kgv Relationship added related to 0030952
2019-12-13 13:10 kgv Note Added: 0089495
2019-12-13 13:16 kgv Summary proposal: simple 2d gui on the AIS layer. => Visualization - implement simple 2d gui on the AIS layer
2019-12-13 17:03 mahaidong File Added: scribble.png
2019-12-13 17:09 mahaidong Note Added: 0089507
2019-12-13 17:09 mahaidong Note Edited: 0089507
2019-12-13 17:12 mahaidong Assigned To => mahaidong
2019-12-13 19:29 mahaidong File Added: Screen Shot 2019-12-14 at 00.11.35.png