{"id":20905957,"url":"https://github.com/objectprofile/roassal3exporters","last_synced_at":"2026-03-18T02:34:20.933Z","repository":{"id":43097270,"uuid":"263083741","full_name":"ObjectProfile/Roassal3Exporters","owner":"ObjectProfile","description":"PDF Exporter for Roassal3","archived":false,"fork":false,"pushed_at":"2023-10-26T17:07:15.000Z","size":764,"stargazers_count":8,"open_issues_count":0,"forks_count":3,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-01-19T14:22:03.706Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Smalltalk","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ObjectProfile.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2020-05-11T15:33:32.000Z","updated_at":"2023-03-11T07:58:19.000Z","dependencies_parsed_at":"2023-02-14T16:31:32.533Z","dependency_job_id":"67f108a3-0fc8-44d4-9231-1bb4ec942b94","html_url":"https://github.com/ObjectProfile/Roassal3Exporters","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ObjectProfile%2FRoassal3Exporters","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ObjectProfile%2FRoassal3Exporters/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ObjectProfile%2FRoassal3Exporters/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ObjectProfile%2FRoassal3Exporters/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ObjectProfile","download_url":"https://codeload.github.com/ObjectProfile/Roassal3Exporters/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243297214,"owners_count":20268733,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-18T13:28:22.387Z","updated_at":"2025-12-28T05:32:52.928Z","avatar_url":"https://github.com/ObjectProfile.png","language":"Smalltalk","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Attention\n\u003cimg width=\"400\" alt=\"image\" src=\"https://github.com/ObjectProfile/Roassal3/assets/10532890/c92f4033-954f-4e29-a13d-d90ab23dffcd\"\u003e\n\nWE ARE MOVING\n- Roassal3 =\u003e https://github.com/pharo-graphics/Roassal\n- Roassal3Exporters =\u003e https://github.com/pharo-graphics/RoassalExporters\n- Roassal3Documentation =\u003e https://github.com/pharo-graphics/RoassalDocumentation\n  \nNew repositories:\n- RoassalLayouts =\u003e  https://github.com/pharo-graphics/RoassalLayouts\n\nRoassal is part of pharo thats why we want to keep it as part of the pharo ecosystem, thats why we are moving and this repository will be frozen.\n\nTo load pharo-graphics/Roassal in a pharo10/11 you will have to remove roassal3 first to avoid conflicts.\n```st\n#(Roassal3 Numeric) do: [:string |\n  regExp := '*', string ,'*'.\n  packages := RPackageOrganizer default packages\n\t  select: [ :each | regExp match: each name ].\n  packages do: [ :each | each removeFromSystem ].\n]\n```\n\n# Roassal3Exporter\n[![CI](https://github.com/ObjectProfile/Roassal3Exporters/actions/workflows/runTest.yml/badge.svg)](https://github.com/ObjectProfile/Roassal3Exporters/actions/workflows/runTest.yml)\n\n\u003c!-- \n[![.github/workflows/main.yml](https://github.com/ObjectProfile/Roassal3Exporters/workflows/CI/badge.svg)](https://github.com/ObjectProfile/Roassal3Exporters/actions)--\u003e\n\nExporters for [Roassal3](https://github.com/ObjectProfile/Roassal3).\n\n\nExecute the following code snippet in a Playground:\n\n```Smalltalk\nMetacello new\n    baseline: 'Roassal3Exporters';\n    repository: 'github://ObjectProfile/Roassal3Exporters';\n    load.\n```\n\nAvailable exporters:\n\n- PNG, with methods: `exportToPNG`, `pngExporter` or class `RSPNGExporter`\n- SVG, with methods: `exportToSVG`, `svgExporter` or class `RSSVGExporter`\n- PDF, with methods: `exportToPDF`, `pdfExporter` or class `RSPDFExporter`\n- Video mp4 or mov, with: methods `exportToVideo`, `videoExporter` or class `RSVideoExporter`\n\n# Example of usage:\n```Smalltalk\nclasses := Collection withAllSubclasses.\n\nc := RSCanvas new.\nshapes := classes collect: [ :cls |\n\tRSBox new model: cls;\n\t\theight: (cls numberOfMethods max: 5);\n\t\twidth: (cls instVarNames size * 4 max: 5);\n\t\t@ RSPopup;\n\t\t@ RSDraggable  ].\n\nc addAll: shapes.\n\neb := RSEdgeBuilder orthoVertical.\neb withVerticalAttachPoint.\neb canvas: c.\neb connectFrom: #superclass.\n\nRSTreeLayout on: shapes.\nc @ RSCanvasController.\n\n(c shapes shapeFromModel: Collection) @ (RSLabeled new text:'Über, genießen').\n\nRSPDFCairoExporter new\n\t\tcanvas: c;\n\t\texportToFile: '/tmp/foo.pdf' asFileReference\n\n```\n\nYou can access some of these exporters in the inspector\n\n\u003cimg src=\"https://user-images.githubusercontent.com/10532890/84853801-ff367f80-b02d-11ea-9040-5de4920e7635.png\" width=\"400\"/\u003e\n\n# Video\n\nYou can export your animations in a video. Load this baseline to load its dependencies.\n\n```Smalltalk\nMetacello new\n    baseline: 'Roassal3Exporters';\n    repository: 'github://ObjectProfile/Roassal3Exporters';\n    load: 'Video'.\n```\n\n Also you will need to install ffmpeg.\n\n In your terminal use\n```\nxcode-select --install\n```\n\nor:\n\n```\nbrew install ffmpeg\n```\n\n# Example video\n\n```Smalltalk\n| c b |\nc := RSCanvas new.\nb := RSBox new\n\textent: 100@100;\n\twithBorder.\nc addShape: b.\nc newAnimation\n\teasing: RSEasing bounce;\n\tfrom: -100@ -100;\n\tto: 100@100;\n\ton: b set: #position:.\nc newAnimation\n\tfrom: Color red;\n\tto: Color blue;\n\ton: b set: #color:.\nc newAnimation\n\tfrom: 0;\n\tto: 10;\n\ton: b border set: 'width:'.\nc\n\twhen:RSMouseClick\n\tdo: [ c animations do: #pause ];\n\twhen: RSMouseDoubleClick\n\tdo: [ c animations do: #continue ].\nc clearBackground: false.\n\nc videoExporter\n\tduration: 2 seconds;\n\tfileName: 'Roassal3Demo';\n\texport\n\"result will be Roassal3Demo.mp4\"\n```\n\n\u003ca href=\"https://vimeo.com/429861918\" target=\"_blank\" title=\"Roassal3 video demo - Click to Watch!\"\u003e\n\u003cimg src=\"https://user-images.githubusercontent.com/10532890/84852814-c695a680-b02b-11ea-8070-3396c0b8931e.png\" width=\"400\"\u003e\n\u003c/a\u003e\n\nYou can export the video with transparency and then use that video to edit another video. Videos with transparency take more disk memory.\n\n```Smalltalk\n\"...\"\nc color: Color transparent.\nc videoExporter\n\tduration: 2 seconds;\n\ttransparent;\n\tfileName: 'Roassal3Demo';\n\texport\n\"result will be Roassal3Demo.mov\"\n```\n\nWindows users can not use the video exporter, because it depends on OSSubProcess and that project does not run well in windows, let us know if this is important to you to work on that.\n\n# AFrame 3D\n\nYou can export a canvas to an html 3D basic exporter with AFrame \u003ca href=\"https://aframe.io/\" target=\"_blank\"\u003ehttps://aframe.io/\u003c/a\u003e\n\n```Smalltalk\nMetacello new\n    baseline: 'Roassal3Exporters';\n    repository: 'github://ObjectProfile/Roassal3Exporters';\n    load: 'AFrame'.\n```\n\nThen execute the example `example12AFrameExport`, you will get:\n\n\u003cimg src=\"https://user-images.githubusercontent.com/10532890/90902971-4842e100-e39b-11ea-93fe-418cb1b5e0f8.png\" width=\"400\"\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fobjectprofile%2Froassal3exporters","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fobjectprofile%2Froassal3exporters","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fobjectprofile%2Froassal3exporters/lists"}