Posts by Praneeth Shetty
Google Summer of Code Final Work Product
- 24 January 2023
Name: Praneeth Shetty
Week 16 - Working with Rotations!
- 21 September 2022
Last week my mentors noticed that each DrawShape has its individual rotation_slider which increases redundancy and complexity in setting its visibility on and off. Instead, they suggested moving the rotation_slider to DrawPanel and keeping a common slider for all the shapes.
Week 15 - Highlighting DrawShapes
- 14 September 2022
This week I started with highlighting the shapes. As discussed earlier, I had two ways, but while implementing them, I found out both ways aren’t that good to continue with. The first way in which we thought of creating the scaled shapes in the background had an issue with the stacking. The border(blue rectangle) and the shape(grey rectangle) both seem to look like different shapes just grouped together as shown below.
Week 14 - Updating DrawPanel architecture
- 07 September 2022
This week I continued updating the DrawShape and DrawPanel.
Week 13 - Separating tests and fixing bugs
- 31 August 2022
This week I managed to fix the translation issue in PR #653. This was happening because of the calculation error while repositioning the shapes. Now it works as intended.
Week 12 - Fixing translating issues and updating tests
- 24 August 2022
I started with updating the tests for PR #623 as some of the tests weren’t covering all the aspects in the code.
Previously I was just creating the
DrawShape and adding it to the scene but now I had to analyze the scene to see whether they were properly added or not.
Week 11 - Creating a base for Freehand Drawing
- 17 August 2022
This week I tried to imitate the working of vtkImageTracer. Previously, I had created a small prototype for freehand drawing by adding points at the mouse position (which you can check out here). As mentioned, there were some drawback of this method. So to overcome these issues, I tried combining both methods. Considering points using the previous method and instead of adding points I tried creating lines between them which looks promising. Below you can see a demo.
Week 10 - Understanding Codes and Playing with Animation
- 10 August 2022
I started working on the PR #645 created last week and tested a few more corner cases such as What happens if the maximum value is exceeded?? What if we give a value less than the minimum value range?? Most of these worked as intended.
Week 9 - Grouping and Transforming Shapes
- 03 August 2022
I started this week by creating a quick PR #645 for the UI sliders. The sliders raised
ZeroDivsionError when the min and max values were the same. To solve this, I handled the case where the value_range becomes zero and then manually set the handle position to zero.
Week 8 - Working on the polyline feature
- 27 July 2022
This week I started working on the polyline feature. After a lot of investigating and trying out different things, I found a way to call the dragging event manually without any prior click event. VTK actually captures the mouse movement using the
MouseMoveEvent. This event is then modified by FURY to only be called after the click event. So I added a new callback to track the mouse movement and set the current canvas as an active prop because it is required to capture the drag event happening on it.
Week 7 - Working on Rotation PR and Trying Freehand Drawing
- 20 July 2022
I continued PR #623 and fixed the displacement of the shape from its original position when applying rotation. This was happening because most of the calculations resulted in float values, but as the pixel position were integers we had to explicitly convert these values into int. This conversion rounded off the values and as we call this function continuously, each time the round-off would happen, the shape would get displaced.
Week 6 - Supporting Rotation of the Shapes from the Center
- 13 July 2022
This week I started implementing a new feature to rotate the shapes from the center using
RingSlider2D. I already had a rotate function that rotates the shape around its pivot vertex, so I updated it to support rotation from the center.
Week 5 - Working on new features
- 06 July 2022
This week I tried to create a base for some upcoming new features. The first thing I updated was the Properties panel which I prototyped in Week 3. So previously, it was just displaying the properties but now after the update, it is able to modify the properties(such as color, position, and rotation) too. This was a quick change to test the callbacks.
Week 4 - Fixing the Clamping Issue
- 29 June 2022
Phew!! This week was a tedious week for me as parallelly my End-Sem exams also started. So as usual I started from where I left off last week, The Clamping Issue. As per the discussion with the mentors, we decided to use the AABB bounding box method to calculate the bounding box around the shape and then reposition or transform respectively, as now we had a fixed reference point. So after doing some calculations with the mouse positions and the bounding box points at last, I was able to clamp all the shapes successfully.
Week 3 - Dealing with Problems
- 22 June 2022
This week was full of researching, playing around with things, prototyping ideas, etc. I started with last week’s clamping issue and managed to solve this issue while drawing shapes by clipping the mouse position according to canvas size, but it didn’t solve the problem with translating these shapes. I tried solving this using various approaches, but if one thing would get fixed, other things would raise a new error.
Week 2 - Improving DrawPanel UI
- 15 June 2022
This week I had to refactor and make my code cleaner along with some bug fixing, I started by adding tests and tutorials so that my changes could be tested by everyone. Then I separated the mode for selection so that it would be easy to select an individual element and work along with it. Once the selection mode was complete I started with the deletion of the elements.
Week 1 - Laying the Foundation of DrawPanel UI
- 08 June 2022
This week we started with our first technical meeting in which the weekly tasks were assigned. So I had to start with some background or canvas and draw a line using mouse clicks.
- 25 May 2022
Hello Guys!! I am Praneeth Shetty, currently pursuing Bachelor of Engineering in Computer Engineering, and here is my journey from where I started to the selection into GSoC22.