Skip to content

Releases: ObjectProfile/Roassal3

Fixes

29 Dec 17:02
Compare
Choose a tag to compare

This release fixes v1.05 with the missing method clipChildren and it fixes the issue pharo-graphics/Roassal#9

v1.05

29 Dec 17:01
Compare
Choose a tag to compare
  • Intruduce dirty rectangle, we do not draw every thing
image

Introducing the revolutionary "Dirty Rectangle" system in Roassal Pharo! Say goodbye to the hassle of redrawing everything – now, your visualizations are smarter and more efficient than ever before.

  • condense code.
  • New file format for source code
  • new dependencies for Pharo
  • Example browser now contains 2 buttons to show the dirty rectangle and the encompassing rectangles in each example
image
  • More tests
  • encompassingRectangle now considers border width.
  • RSCanvas now has method invalidate that redraws everything, instead of signalUpdate.
  • signalUpdate now only redraws the dirty rectangle.
  • shapes now has a flag to know if they are dirty.
  • RTree is a separated project now https://github.com/pharo-graphics/RTree

1.04b fixes

29 Dec 17:00
Compare
Choose a tag to compare
  • Added a missing class

v1.04

29 Dec 16:48
Compare
Choose a tag to compare

First release in Pharo graphics

Trees

07 Sep 15:58
16e2dc3
Compare
Choose a tag to compare

Updates

  • Readme file now contains information about the supported Pharo versions, currently from Pharo8 to Pharo 12.
  • new loading group: 'Full-DataFrame'
Metacello new
    baseline: 'Roassal3';
    repository: 'github://ObjectProfile/Roassal3';
    load: 'Full-DataFrame'
  • animations now react to the first time they are running
canvas newAnimation
   delay: 2 seconds;
   repeat;
   when: RSAnimationStartEvent do: [:evt | Transcript clear ] for: self;
   onStep: [:t | t traceCr ].

Now the start event is going to execute in each loop.

  • Update class comments
  • Move baseline settings into calypso settings.
  • RSLine objects can produce BlElements with lines
  • Produced bloc-visualizations now produces interactions similar to Roassal, you can drag, zoom in and zoom out and interact with the popup
  • Fix issue with wrap lines in RSMultilineLabelBuilder
  • RSViolinPlot now accepts categoryBy: with dataframe.
  • Added more examples for density plot
image
  • Horizontal Plots, each plot in Roassal responds to the message horizontal, that transforms the plot into an horizontal plot.
  • New class hierarchy for plots, RSAbstractBandPlot with subclasses: bar plot, violin plot and box plot
  • band plots can be used in cluster charts and in stacked charts.
  • Plots in roassal uses a masterShape to generate copies of that shape when they are going to produce big visualizations
  • Plots work with object models.
data := { 0@1 . 1@3 . 2@3 . 3@5 . 4@6 }.
plot := RSLinePlot new rawData: data x: #x y: #y.
  • Added animation inspector to move the animation with an slider
image

This inspector is useful if you use the transition value t because the slider recomputes it to update the animation

  • RTree for RSCanvas and RSComposite
canvas useRTree.
"canvas useList. is default"  

Roassal containers now uses a shape collection to search for events and know that shapes to draw in a visible rectangle. There are 2 types of shapes collections RSSequenceableCollection and RSRTreeShapeCollection.

Introducing the RSRTreeShapeCollection, or simply 'RTree' for friends, a fundamental data structure within Roassal. This data structure takes the form of a binary balanced tree, designed to maintain balance even as you add or remove shapes from it. The RTree, also known as the 'Rectangle tree,' is built upon the foundation of the RSRNode.

Each RSRNode can take one of two forms:

  1. Branch Node: These nodes serve as branches within the RTree and have children. They encapsulate a rectangle that contains both child nodes and do not hold a reference to a specific shape. Think of them as organizers, managing the spatial relationships between shapes.

  2. Leaf Node: In contrast to branch nodes, leaf nodes lack children but carry a reference to a specific shape. These nodes represent the end points of the RTree structure, associating a shape with a particular location in the tree.

Understanding these two node types and how they interact within the RTree is crucial for harnessing the power of this data structure in your Roassal visualizations.

