SlideShare a Scribd company logo
Graphics and Visualization
Yuriy Tymchuk
(almost) Alain Plantec
Guillaume Larcheveque
What are Athens?
aCanvas createPath: [:builder |
builder
absolute;
moveTo: 70@100;
lineTo: 330@100;
cwArcTo: 350@120
angle: 90 degreesToRadians;
lineTo: 350@280;
cwArcTo: 330@300
angle: 90 degreesToRadians;
lineTo: 70@300;
cwArcTo: 50@280
angle: 90 degreesToRadians;
lineTo: 50@120;
cwArcTo: 70@100
angle: 90 degreesToRadians
p := aCanvas createPath:[ :b | b
moveTo: 0.3@0.3 ;
lineTo: 0.4@0;
curveVia: 0.1@0 to: 0.1@0.1;
lineTo: 0@0.2;
curveVia: 0@0.1 to: -0.1@0.1;
lineTo: -0.4@0;
curveVia: -0.1@0 to: (0.1@0.1) negated;
lineTo: 0@0.2 negated ;
curveVia: 0@0.1 negated to: 0.1@0.1 negated ].
aCanvas
setPaint: self coloredCarColor;
drawShape: p.
stroke := aCanvas setStrokePaint: self wheelColor.
stroke width: 0.01.
aCanvas draw.
wheel := aCanvas createPath:[ :b | b
moveTo: 0.3@0.3;
cwArcTo: 0.15@0 angle: Float halfPi;
moveTo: 0.1@0;
cwArcTo: 0.15@0 angle: Float halfPi;
moveTo: 0.0@0.4;
cwArcTo: 0.15 negated@0 angle: Float halfPi;
moveTo: -0.1@0;
cwArcTo: 0.15 negated@0 angle: Float halfPi ].
aCanvas
setPaint: self wheelColor;
drawShape: wheel.
decorator := aCanvas createPath:[ :b | b
moveTo: 0.2@0.45;
lineTo: 0.225@0 ;
cwArcTo: 0.15@0 angle: Float halfPi;
lineTo: 0.225@0;
lineTo: 0@0.1 ;
lineTo: -0.225@ 0;
cwArcTo: -0.15@0 angle: Float halfPi;
lineTo: -0.225@ 0 ;
lineTo: 0@0.1 negated].
stroke := aCanvas setStrokePaint: self chasisDecoratorColor.
stroke width: 0.01.
aCanvas drawShape: decorator.
aCanvas setPaint: self chasisLineColor.
aCanvas draw.
http://agilevisualization.com
Athens
Trachel
Roassal
Amber
stuff?
Trachel
Roassal
Nicolas Lusa
Michele Lanza
Nicolas Lusa
Michele Lanza
Arc de Triomphe
Champs-Élysées
ViDI
http://vidi.inf.usi.ch
Bloc
A new 2D graphics framework for Pharo
Bloc
• a new Morph hierarchy
• a new event framework
• new layout strategies
• a new Halo framework
• new World management
• new widgets
Bloc = new Morphic implementation
+ OSWindows + Athens + TxtText
New Morph hierarchy
BlView for the rendering
BlMorph for events management
Less Morph subclasses
A Morph is associated with a View
A View can be a composite
New layout strategies
Anchors, Box, Border, Stack
An more to come:
We are ready to build new widgets
Stay tuned!
Telescope

More Related Content

More from Yuriy Tymchuk

JIT Feedback — what Experienced Developers like about Static Analysis (icpc2018)
JIT Feedback — what Experienced Developers like about Static Analysis (icpc2018)JIT Feedback — what Experienced Developers like about Static Analysis (icpc2018)
JIT Feedback — what Experienced Developers like about Static Analysis (icpc2018)
Yuriy Tymchuk
 
Pharo Quality Engine: The Last Strokes (esug2017)
Pharo Quality Engine: The Last Strokes (esug2017)Pharo Quality Engine: The Last Strokes (esug2017)
Pharo Quality Engine: The Last Strokes (esug2017)
Yuriy Tymchuk
 
The False False Positives of Static Analysis (sattose2017)
The False False Positives of Static Analysis (sattose2017)The False False Positives of Static Analysis (sattose2017)
The False False Positives of Static Analysis (sattose2017)
Yuriy Tymchuk
 
Walls, Pillars and Beams: A 3D Decomposition of Quality Anomalies (vissoft2016)
Walls, Pillars and Beams: A 3D Decomposition of Quality Anomalies (vissoft2016)Walls, Pillars and Beams: A 3D Decomposition of Quality Anomalies (vissoft2016)
Walls, Pillars and Beams: A 3D Decomposition of Quality Anomalies (vissoft2016)
Yuriy Tymchuk
 
When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valu...
When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valu...When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valu...
When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valu...
Yuriy Tymchuk
 
Stories About Renraku — the new Quality Model of Pharo (esug2016)
Stories About Renraku — the new Quality Model of Pharo (esug2016)Stories About Renraku — the new Quality Model of Pharo (esug2016)
Stories About Renraku — the new Quality Model of Pharo (esug2016)
Yuriy Tymchuk
 
Про що не говорять програмісти, про що мовчать науковці (UCU2015)
Про що не говорять програмісти, про що мовчать науковці (UCU2015)Про що не говорять програмісти, про що мовчать науковці (UCU2015)
Про що не говорять програмісти, про що мовчать науковці (UCU2015)
Yuriy Tymchuk
 
What if Clippy Would Criticize Your Code? (benevol2015)
What if Clippy Would Criticize Your Code? (benevol2015)What if Clippy Would Criticize Your Code? (benevol2015)
What if Clippy Would Criticize Your Code? (benevol2015)
Yuriy Tymchuk
 
Treating Code Quality as a First Class Entity (icsme15) [doc. symposium]
Treating Code Quality as a First Class Entity (icsme15) [doc. symposium]Treating Code Quality as a First Class Entity (icsme15) [doc. symposium]
Treating Code Quality as a First Class Entity (icsme15) [doc. symposium]
Yuriy Tymchuk
 
Beyond the Concept of Quality in Pharo (esug2015)
Beyond the Concept of Quality in Pharo (esug2015)Beyond the Concept of Quality in Pharo (esug2015)
Beyond the Concept of Quality in Pharo (esug2015)
Yuriy Tymchuk
 
Code Review: Veni, ViDI, Vici (saner15)
Code Review: Veni, ViDI, Vici (saner15)Code Review: Veni, ViDI, Vici (saner15)
Code Review: Veni, ViDI, Vici (saner15)
Yuriy Tymchuk
 
ViDI - The Visual Design Inspector (fosdem2015)
ViDI - The Visual Design Inspector (fosdem2015)ViDI - The Visual Design Inspector (fosdem2015)
ViDI - The Visual Design Inspector (fosdem2015)
Yuriy Tymchuk
 
Collaboration in Open-Source Projects: Myth or Reality? (msr14)
Collaboration in Open-Source Projects: Myth or Reality? (msr14)Collaboration in Open-Source Projects: Myth or Reality? (msr14)
Collaboration in Open-Source Projects: Myth or Reality? (msr14)
Yuriy Tymchuk
 
FAST Master's Defense (UA)
FAST Master's Defense (UA)FAST Master's Defense (UA)
FAST Master's Defense (UA)
Yuriy Tymchuk
 
Signs of Caries at SmalltalkHub (mooseday13/2)
Signs of Caries at SmalltalkHub (mooseday13/2)Signs of Caries at SmalltalkHub (mooseday13/2)
Signs of Caries at SmalltalkHub (mooseday13/2)
Yuriy Tymchuk
 
FAST Resolution (benevol13)
FAST Resolution (benevol13)FAST Resolution (benevol13)
FAST Resolution (benevol13)
Yuriy Tymchuk
 
Modeling ASTs with FAST (mooseday13)
Modeling ASTs with FAST (mooseday13)Modeling ASTs with FAST (mooseday13)
Modeling ASTs with FAST (mooseday13)Yuriy Tymchuk
 

More from Yuriy Tymchuk (17)

JIT Feedback — what Experienced Developers like about Static Analysis (icpc2018)
JIT Feedback — what Experienced Developers like about Static Analysis (icpc2018)JIT Feedback — what Experienced Developers like about Static Analysis (icpc2018)
JIT Feedback — what Experienced Developers like about Static Analysis (icpc2018)
 
Pharo Quality Engine: The Last Strokes (esug2017)
Pharo Quality Engine: The Last Strokes (esug2017)Pharo Quality Engine: The Last Strokes (esug2017)
Pharo Quality Engine: The Last Strokes (esug2017)
 
The False False Positives of Static Analysis (sattose2017)
The False False Positives of Static Analysis (sattose2017)The False False Positives of Static Analysis (sattose2017)
The False False Positives of Static Analysis (sattose2017)
 
Walls, Pillars and Beams: A 3D Decomposition of Quality Anomalies (vissoft2016)
Walls, Pillars and Beams: A 3D Decomposition of Quality Anomalies (vissoft2016)Walls, Pillars and Beams: A 3D Decomposition of Quality Anomalies (vissoft2016)
Walls, Pillars and Beams: A 3D Decomposition of Quality Anomalies (vissoft2016)
 
When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valu...
When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valu...When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valu...
When QualityAssistant Meets Pharo [Enforced Code Critiques Motivate More Valu...
 
Stories About Renraku — the new Quality Model of Pharo (esug2016)
Stories About Renraku — the new Quality Model of Pharo (esug2016)Stories About Renraku — the new Quality Model of Pharo (esug2016)
Stories About Renraku — the new Quality Model of Pharo (esug2016)
 
Про що не говорять програмісти, про що мовчать науковці (UCU2015)
Про що не говорять програмісти, про що мовчать науковці (UCU2015)Про що не говорять програмісти, про що мовчать науковці (UCU2015)
Про що не говорять програмісти, про що мовчать науковці (UCU2015)
 
What if Clippy Would Criticize Your Code? (benevol2015)
What if Clippy Would Criticize Your Code? (benevol2015)What if Clippy Would Criticize Your Code? (benevol2015)
What if Clippy Would Criticize Your Code? (benevol2015)
 
Treating Code Quality as a First Class Entity (icsme15) [doc. symposium]
Treating Code Quality as a First Class Entity (icsme15) [doc. symposium]Treating Code Quality as a First Class Entity (icsme15) [doc. symposium]
Treating Code Quality as a First Class Entity (icsme15) [doc. symposium]
 
Beyond the Concept of Quality in Pharo (esug2015)
Beyond the Concept of Quality in Pharo (esug2015)Beyond the Concept of Quality in Pharo (esug2015)
Beyond the Concept of Quality in Pharo (esug2015)
 
Code Review: Veni, ViDI, Vici (saner15)
Code Review: Veni, ViDI, Vici (saner15)Code Review: Veni, ViDI, Vici (saner15)
Code Review: Veni, ViDI, Vici (saner15)
 
ViDI - The Visual Design Inspector (fosdem2015)
ViDI - The Visual Design Inspector (fosdem2015)ViDI - The Visual Design Inspector (fosdem2015)
ViDI - The Visual Design Inspector (fosdem2015)
 
Collaboration in Open-Source Projects: Myth or Reality? (msr14)
Collaboration in Open-Source Projects: Myth or Reality? (msr14)Collaboration in Open-Source Projects: Myth or Reality? (msr14)
Collaboration in Open-Source Projects: Myth or Reality? (msr14)
 
FAST Master's Defense (UA)
FAST Master's Defense (UA)FAST Master's Defense (UA)
FAST Master's Defense (UA)
 
Signs of Caries at SmalltalkHub (mooseday13/2)
Signs of Caries at SmalltalkHub (mooseday13/2)Signs of Caries at SmalltalkHub (mooseday13/2)
Signs of Caries at SmalltalkHub (mooseday13/2)
 
FAST Resolution (benevol13)
FAST Resolution (benevol13)FAST Resolution (benevol13)
FAST Resolution (benevol13)
 
Modeling ASTs with FAST (mooseday13)
Modeling ASTs with FAST (mooseday13)Modeling ASTs with FAST (mooseday13)
Modeling ASTs with FAST (mooseday13)
 

Recently uploaded

AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
Launch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in MinutesLaunch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in Minutes
Roshan Dwivedi
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
Boni García
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
Donna Lenk
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
Aftab Hussain
 
AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
Google
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
Deuglo Infosystem Pvt Ltd
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 

Recently uploaded (20)

AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
Launch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in MinutesLaunch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in Minutes
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
 
AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 

Graphics and Visualization (Pharo Days 2015)

  • 1. Graphics and Visualization Yuriy Tymchuk (almost) Alain Plantec Guillaume Larcheveque
  • 3.
  • 4.
  • 5.
  • 6. aCanvas createPath: [:builder | builder absolute; moveTo: 70@100; lineTo: 330@100; cwArcTo: 350@120 angle: 90 degreesToRadians; lineTo: 350@280; cwArcTo: 330@300 angle: 90 degreesToRadians; lineTo: 70@300; cwArcTo: 50@280 angle: 90 degreesToRadians; lineTo: 50@120; cwArcTo: 70@100 angle: 90 degreesToRadians
  • 7. p := aCanvas createPath:[ :b | b moveTo: 0.3@0.3 ; lineTo: 0.4@0; curveVia: 0.1@0 to: 0.1@0.1; lineTo: 0@0.2; curveVia: 0@0.1 to: -0.1@0.1; lineTo: -0.4@0; curveVia: -0.1@0 to: (0.1@0.1) negated; lineTo: 0@0.2 negated ; curveVia: 0@0.1 negated to: 0.1@0.1 negated ]. aCanvas setPaint: self coloredCarColor; drawShape: p. stroke := aCanvas setStrokePaint: self wheelColor. stroke width: 0.01. aCanvas draw. wheel := aCanvas createPath:[ :b | b moveTo: 0.3@0.3; cwArcTo: 0.15@0 angle: Float halfPi; moveTo: 0.1@0; cwArcTo: 0.15@0 angle: Float halfPi; moveTo: 0.0@0.4; cwArcTo: 0.15 negated@0 angle: Float halfPi; moveTo: -0.1@0; cwArcTo: 0.15 negated@0 angle: Float halfPi ]. aCanvas setPaint: self wheelColor; drawShape: wheel. decorator := aCanvas createPath:[ :b | b moveTo: 0.2@0.45; lineTo: 0.225@0 ; cwArcTo: 0.15@0 angle: Float halfPi; lineTo: 0.225@0; lineTo: 0@0.1 ; lineTo: -0.225@ 0; cwArcTo: -0.15@0 angle: Float halfPi; lineTo: -0.225@ 0 ; lineTo: 0@0.1 negated]. stroke := aCanvas setStrokePaint: self chasisDecoratorColor. stroke width: 0.01. aCanvas drawShape: decorator. aCanvas setPaint: self chasisLineColor. aCanvas draw.
  • 8.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 19. Nicolas Lusa Michele Lanza Arc de Triomphe Champs-Élysées
  • 21. Bloc A new 2D graphics framework for Pharo
  • 22. Bloc • a new Morph hierarchy • a new event framework • new layout strategies • a new Halo framework • new World management • new widgets Bloc = new Morphic implementation + OSWindows + Athens + TxtText
  • 23. New Morph hierarchy BlView for the rendering BlMorph for events management
  • 24. Less Morph subclasses A Morph is associated with a View A View can be a composite
  • 25. New layout strategies Anchors, Box, Border, Stack
  • 26. An more to come: We are ready to build new widgets Stay tuned!