Weekly Check-in #4
Nibba2018
Published: 06/21/2020
TextBlock2D Progress!!
Hello and welcome to my 4th weekly check-in, I will be sharing my progress with TextBlock2D UI component. The official repository of my sub-org, FURY can always be found here.
What did you do this week?
This week my objective was to work on the TextBlock2D resizing feature and also work on the scrollbar bug in ComboBox2D UI component. The TextBlock2D component makes use of vtkTextActor and its methods available in VTK for handling all Text related properties such as font size, color, background color etc. Now, going through the official docs I figured out that the there were three different scaling modes for the said actor:
- TEXT_SCALE_MODE_NONE
- TEXT_SCALE_MODE_PROP
- TEXT_SCALE_MODE_VIEWPORT
The first scaling mode was currently implemented in FURY's TextBlock2D code base. This was done mainly because the only way for the user to create a text block was by providing the font size as parameter. We couldn't use the third option as the FURY API tries to maintain abstraction by not exposing vtkViewport parameter. Now in order to allow size as a parameter I had to use the second scaling option which is TEXT_SCALE_MODE_PROP. With this mode one can set the Position2 parameter to the desired value of height and width. But the problem is I cannot use this for the combobox element as the background size will be inconsistent with respect to font size and text length.

Therefore, as a solution we agreed to add a separate Rectangle2D UI component as the background for Text Block along with vtkTextActor. With this implementation one can easily manipulate the background irrespective of the text properties. But this had another issue, the user now had 2 different ways of initializing a TextBlock2D. Therefore, when the user uses size a constructor parameter, then everything works in sync, but the same is not true for the font size parameter. This is mainly because we do not have a specific way of determining the size of the actor based on font size. My mentors have agreed to look into this problem and advised me to focus on something else instead.
What is coming up next week?
Next week I am planning to start with Physics engine integration of FURY with pyBullet. My main focus would be to create simple simulations first before initiating the integration process. If the size issue is solved before I move into Physics engine then I would complete the ComboBox UI and start with Tab UI instead. I have also fixed the scrollbar bug.
Did you get Stuck anywhere?
The main problem that I faced so far was regarding the variable background size of the Text Block component. Also the GetPosition2 method of vtkTextActor would always return the same value irrespective of the font size parameter passed as a constructor argument. Therefore, it was not possible for me to determine the actual size or bounding box of the said text actor.
Thank you for reading, see you next week!!
View Blog Post
Weekly Check-in #3
Nibba2018
Published: 06/14/2020
ComboBox2D Progress!!
Hello and welcome to my third weekly check-in, I will be sharing my progress with the project so far. In case you wondered, the sub-org that I am affiliated to is FURY. Make sure to check out the official repository here.
What did you do this week?
This week my objective was to work on the sizing and positioning issue regarding the sub-components of the ComboBox2D UI element. After countless debugging sessions and my mentor's support, I was successfully able to fix the issue. I also developed helpful methods and callbacks for this element to allow users to interact with them in a user friendly manner. I also wrote tests for the same. So far the said progress can be summarized via this gif:

What is coming up next week?
Unfortunately, one of the sub-components TextBlock2D, didn't have a resizing feature that I could make use of for this new UI component. Thus, I need to add that feature on a different PR. This feature will also be required while building other UI elements therefore adding this feature is currently my top priority. There's also a bug regarding the scrollbar that needs to be fixed. The scrollbar overshoots the specified combobox area after new items are appended to the combobox's list of items during runtime. Hopefully I will be able to get them done by next week.
Did you get stuck anywhere?
I was really confused with the coordinate system of Panel2D that was the main reason why components were misplaced. I also faced some issues regarding the scrollbar callback as it wasn't scrolling the elements properly, the items were stuck in place. So far I was able to fix them. Apart from these, I didn't face any major issues.
Thank you for reading, see you next week!!
View Blog Post
Weekly Check-in #2
Nibba2018
Published: 06/07/2020
First week of coding!!
Hello and welcome to my second weekly check-in, I will be sharing my progress for the first week of coding.
What did you do this week?
This week my objective was to create the skeleton model for ComboBox2D UI element along with its required sub-components and their respective default callbacks. So far, I have successfully been able to implement them. Apart from some issues that I was facing regarding the sizing and position of the sub-components.
What is coming up next week?
Next week, my main focus will be on fixing the sizing issue and I will also be working on respective default and specialized class methods required by the component and its sub-components for proper functioning. I will also create tests for the same.
Did you get stuck anywhere?
The main problem that I faced while coding the UI element was regarding the sizing and positioning of the sub-components. The sub-components appeared flipped and the TextBlock2D element had no option to resize based on a particular width & height definition.

As you can see, the ComboBox UI element doesn't look the way its supposed to. Along with this issue the scrollbars callback doesn't work either. Hopefully, I will be able to get these issues fixed by next week.
Thank you for reading, see you next week!!
View Blog Post
Weekly Check-in #1
Nibba2018
Published: 05/30/2020
Welcome to my GSoC Blog!!!
Hello Everyone, this is Soham Biswas currently in 2nd year pursuing my Bachelor’s(B.Tech) degree in Computer Science & Engineering from Institute of Engineering & Management, Kolkata. I have been selected for GSoC' 20 at sub-org FURY under the umbrella organization of Python Software Foundation. I will be working on building sci-fi-like 2D and 3D interfaces and provide physics engine integration under project titled "Create new UI widgets & Physics Engine Integration".
What did you do during the Community Bonding Period?
Due to the pandemic outbreak and the country wide lockdown in India, many places including my university were closed and therefore I decided to get a head start and start with the project early. During the community bonding period, we had video conference meetings with our mentors and the project's core team. We interacted with each other and discussed the implementation details and their respective deadlines for the entire event period. We will be having such meetings every week on Wednesday in order to update ourselves about the progress of our respective tasks.
I completed the remaining Pull Requests that I had pending before the GSoC students announcement. I also reviewed other issues and pull requests to make sure everything remains up-to-date.
What is coming up next week?
Currently, I am focusing on building the ComboBox2D UI element. I will try to get the skeleton model, required sub-components and their respective default callbacks done by next week.
Did you get stuck anywhere?
While working with my previous PR related to Double Click callbacks, I faced an issue where I was unable to create and implement User Events properly in VTK. Thankfully, my mentors helped me out I was able to implement double click callbacks for all three mouse buttons successfully.
See you next week, cheers!!
View Blog Post