In previous versions of Roassal, we relied on RSSequenceableCollection for various tasks. With the introduction of the new RTree, we've made significant enhancements to event searching and navigation within visualizations, especially when dealing with a large number of shapes. While rendering the entire visualization may still take some time, you should notice considerable improvements when visualizing specific portions of your data.

There you can see some benchmarks results

When we add shapes into the canvas

image

When we want to draw a frame of the visualization

image

When we move the mouse over the visualization

image
  • clipChildren for RSComposite now works with RTree and ignores events when is out of the composite bounding box.
  • Selection for Roassal
    RSSelectionInCanvasInteraction is present now with RSCanvasController.
    How to use it:
  1. shift+click and you can use an elastic box to select the current shapes.
  2. shift+click over a shape allows you to select/deselect only one shape.
  3. cmd + A or ctrl in windows, allows you to select all the shapes.
  4. Esc deselect all shapes.

You can access the selected shapes with:

canvas selectedShapes

Also you can put some interaction when the selection changes

canvas when: RSSelectionChangedEvent do: [:evt | evt selectedShapes traceCr ] for: self
  • Reworked search field for Roassal, now it opens a text field and it works with selection. Type some text then press enter, press esc to cancel the search field.
  • New visualization for RSEasingInterpolator.
  • Inspector of RSComposite now shows the children of the composite as a table.
  • RSElasticInterpolator now contains a custom presenter to modify the value of the visualization
  • RSPieSlice now produces a correct shadow when is selected
  • RSDraggableCanvasInteraction now includes limits.
  • RSOSMBuilder roassal now has integration with Open Street maps
image

That allows to users to put Roassal elements on top of a map that you can interact.
image

BoxPlot, ViolinPlot and CompositeCharts

27 Jul 13:02
ef9af6d
Compare
Choose a tag to compare
  • RSAbstractContainerBuilder => RSBuilder added as main class to create builders
  • Fixed Roassal3-Bloc
  • Added RSCoOccurrenceMatrixBuilder
  • Refactor in RSChart, now we have RSCompositeChart, and plots are a kind of charts
  • fix some dependency with Random
  • added more box plot examples
  • added violin plot examples
  • added cluster chart for box plot, bar plot and violin plot
  • Blox plot supports notch
  • Added more tests about charts
  • bandwith for density plots now it auto calculate
| violinPlotA violinPlotB data aRSClusterChart |
data := {{-5. 12. 12. 13. 14. 14. 15. 24. }. {-5. 12. 12. 13. 14. 14. 15. 24. }.}.

violinPlotA := self data: data.
violinPlotA bandwidth: 3.
"violinPlotA color: Color green."

violinPlotB := self data: data.
violinPlotB bandwidth: 3.
"violinPlotB color: Color red."

aRSClusterChart := violinPlotA + violinPlotB.

^ aRSClusterChart open.
image

Baseline fix for pharo11

20 Jun 12:01
Compare
Choose a tag to compare
  • Fixed roassal in pharo 11 for moose project.
  • Fixed ticks
  • Added RSDensityPlot with more examples.

Updates

13 Jun 12:02
Compare
Choose a tag to compare
  • new CI
  • fixed baseline for pharo 11, 10, 9, 8
  • fixed RSTAnnounceable, base on new announcer system
  • animation now have reference to canvas
  • Charts, ticks are now by default
  • Added new test on layouts
  • Update for layout studio
  • Fixed many layouts.
  • Update for tick computation in Numeric Scales, log scale should work decent
  • Added kernel density, class to compute values for density plot
  • Added Density Plot for a future ViolinPlot
  • Added new class examples for layouts and some classes
  • Added new coordinate system
  • Added RTree for mouse event searchs
  • Added bridge for Bloc. Use group BlocFull

image

Layout studio

17 Feb 10:41
Compare
Choose a tag to compare
  • Fix issue with themes
  • fix code with epsilon
  • better layout documentation an tests
  • new layout studio for Roassal, work in progress but it works

Roassal3 fixes

26 Jan 18:13
Compare
Choose a tag to compare
  • fix in RSTransitionAnimation to handle a correct progress
  • fix in fromNames: to handle one value
  • Renamed RSClusterLayout => RSClusterTreeLayout
  • removed calls on undefined methods
  • added RSCircularAroundAVertexLayout
  • added RSSelfLoopCPController for self loops
  • comment and tests over RSEasel
  • RSColorPaletteChooser is now fixed