GSoC Project Progress – Visual Effects and Placemarks

Hello everyone!

I think it’s time to talk again about my progress with my Google Summer of Code project.

But first, since there always are people who read a blog post of mine for the first time, it is important to make a short introduction about the intent of my project. This is also a way of reminding the others about what I’m working on. The application to which I contribute is Marble, a virtual globe and a world atlas. What I’m specifically working on is an Annotate Plugin which deals with controlling and rendering on Earth’s surface a bunch of graphic items. These graphic items are either placemarks, image overlays or polygons. Also, I recently started working on adding polylines, a new graphic element, which will allow the users to draw paths, but this will be the subject of a further blog post, hopefully the next one.

So, what have I been working on since my last blog post? Well, there are two main things: improving user experience for the whole editing mode and adding customization option for placemarks.

The first one, regarding the user experience improvements, includes two new features: node highlighting and a small animation when merging nodes. My mentors and me decided that node highlighting is an important visual effect when editing polygons, since it would give the user a clue about the fact that clicking the nodes actually does something: marks them as selected if left-clicked and opens a RMB (right mouse button) menu if right-clicked. This has been also the purpose of managing cursor shape in certain situations. You can watch these effects in action in the screencast below (Watch in HD – much higher quality).

I will also add some screenshots for those who want a quicker impression of the features (Click on photos for higher resolution!).

Note node highlighting and cursor shape

Note node highlighting and cursor shape

As far as the second visual effect which improves user experience is concerned, the merging nodes animation, it was entirely my idea and what made me think of it was the not very intuitive way nodes merging was being performed before. I thought that we need something which shows explicitly what happens when merging two nodes. You can see this animation in the following screencast:

I think it is pretty nice, what do you think? 🙂

The next major feature I worked on is adding customization options for placemarks. This part of the annotate plugin was totally new to me, since I hadn’t made any changes to placemarks before. As you may recall, the first thing I started my work with on this plugin was adapting an old implementation of ground overlays editing mode and then I continued with polygons editing, but I haven’t dealt with the text annotations implementation. However, my experience with the other two graphic elements and the similarities between them led to a faster development. Watch the video which highlights the placemark customization flow right below.

I will also add some screenshots for those who want a quicker impression of the features:

Note unavailable fields in the dialog

Note unavailable fields in the dialog


As you can see in both the screencast and these two screenshots, the edit dialog for placemarks has a couple of fields which are unavailable at the moment (label scale, ion color/scale). This is because Marble is designed in a way so that the data (such as coordinates, name, description, label/icon scale, etc) is kept apart from the objects which deal with the rendering and these objects don’t have an implementation for the unavailable options I mentioned above. However, they will be implemented soon. Also, I’m planning to implement another way of managing icons in the near future.

I hope you all like the new way to mark and describe particular places as well as the enhanced visual effects. Stay tuned for more new features to come!

Călin Cruceru


4 thoughts on “GSoC Project Progress – Visual Effects and Placemarks

  1. richard says:

    yes indeed very nice animations! But may I ask why merge nodes? I think a function to remove nodes is sufficient and more efficient. Example:
    You have 5 nodes and 4 of them form a rectangle. So now you want to remove the 5th node to have a rectangle. With your provided merge method, always two nodes change there position. So you have to rearange the merged node – that very unfortunate…

    I also very much like the custom placemark feature, but I think you should restrict the positioning to only when the property dialog is open.

    Great stuff, keep it on. 🙂

    OT: And why do you use quassel? Konversation rocks.. 🙂

    • Hi richard,

      There is a ‘function’ to remove nodes. You can either right click on nodes and select Delete Node or select a couple of nodes and right click the polygon and click ‘Delete All Selected Nodes’. Regarding the placemarks editing only when the dialog is open, I really thought of that and is one of my plans for the future.

      But now I’m working on adding the possibility of drawing paths (using polylines) which are some kind of polygons but not ‘closed’ ones. Then I will focus on polishing some behaviors, like the one for placemarks you mentioned.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s