Hi all,
How I can have CodeCity in latest Moose?
I tried the following configuration but when I select the CodeCity tab in the Moose Panel an error pops up. Gofer new smalltalkhubUser: 'RichardWettel' project: 'CodeCity'; configuration; load. (Smalltalk at: #ConfigurationOfCodeCity) loadDevelopment
[image: Inline images 2]
Best regards, Leonel Merino PhD student University of Bern +41 78 405 43 38 merino@inf.unibe.ch
Hi,
You can take a look here (https://ci.inria.fr/moose/job/codecity/) to download code city on Moose 6.0 (Pharo5.0), but I don’t think that it is available on the latest Moose version.
Cheers, Vincent
De : Moose-dev [mailto:moose-dev-bounces@list.inf.unibe.ch] De la part de Leonel Merino Envoyé : mercredi 14 décembre 2016 16:25 À : Moose-dev@list.inf.unibe.ch Objet : [Moose-dev] CodeCity in latest Moose?
Hi all,
How I can have CodeCity in latest Moose?
I tried the following configuration but when I select the CodeCity tab in the Moose Panel an error pops up. Gofer new smalltalkhubUser: 'RichardWettel' project: 'CodeCity'; configuration; load. (Smalltalk at: #ConfigurationOfCodeCity) loadDevelopment
[cid:image001.png@01D25627.40C23B70]
Best regards, Leonel Merino PhD student University of Bern +41 78 405 43 38 merino@inf.unibe.chmailto:merino@inf.unibe.ch
!!!************************************************************************************* "Ce message et les pièces jointes sont confidentiels et réservés à l'usage exclusif de ses destinataires. Il peut également être protégé par le secret professionnel. Si vous recevez ce message par erreur, merci d'en avertir immédiatement l'expéditeur et de le détruire. L'intégrité du message ne pouvant être assurée sur Internet, la responsabilité de Worldline ne pourra être recherchée quant au contenu de ce message. Bien que les meilleurs efforts soient faits pour maintenir cette transmission exempte de tout virus, l'expéditeur ne donne aucune garantie à cet égard et sa responsabilité ne saurait être recherchée pour tout dommage résultant d'un virus transmis.
This e-mail and the documents attached are confidential and intended solely for the addressee; it may also be privileged. If you receive this e-mail in error, please notify the sender immediately and destroy it. As its integrity cannot be secured on the Internet, the Worldline liability cannot be triggered for the message content. Although the sender endeavours to maintain a computer virus-free network, the sender does not warrant that this transmission is virus-free and will not be liable for any damages resulting from any virus transmitted.!!!"
Hi,
CodeCity relies on NBOpenGL which does not work on Pharo 6.
Cheers, Doru
On Dec 14, 2016, at 10:29 AM, Blondeau Vincent vincent.blondeau@worldline.com wrote:
Hi,
You can take a look here (https://ci.inria.fr/moose/job/codecity/) to download code city on Moose 6.0 (Pharo5.0), but I don’t think that it is available on the latest Moose version.
Cheers, Vincent
De : Moose-dev [mailto:moose-dev-bounces@list.inf.unibe.ch] De la part de Leonel Merino Envoyé : mercredi 14 décembre 2016 16:25 À : Moose-dev@list.inf.unibe.ch Objet : [Moose-dev] CodeCity in latest Moose?
Hi all,
How I can have CodeCity in latest Moose?
I tried the following configuration but when I select the CodeCity tab in the Moose Panel an error pops up. Gofer new smalltalkhubUser: 'RichardWettel' project: 'CodeCity'; configuration; load. (Smalltalk at: #ConfigurationOfCodeCity) loadDevelopment
<image001.png>
Best regards, Leonel Merino PhD student University of Bern +41 78 405 43 38 merino@inf.unibe.ch
!!!************************************************************************************* "Ce message et les pièces jointes sont confidentiels et réservés à l'usage exclusif de ses destinataires. Il peut également être protégé par le secret professionnel. Si vous recevez ce message par erreur, merci d'en avertir immédiatement l'expéditeur et de le détruire. L'intégrité du message ne pouvant être assurée sur Internet, la responsabilité de Worldline ne pourra être recherchée quant au contenu de ce message. Bien que les meilleurs efforts soient faits pour maintenir cette transmission exempte de tout virus, l'expéditeur ne donne aucune garantie à cet égard et sa responsabilité ne saurait être recherchée pour tout dommage résultant d'un virus transmis.
This e-mail and the documents attached are confidential and intended solely for the addressee; it may also be privileged. If you receive this e-mail in error, please notify the sender immediately and destroy it. As its integrity cannot be secured on the Internet, the Worldline liability cannot be triggered for the message content. Although the sender endeavours to maintain a computer virus-free network, the sender does not warrant that this transmission is virus-free and will not be liable for any damages resulting from any virus transmitted.!!!" _______________________________________________ Moose-dev mailing list Moose-dev@list.inf.unibe.ch https://www.list.inf.unibe.ch/listinfo/moose-dev
-- www.tudorgirba.com www.feenk.com
"To utilize feedback, you first have to acquire it."
Is there anything which works with 3D on Pharo 5?
Uko
Sent from my iPhone
On 14 Dec 2016, at 16:37, Tudor Girba tudor@tudorgirba.com wrote:
Hi,
CodeCity relies on NBOpenGL which does not work on Pharo 6.
Cheers, Doru
On Dec 14, 2016, at 10:29 AM, Blondeau Vincent vincent.blondeau@worldline.com wrote:
Hi,
You can take a look here (https://ci.inria.fr/moose/job/codecity/) to download code city on Moose 6.0 (Pharo5.0), but I don’t think that it is available on the latest Moose version.
Cheers, Vincent
De : Moose-dev [mailto:moose-dev-bounces@list.inf.unibe.ch] De la part de Leonel Merino Envoyé : mercredi 14 décembre 2016 16:25 À : Moose-dev@list.inf.unibe.ch Objet : [Moose-dev] CodeCity in latest Moose?
Hi all,
How I can have CodeCity in latest Moose?
I tried the following configuration but when I select the CodeCity tab in the Moose Panel an error pops up. Gofer new smalltalkhubUser: 'RichardWettel' project: 'CodeCity'; configuration; load. (Smalltalk at: #ConfigurationOfCodeCity) loadDevelopment
<image001.png>
Best regards, Leonel Merino PhD student University of Bern +41 78 405 43 38 merino@inf.unibe.ch
!!!************************************************************************************* "Ce message et les pièces jointes sont confidentiels et réservés à l'usage exclusif de ses destinataires. Il peut également être protégé par le secret professionnel. Si vous recevez ce message par erreur, merci d'en avertir immédiatement l'expéditeur et de le détruire. L'intégrité du message ne pouvant être assurée sur Internet, la responsabilité de Worldline ne pourra être recherchée quant au contenu de ce message. Bien que les meilleurs efforts soient faits pour maintenir cette transmission exempte de tout virus, l'expéditeur ne donne aucune garantie à cet égard et sa responsabilité ne saurait être recherchée pour tout dommage résultant d'un virus transmis.
This e-mail and the documents attached are confidential and intended solely for the addressee; it may also be privileged. If you receive this e-mail in error, please notify the sender immediately and destroy it. As its integrity cannot be secured on the Internet, the Worldline liability cannot be triggered for the message content. Although the sender endeavours to maintain a computer virus-free network, the sender does not warrant that this transmission is virus-free and will not be liable for any damages resulting from any virus transmitted.!!!" _______________________________________________ Moose-dev mailing list Moose-dev@list.inf.unibe.ch https://www.list.inf.unibe.ch/listinfo/moose-dev
-- www.tudorgirba.com www.feenk.com
"To utilize feedback, you first have to acquire it."
Moose-dev mailing list Moose-dev@list.inf.unibe.ch https://www.list.inf.unibe.ch/listinfo/moose-dev
Code City should work in Pharo 5.
Doru
On Dec 14, 2016, at 11:04 AM, Yuriy Tymchuk yuriy.tymchuk@me.com wrote:
Is there anything which works with 3D on Pharo 5?
Uko
Sent from my iPhone
On 14 Dec 2016, at 16:37, Tudor Girba tudor@tudorgirba.com wrote:
Hi,
CodeCity relies on NBOpenGL which does not work on Pharo 6.
Cheers, Doru
On Dec 14, 2016, at 10:29 AM, Blondeau Vincent vincent.blondeau@worldline.com wrote:
Hi,
You can take a look here (https://ci.inria.fr/moose/job/codecity/) to download code city on Moose 6.0 (Pharo5.0), but I don’t think that it is available on the latest Moose version.
Cheers, Vincent
De : Moose-dev [mailto:moose-dev-bounces@list.inf.unibe.ch] De la part de Leonel Merino Envoyé : mercredi 14 décembre 2016 16:25 À : Moose-dev@list.inf.unibe.ch Objet : [Moose-dev] CodeCity in latest Moose?
Hi all,
How I can have CodeCity in latest Moose?
I tried the following configuration but when I select the CodeCity tab in the Moose Panel an error pops up. Gofer new smalltalkhubUser: 'RichardWettel' project: 'CodeCity'; configuration; load. (Smalltalk at: #ConfigurationOfCodeCity) loadDevelopment
<image001.png>
Best regards, Leonel Merino PhD student University of Bern +41 78 405 43 38 merino@inf.unibe.ch
!!!************************************************************************************* "Ce message et les pièces jointes sont confidentiels et réservés à l'usage exclusif de ses destinataires. Il peut également être protégé par le secret professionnel. Si vous recevez ce message par erreur, merci d'en avertir immédiatement l'expéditeur et de le détruire. L'intégrité du message ne pouvant être assurée sur Internet, la responsabilité de Worldline ne pourra être recherchée quant au contenu de ce message. Bien que les meilleurs efforts soient faits pour maintenir cette transmission exempte de tout virus, l'expéditeur ne donne aucune garantie à cet égard et sa responsabilité ne saurait être recherchée pour tout dommage résultant d'un virus transmis.
This e-mail and the documents attached are confidential and intended solely for the addressee; it may also be privileged. If you receive this e-mail in error, please notify the sender immediately and destroy it. As its integrity cannot be secured on the Internet, the Worldline liability cannot be triggered for the message content. Although the sender endeavours to maintain a computer virus-free network, the sender does not warrant that this transmission is virus-free and will not be liable for any damages resulting from any virus transmitted.!!!" _______________________________________________ Moose-dev mailing list Moose-dev@list.inf.unibe.ch https://www.list.inf.unibe.ch/listinfo/moose-dev
-- www.tudorgirba.com www.feenk.com
"To utilize feedback, you first have to acquire it."
Moose-dev mailing list Moose-dev@list.inf.unibe.ch https://www.list.inf.unibe.ch/listinfo/moose-dev
Moose-dev mailing list Moose-dev@list.inf.unibe.ch https://www.list.inf.unibe.ch/listinfo/moose-dev
-- www.tudorgirba.com www.feenk.com
"There are no old things, there are only old ways of looking at them."
A pre-spur pre-pharo5, that is.
Stephan
Verstuurd vanaf mijn iPhone
Op 14 dec. 2016 om 17:06 heeft Tudor Girba tudor@tudorgirba.com het volgende geschreven:
Code City should work in Pharo 5.
Hi all,
Thanks for the replies. Let me ask you one more question. As an exercise, I want to reproduce in Roassal2 the top view of CodeCity. So I took this script from CCScriptExamples>>cityOfJavaSystem: -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- | models builder | models := MooseModel root allModels. builder := CCBuilder new. models notEmpty ifTrue: [ | namespaces classes classNormalizer packageNormalizer | builder packingLayout. namespaces := models first allModelNamespaces. classes := namespaces flatCollect: #classes. packageNormalizer := CCColorNormalizer new low: (Color gray: 0.6); high: (Color gray: 0.95); transformation: #nestingLevel; population: namespaces. builder shapeBuilder platform color: packageNormalizer. builder nodes: namespaces. classNormalizer := CCColorNormalizer new low: (Color gray: 0.25); high: Color blue; transformation: #numberOfLinesOfCode; population: classes. builder shapeBuilder box color: classNormalizer; height: #numberOfMethods; width: #numberOfAttributes; depth: #numberOfAttributes. builder nodes: classes. builder nest: namespaces node: #yourself in: #parentScope. builder nest: classes node: #yourself in: #namespaceScope ]. builder open -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- It produced this view: [image: Inline images 1] Then I produced the following Roassal2 script based on the nodes from the previous builder object: -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- v := RTView new. classes := builder nodes reject: [ :e | e model class = FAMIXNamespace ]. packages := builder nodes select: [ :e | e model class = FAMIXNamespace ]. els1 := (RTBox new height: #depth; width: #width; color: #color) elementsOn: classes. els2 := (RTBox new height: [ :e | e contentBoundingVolume depth ]; width: [ :e | e contentBoundingVolume width ]; color: #color) elementsOn: packages. els1 do: [ :e | e translateTo: (e model position x + (e model depth / 2)) @ (e model position z + (e model width / 2)) ]. els2 do: [ :e | e translateTo: (e model position x + (e model contentBoundingVolume depth / 2)) @ (e model position z + (e model contentBoundingVolume width / 2)) ]. v addAll: els2 , els1. els2 @ RTDraggable. v -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Although the boxes that represent classes seem correct, I have trouble positioning the boxes that corresponds to packages. Does anyone have an idea of how to fix this? [image: Inline images 2]
Best regards,
Leonel Merino PhD student University of Bern +41 78 405 43 38 merino@inf.unibe.ch
2016-12-14 18:32 GMT+01:00 Stephan Eggermont stephan@stack.nl:
A pre-spur pre-pharo5, that is.
Stephan
Verstuurd vanaf mijn iPhone
Op 14 dec. 2016 om 17:06 heeft Tudor Girba tudor@tudorgirba.com het
volgende geschreven:
Code City should work in Pharo 5.
Moose-dev mailing list Moose-dev@list.inf.unibe.ch https://www.list.inf.unibe.ch/listinfo/moose-dev
Hi Leonel In CodeCity the components are laid out starting with the inner components and continuing with the next outer component level. When translating a component, I needed to make sure that its inner components move together with it.From what I see in your result, it looks like that could be the problem. I am not sure how translation is done in Roassal, but I hope this helps you move forward towards fixing the problem. CheersRicky _____________________________ From: Leonel Merino merino@inf.unibe.ch Sent: Friday, December 16, 2016 11:18 Subject: [Moose-dev] Re: CodeCity in latest Moose? To: Moose-related development moose-dev@list.inf.unibe.ch
Hi all, Thanks for the replies. Let me ask you one more question. As an exercise, I want to reproduce in Roassal2 the top view of CodeCity. So I took this script from CCScriptExamples>>cityOfJavaSystem:-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-| models builder | models := MooseModel root allModels. builder := CCBuilder new. models notEmpty ifTrue: [ | namespaces classes classNormalizer packageNormalizer | builder packingLayout. namespaces := models first allModelNamespaces. classes := namespaces flatCollect: #classes. packageNormalizer := CCColorNormalizer new low: (Color gray: 0.6); high: (Color gray: 0.95); transformation: #nestingLevel; population: namespaces. builder shapeBuilder platform color: packageNormalizer. builder nodes: namespaces. classNormalizer := CCColorNormalizer new low: (Color gray: 0.25); high: Color blue; transformation: #numberOfLinesOfCode; population: classes. builder shapeBuilder box color: classNormalizer; height: #numberOfMethods; width: #numberOfAttributes; depth: #numberOfAttributes. builder nodes: classes. builder nest: namespaces node: #yourself in: #parentScope. builder nest: classes node: #yourself in: #namespaceScope ]. builder open-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-It produced this view: Then I produced the following Roassal2 script based on the nodes from the previous builder object:-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-v := RTView new.classes := builder nodes reject: [ :e | e model class = FAMIXNamespace ].packages := builder nodes select: [ :e | e model class = FAMIXNamespace ].els1 := (RTBox new height: #depth; width: #width; color: #color) elementsOn: classes.els2 := (RTBox new height: [ :e | e contentBoundingVolume depth ]; width: [ :e | e contentBoundingVolume width ]; color: #color) elementsOn: packages.els1 do: [ :e | e translateTo: (e model position x + (e model depth / 2)) @ (e model position z + (e model width / 2)) ].els2 do: [ :e | e translateTo: (e model position x + (e model contentBoundingVolume depth / 2)) @ (e model position z + (e model contentBoundingVolume width / 2)) ].v addAll: els2 , els1.els2 @ RTDraggable.v-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-Although the boxes that represent classes seem correct, I have trouble positioning the boxes that corresponds to packages. Does anyone have an idea of how to fix this?
Best regards, Leonel MerinoPhD studentUniversity of Bern+41 78 405 43 38merino@inf.unibe.ch 2016-12-14 18:32 GMT+01:00 Stephan Eggermont stephan@stack.nl: A pre-spur pre-pharo5, that is.
Stephan
Verstuurd vanaf mijn iPhone
Op 14 dec. 2016 om 17:06 heeft Tudor Girba tudor@tudorgirba.com het volgende geschreven:
Code City should work in Pharo 5.
_______________________________________________ Moose-dev mailing list Moose-dev@list.inf.unibe.ch https://www.list.inf.unibe.ch/listinfo/moose-dev
Hi Leonel,
I guess you wish to have the GTInspector facilities, which is why you have using Roassal on this? How can I reproduce the problem? Where contentBoundingVolume comes from? Where is the layout?
Cheers, Alexandre
On Dec 16, 2016, at 11:18 AM, Leonel Merino merino@inf.unibe.ch wrote:
Hi all,
Thanks for the replies. Let me ask you one more question. As an exercise, I want to reproduce in Roassal2 the top view of CodeCity. So I took this script from CCScriptExamples>>cityOfJavaSystem: -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- | models builder | models := MooseModel root allModels. builder := CCBuilder new. models notEmpty ifTrue: [ | namespaces classes classNormalizer packageNormalizer | builder packingLayout. namespaces := models first allModelNamespaces. classes := namespaces flatCollect: #classes. packageNormalizer := CCColorNormalizer new low: (Color gray: 0.6); high: (Color gray: 0.95); transformation: #nestingLevel; population: namespaces. builder shapeBuilder platform color: packageNormalizer. builder nodes: namespaces. classNormalizer := CCColorNormalizer new low: (Color gray: 0.25); high: Color blue; transformation: #numberOfLinesOfCode; population: classes. builder shapeBuilder box color: classNormalizer; height: #numberOfMethods; width: #numberOfAttributes; depth: #numberOfAttributes. builder nodes: classes. builder nest: namespaces node: #yourself in: #parentScope. builder nest: classes node: #yourself in: #namespaceScope ]. builder open -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- It produced this view: <image.png> Then I produced the following Roassal2 script based on the nodes from the previous builder object: -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- v := RTView new. classes := builder nodes reject: [ :e | e model class = FAMIXNamespace ]. packages := builder nodes select: [ :e | e model class = FAMIXNamespace ]. els1 := (RTBox new height: #depth; width: #width; color: #color) elementsOn: classes. els2 := (RTBox new height: [ :e | e contentBoundingVolume depth ]; width: [ :e | e contentBoundingVolume width ]; color: #color) elementsOn: packages. els1 do: [ :e | e translateTo: (e model position x + (e model depth / 2)) @ (e model position z + (e model width / 2)) ]. els2 do: [ :e | e translateTo: (e model position x + (e model contentBoundingVolume depth / 2)) @ (e model position z + (e model contentBoundingVolume width / 2)) ]. v addAll: els2 , els1. els2 @ RTDraggable. v -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Although the boxes that represent classes seem correct, I have trouble positioning the boxes that corresponds to packages. Does anyone have an idea of how to fix this? <image.png>
Best regards,
Leonel Merino PhD student University of Bern +41 78 405 43 38 merino@inf.unibe.ch
2016-12-14 18:32 GMT+01:00 Stephan Eggermont stephan@stack.nl: A pre-spur pre-pharo5, that is.
Stephan
Verstuurd vanaf mijn iPhone
Op 14 dec. 2016 om 17:06 heeft Tudor Girba tudor@tudorgirba.com het volgende geschreven:
Code City should work in Pharo 5.
Moose-dev mailing list Moose-dev@list.inf.unibe.ch https://www.list.inf.unibe.ch/listinfo/moose-dev
Moose-dev mailing list Moose-dev@list.inf.unibe.ch https://www.list.inf.unibe.ch/listinfo/moose-dev
Hi Alex,
I want to try the CodeCity visualization in a VR system. So I want to extract nodes attributes (size, color, position) from the Pharo implementation. As first step I wanted to see whether the data I am gathering are correct by mapping the top view in Roassal2, so I could compare both. In the script that I pasted, the objects in the model of RTElements are CCNodes from which I extract the attributes (size, color and position). I managed to extract all attributes for classes, but for packages the position does not map well. Regarding your questions: contentBoundingVolume is part of the CC implementation as well as the layout.
To reproduce it, you need to have CodeCity, Moose and a FAMIX model. Then you can run both scrips that I pasted in my previous message.
Best regards Leonel
On Fri, 16 Dec 2016 at 18:24, Alexandre Bergel alexandre.bergel@me.com wrote:
Hi Leonel,
I guess you wish to have the GTInspector facilities, which is why you have using Roassal on this?
How can I reproduce the problem? Where contentBoundingVolume comes from? Where is the layout?
Cheers,
Alexandre
On Dec 16, 2016, at 11:18 AM, Leonel Merino merino@inf.unibe.ch wrote:
Hi all,
Thanks for the replies. Let me ask you one more question.
As an exercise, I want to reproduce in Roassal2 the top view of
CodeCity. So I took this script from CCScriptExamples>>cityOfJavaSystem:
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
| models builder |
models := MooseModel root allModels.
builder := CCBuilder new.
models notEmpty
ifTrue: [
| namespaces classes classNormalizer
packageNormalizer |
builder packingLayout.
namespaces := models first allModelNamespaces.
classes := namespaces flatCollect: #classes.
packageNormalizer := CCColorNormalizer new
low: (Color gray: 0.6);
high: (Color gray: 0.95);
transformation: #nestingLevel;
population: namespaces.
builder shapeBuilder platform color:
packageNormalizer.
builder nodes: namespaces.
classNormalizer := CCColorNormalizer new
low: (Color gray: 0.25);
high: Color blue;
transformation: #numberOfLinesOfCode;
population: classes.
builder shapeBuilder box
color: classNormalizer;
height: #numberOfMethods;
width: #numberOfAttributes;
depth: #numberOfAttributes.
builder nodes: classes.
builder nest: namespaces node: #yourself in:
#parentScope.
builder nest: classes node: #yourself in:
#namespaceScope ].
builder open
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
It produced this view:
<image.png>
Then I produced the following Roassal2 script based on the nodes from
the previous builder object:
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
v := RTView new.
classes := builder nodes reject: [ :e | e model class = FAMIXNamespace ].
packages := builder nodes select: [ :e | e model class = FAMIXNamespace
].
els1 := (RTBox new
height: #depth;
width: #width;
color: #color) elementsOn: classes.
els2 := (RTBox new
height: [ :e | e contentBoundingVolume depth ];
width: [ :e | e contentBoundingVolume width ];
color: #color) elementsOn: packages.
els1
do: [ :e | e translateTo: (e model position x + (e model depth /
2)) @ (e model position z + (e model width / 2)) ].
els2
do: [ :e |
e
translateTo:
(e model position x + (e model
contentBoundingVolume depth / 2))
@ (e model position z + (e model
contentBoundingVolume width / 2)) ].
v addAll: els2 , els1.
els2 @ RTDraggable.
v
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Although the boxes that represent classes seem correct, I have trouble
positioning the boxes that corresponds to packages.
Does anyone have an idea of how to fix this?
<image.png>
Best regards,
Leonel Merino
PhD student
University of Bern
+41 78 405 43 38
merino@inf.unibe.ch
2016-12-14 18:32 GMT+01:00 Stephan Eggermont stephan@stack.nl:
A pre-spur pre-pharo5, that is.
Stephan
Verstuurd vanaf mijn iPhone
Op 14 dec. 2016 om 17:06 heeft Tudor Girba tudor@tudorgirba.com het
volgende geschreven:
Code City should work in Pharo 5.
Moose-dev mailing list
Moose-dev@list.inf.unibe.ch
Moose-dev mailing list
Moose-dev@list.inf.unibe.ch
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Moose-dev mailing list
Moose-dev@list.inf.unibe.ch
I do not understand. Is this a CodeCity problem or a Roassal problem?
Alexandre
On Dec 16, 2016, at 8:50 PM, Leonel Merino merino@inf.unibe.ch wrote:
Hi Alex,
I want to try the CodeCity visualization in a VR system. So I want to extract nodes attributes (size, color, position) from the Pharo implementation. As first step I wanted to see whether the data I am gathering are correct by mapping the top view in Roassal2, so I could compare both. In the script that I pasted, the objects in the model of RTElements are CCNodes from which I extract the attributes (size, color and position). I managed to extract all attributes for classes, but for packages the position does not map well. Regarding your questions: contentBoundingVolume is part of the CC implementation as well as the layout.
To reproduce it, you need to have CodeCity, Moose and a FAMIX model. Then you can run both scrips that I pasted in my previous message.
Best regards Leonel
On Fri, 16 Dec 2016 at 18:24, Alexandre Bergel alexandre.bergel@me.com wrote: Hi Leonel,
I guess you wish to have the GTInspector facilities, which is why you have using Roassal on this?
How can I reproduce the problem? Where contentBoundingVolume comes from? Where is the layout?
Cheers,
Alexandre
On Dec 16, 2016, at 11:18 AM, Leonel Merino merino@inf.unibe.ch wrote:
Hi all,
Thanks for the replies. Let me ask you one more question.
As an exercise, I want to reproduce in Roassal2 the top view of CodeCity. So I took this script from CCScriptExamples>>cityOfJavaSystem:
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
| models builder |
models := MooseModel root allModels.
builder := CCBuilder new.
models notEmpty
ifTrue: [
| namespaces classes classNormalizer packageNormalizer |
builder packingLayout.
namespaces := models first allModelNamespaces.
classes := namespaces flatCollect: #classes.
packageNormalizer := CCColorNormalizer new
low: (Color gray: 0.6);
high: (Color gray: 0.95);
transformation: #nestingLevel;
population: namespaces.
builder shapeBuilder platform color: packageNormalizer.
builder nodes: namespaces.
classNormalizer := CCColorNormalizer new
low: (Color gray: 0.25);
high: Color blue;
transformation: #numberOfLinesOfCode;
population: classes.
builder shapeBuilder box
color: classNormalizer;
height: #numberOfMethods;
width: #numberOfAttributes;
depth: #numberOfAttributes.
builder nodes: classes.
builder nest: namespaces node: #yourself in: #parentScope.
builder nest: classes node: #yourself in: #namespaceScope ].
builder open
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
It produced this view:
<image.png>
Then I produced the following Roassal2 script based on the nodes from the previous builder object:
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
v := RTView new.
classes := builder nodes reject: [ :e | e model class = FAMIXNamespace ].
packages := builder nodes select: [ :e | e model class = FAMIXNamespace ].
els1 := (RTBox new
height: #depth;
width: #width;
color: #color) elementsOn: classes.
els2 := (RTBox new
height: [ :e | e contentBoundingVolume depth ];
width: [ :e | e contentBoundingVolume width ];
color: #color) elementsOn: packages.
els1
do: [ :e | e translateTo: (e model position x + (e model depth / 2)) @ (e model position z + (e model width / 2)) ].
els2
do: [ :e |
e
translateTo:
(e model position x + (e model contentBoundingVolume depth / 2))
@ (e model position z + (e model contentBoundingVolume width / 2)) ].
v addAll: els2 , els1.
els2 @ RTDraggable.
v
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Although the boxes that represent classes seem correct, I have trouble positioning the boxes that corresponds to packages.
Does anyone have an idea of how to fix this?
<image.png>
Best regards,
Leonel Merino
PhD student
University of Bern
+41 78 405 43 38
merino@inf.unibe.ch
2016-12-14 18:32 GMT+01:00 Stephan Eggermont stephan@stack.nl:
A pre-spur pre-pharo5, that is.
Stephan
Verstuurd vanaf mijn iPhone
Op 14 dec. 2016 om 17:06 heeft Tudor Girba tudor@tudorgirba.com het volgende geschreven:
Code City should work in Pharo 5.
Moose-dev mailing list
Moose-dev@list.inf.unibe.ch
Moose-dev mailing list
Moose-dev@list.inf.unibe.ch
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Moose-dev mailing list
Moose-dev@list.inf.unibe.ch
https://www.list.inf.unibe.ch/listinfo/moose-dev
Moose-dev mailing list Moose-dev@list.inf.unibe.ch https://www.list.inf.unibe.ch/listinfo/moose-dev
Hi Alex,
I would not say that it's a problem of CodeCity/Roassal, but my limited understanding of the implementation of CodeCity. I will follow the Ricky's suggestion regarding to explore the nesting model.
Thanks!
Leonel Merino PhD student University of Bern +41 78 405 43 38 merino@inf.unibe.ch
On 17 December 2016 at 12:13, Alexandre Bergel alexandre.bergel@me.com wrote:
I do not understand. Is this a CodeCity problem or a Roassal problem?
Alexandre
On Dec 16, 2016, at 8:50 PM, Leonel Merino merino@inf.unibe.ch wrote:
Hi Alex,
I want to try the CodeCity visualization in a VR system. So I want to
extract nodes attributes (size, color, position) from the Pharo implementation. As first step I wanted to see whether the data I am gathering are correct by mapping the top view in Roassal2, so I could compare both.
In the script that I pasted, the objects in the model of RTElements are
CCNodes from which I extract the attributes (size, color and position). I managed to extract all attributes for classes, but for packages the position does not map well.
Regarding your questions: contentBoundingVolume is part of the CC
implementation as well as the layout.
To reproduce it, you need to have CodeCity, Moose and a FAMIX model.
Then you can run both scrips that I pasted in my previous message.
Best regards Leonel
On Fri, 16 Dec 2016 at 18:24, Alexandre Bergel alexandre.bergel@me.com
wrote:
Hi Leonel,
I guess you wish to have the GTInspector facilities, which is why you
have using Roassal on this?
How can I reproduce the problem? Where contentBoundingVolume comes from?
Where is the layout?
Cheers,
Alexandre
On Dec 16, 2016, at 11:18 AM, Leonel Merino merino@inf.unibe.ch
wrote:
Hi all,
Thanks for the replies. Let me ask you one more question.
As an exercise, I want to reproduce in Roassal2 the top view of
CodeCity. So I took this script from CCScriptExamples>>cityOfJavaSystem:
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
| models builder |
models := MooseModel root allModels.
builder := CCBuilder new.
models notEmpty
ifTrue: [
| namespaces classes classNormalizer
packageNormalizer |
builder packingLayout.
namespaces := models first allModelNamespaces.
classes := namespaces flatCollect: #classes.
packageNormalizer := CCColorNormalizer new
low: (Color gray: 0.6);
high: (Color gray: 0.95);
transformation: #nestingLevel;
population: namespaces.
builder shapeBuilder platform color:
packageNormalizer.
builder nodes: namespaces.
classNormalizer := CCColorNormalizer new
low: (Color gray: 0.25);
high: Color blue;
transformation: #numberOfLinesOfCode;
population: classes.
builder shapeBuilder box
color: classNormalizer;
height: #numberOfMethods;
width: #numberOfAttributes;
depth: #numberOfAttributes.
builder nodes: classes.
builder nest: namespaces node: #yourself in:
#parentScope.
builder nest: classes node: #yourself in:
#namespaceScope ].
builder open
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
It produced this view:
<image.png>
Then I produced the following Roassal2 script based on the nodes from
the previous builder object:
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
v := RTView new.
classes := builder nodes reject: [ :e | e model class = FAMIXNamespace
].
packages := builder nodes select: [ :e | e model class =
FAMIXNamespace ].
els1 := (RTBox new
height: #depth;
width: #width;
color: #color) elementsOn: classes.
els2 := (RTBox new
height: [ :e | e contentBoundingVolume depth ];
width: [ :e | e contentBoundingVolume width ];
color: #color) elementsOn: packages.
els1
do: [ :e | e translateTo: (e model position x + (e model depth /
2)) @ (e model position z + (e model width / 2)) ].
els2
do: [ :e |
e
translateTo:
(e model position x + (e model
contentBoundingVolume depth / 2))
@ (e model position z + (e model
contentBoundingVolume width / 2)) ].
v addAll: els2 , els1.
els2 @ RTDraggable.
v
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Although the boxes that represent classes seem correct, I have trouble
positioning the boxes that corresponds to packages.
Does anyone have an idea of how to fix this?
<image.png>
Best regards,
Leonel Merino
PhD student
University of Bern
+41 78 405 43 38
merino@inf.unibe.ch
2016-12-14 18:32 GMT+01:00 Stephan Eggermont stephan@stack.nl:
A pre-spur pre-pharo5, that is.
Stephan
Verstuurd vanaf mijn iPhone
Op 14 dec. 2016 om 17:06 heeft Tudor Girba tudor@tudorgirba.com
het volgende geschreven:
Code City should work in Pharo 5.
Moose-dev mailing list
Moose-dev@list.inf.unibe.ch
Moose-dev mailing list
Moose-dev@list.inf.unibe.ch
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Moose-dev mailing list
Moose-dev@list.inf.unibe.ch
https://www.list.inf.unibe.ch/listinfo/moose-dev
Moose-dev mailing list Moose-dev@list.inf.unibe.ch https://www.list.inf.unibe.ch/listinfo/moose-dev
-- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Moose-dev mailing list Moose-dev@list.inf.unibe.ch https://www.list.inf.unibe.ch/listinfo/moose-dev