diff --git a/DIAGRAME_DE_CLASSE.mdj b/DIAGRAME_DE_CLASSE.mdj deleted file mode 100644 index 86182e0..0000000 --- a/DIAGRAME_DE_CLASSE.mdj +++ /dev/null @@ -1,1046 +0,0 @@ -{ - "_type": "Project", - "_id": "AAAAAAFF+h6SjaM2Hec=", - "name": "Untitled", - "ownedElements": [ - { - "_type": "UMLModel", - "_id": "AAAAAAFF+qBWK6M3Z8Y=", - "_parent": { - "$ref": "AAAAAAFF+h6SjaM2Hec=" - }, - "name": "Model", - "ownedElements": [ - { - "_type": "UMLClassDiagram", - "_id": "AAAAAAFF+qBtyKM79qY=", - "_parent": { - "$ref": "AAAAAAFF+qBWK6M3Z8Y=" - }, - "name": "Main", - "defaultDiagram": true, - "ownedViews": [ - { - "_type": "UMLClassView", - "_id": "AAAAAAGbFRd1rBAqXv8=", - "_parent": { - "$ref": "AAAAAAFF+qBtyKM79qY=" - }, - "model": { - "$ref": "AAAAAAGbFRd1qxAoJLU=" - }, - "subViews": [ - { - "_type": "UMLNameCompartmentView", - "_id": "AAAAAAGbFRd1rRArXmM=", - "_parent": { - "$ref": "AAAAAAGbFRd1rBAqXv8=" - }, - "model": { - "$ref": "AAAAAAGbFRd1qxAoJLU=" - }, - "subViews": [ - { - "_type": "LabelView", - "_id": "AAAAAAGbFRd1rRAshiU=", - "_parent": { - "$ref": "AAAAAAGbFRd1rRArXmM=" - }, - "visible": false, - "font": "Arial;13;0", - "left": -192, - "top": -416, - "height": 13 - }, - { - "_type": "LabelView", - "_id": "AAAAAAGbFRd1rRAtN84=", - "_parent": { - "$ref": "AAAAAAGbFRd1rRArXmM=" - }, - "font": "Arial;13;1", - "left": 117, - "top": 79, - "width": 85.17626953125, - "height": 13, - "text": "Pixel" - }, - { - "_type": "LabelView", - "_id": "AAAAAAGbFRd1rRAu6jI=", - "_parent": { - "$ref": "AAAAAAGbFRd1rRArXmM=" - }, - "visible": false, - "font": "Arial;13;0", - "left": -192, - "top": -416, - "width": 73.67724609375, - "height": 13, - "text": "(from Model)" - }, - { - "_type": "LabelView", - "_id": "AAAAAAGbFRd1rRAvoJE=", - "_parent": { - "$ref": "AAAAAAGbFRd1rRArXmM=" - }, - "visible": false, - "font": "Arial;13;0", - "left": -192, - "top": -416, - "height": 13, - "horizontalAlignment": 1 - } - ], - "font": "Arial;13;0", - "left": 112, - "top": 72, - "width": 95.17626953125, - "height": 25, - "stereotypeLabel": { - "$ref": "AAAAAAGbFRd1rRAshiU=" - }, - "nameLabel": { - "$ref": "AAAAAAGbFRd1rRAtN84=" - }, - "namespaceLabel": { - "$ref": "AAAAAAGbFRd1rRAu6jI=" - }, - "propertyLabel": { - "$ref": "AAAAAAGbFRd1rRAvoJE=" - } - }, - { - "_type": "UMLAttributeCompartmentView", - "_id": "AAAAAAGbFRd1rRAwS7Y=", - "_parent": { - "$ref": "AAAAAAGbFRd1rBAqXv8=" - }, - "model": { - "$ref": "AAAAAAGbFRd1qxAoJLU=" - }, - "subViews": [ - { - "_type": "UMLAttributeView", - "_id": "AAAAAAGbFRe78hBV2f4=", - "_parent": { - "$ref": "AAAAAAGbFRd1rRAwS7Y=" - }, - "model": { - "$ref": "AAAAAAGbFRe75hBSfjk=" - }, - "font": "Arial;13;0", - "left": 117, - "top": 102, - "width": 85.17626953125, - "height": 13, - "text": "-r: int", - "horizontalAlignment": 0 - }, - { - "_type": "UMLAttributeView", - "_id": "AAAAAAGbFRf+YhBbsj0=", - "_parent": { - "$ref": "AAAAAAGbFRd1rRAwS7Y=" - }, - "model": { - "$ref": "AAAAAAGbFRf+WBBYjHk=" - }, - "font": "Arial;13;0", - "left": 117, - "top": 117, - "width": 85.17626953125, - "height": 13, - "text": "-g: int", - "horizontalAlignment": 0 - }, - { - "_type": "UMLAttributeView", - "_id": "AAAAAAGbFRgNaxBhOCY=", - "_parent": { - "$ref": "AAAAAAGbFRd1rRAwS7Y=" - }, - "model": { - "$ref": "AAAAAAGbFRgNXxBe9YA=" - }, - "font": "Arial;13;0", - "left": 117, - "top": 132, - "width": 85.17626953125, - "height": 13, - "text": "-b: int", - "horizontalAlignment": 0 - }, - { - "_type": "UMLAttributeView", - "_id": "AAAAAAGbFRl8hhBufVY=", - "_parent": { - "$ref": "AAAAAAGbFRd1rRAwS7Y=" - }, - "model": { - "$ref": "AAAAAAGbFRl8ehBrIG0=" - }, - "visible": false, - "font": "Arial;13;0", - "left": 21, - "top": -61, - "width": 64.2353515625, - "height": 13, - "text": "+Port1", - "horizontalAlignment": 0 - }, - { - "_type": "UMLAttributeView", - "_id": "AAAAAAGbFRmd+xB1Qw4=", - "_parent": { - "$ref": "AAAAAAGbFRd1rRAwS7Y=" - }, - "model": { - "$ref": "AAAAAAGbFRmd8RBycuE=" - }, - "visible": false, - "font": "Arial;13;0", - "left": 21, - "top": -61, - "width": 64.2353515625, - "height": 13, - "text": "+Attribute1", - "horizontalAlignment": 0 - } - ], - "font": "Arial;13;0", - "left": 112, - "top": 97, - "width": 95.17626953125, - "height": 53 - }, - { - "_type": "UMLOperationCompartmentView", - "_id": "AAAAAAGbFRd1rRAxujs=", - "_parent": { - "$ref": "AAAAAAGbFRd1rBAqXv8=" - }, - "model": { - "$ref": "AAAAAAGbFRd1qxAoJLU=" - }, - "subViews": [ - { - "_type": "UMLOperationView", - "_id": "AAAAAAGbFRm0oxB8XSE=", - "_parent": { - "$ref": "AAAAAAGbFRd1rRAxujs=" - }, - "model": { - "$ref": "AAAAAAGbFRm0mhB5BV0=" - }, - "font": "Arial;13;0", - "left": 117, - "top": 155, - "width": 85.17626953125, - "height": 13, - "text": "+getterSetter()", - "horizontalAlignment": 0 - } - ], - "font": "Arial;13;0", - "left": 112, - "top": 150, - "width": 95.17626953125, - "height": 23 - }, - { - "_type": "UMLReceptionCompartmentView", - "_id": "AAAAAAGbFRd1rRAyRwU=", - "_parent": { - "$ref": "AAAAAAGbFRd1rBAqXv8=" - }, - "model": { - "$ref": "AAAAAAGbFRd1qxAoJLU=" - }, - "visible": false, - "font": "Arial;13;0", - "left": -96, - "top": -208, - "width": 10, - "height": 10 - }, - { - "_type": "UMLTemplateParameterCompartmentView", - "_id": "AAAAAAGbFRd1rRAzoM0=", - "_parent": { - "$ref": "AAAAAAGbFRd1rBAqXv8=" - }, - "model": { - "$ref": "AAAAAAGbFRd1qxAoJLU=" - }, - "visible": false, - "font": "Arial;13;0", - "left": -96, - "top": -208, - "width": 10, - "height": 10 - } - ], - "font": "Arial;13;0", - "containerChangeable": true, - "left": 112, - "top": 72, - "width": 94.17626953125, - "height": 103, - "nameCompartment": { - "$ref": "AAAAAAGbFRd1rRArXmM=" - }, - "attributeCompartment": { - "$ref": "AAAAAAGbFRd1rRAwS7Y=" - }, - "operationCompartment": { - "$ref": "AAAAAAGbFRd1rRAxujs=" - }, - "receptionCompartment": { - "$ref": "AAAAAAGbFRd1rRAyRwU=" - }, - "templateParameterCompartment": { - "$ref": "AAAAAAGbFRd1rRAzoM0=" - } - }, - { - "_type": "UMLClassView", - "_id": "AAAAAAGbFRozqBCEWV0=", - "_parent": { - "$ref": "AAAAAAFF+qBtyKM79qY=" - }, - "model": { - "$ref": "AAAAAAGbFRozpxCCny8=" - }, - "subViews": [ - { - "_type": "UMLNameCompartmentView", - "_id": "AAAAAAGbFRozqBCF29M=", - "_parent": { - "$ref": "AAAAAAGbFRozqBCEWV0=" - }, - "model": { - "$ref": "AAAAAAGbFRozpxCCny8=" - }, - "subViews": [ - { - "_type": "LabelView", - "_id": "AAAAAAGbFRozqBCG6fc=", - "_parent": { - "$ref": "AAAAAAGbFRozqBCF29M=" - }, - "visible": false, - "font": "Arial;13;0", - "left": -176, - "top": -16, - "height": 13 - }, - { - "_type": "LabelView", - "_id": "AAAAAAGbFRozqBCHSDU=", - "_parent": { - "$ref": "AAAAAAGbFRozqBCF29M=" - }, - "font": "Arial;13;1", - "left": 357, - "top": 95, - "width": 127.55322265625, - "height": 13, - "text": "RGBImage" - }, - { - "_type": "LabelView", - "_id": "AAAAAAGbFRozqBCIG8w=", - "_parent": { - "$ref": "AAAAAAGbFRozqBCF29M=" - }, - "visible": false, - "font": "Arial;13;0", - "left": -176, - "top": -16, - "width": 73.67724609375, - "height": 13, - "text": "(from Model)" - }, - { - "_type": "LabelView", - "_id": "AAAAAAGbFRozqBCJk78=", - "_parent": { - "$ref": "AAAAAAGbFRozqBCF29M=" - }, - "visible": false, - "font": "Arial;13;0", - "left": -176, - "top": -16, - "height": 13, - "horizontalAlignment": 1 - } - ], - "font": "Arial;13;0", - "left": 352, - "top": 88, - "width": 137.55322265625, - "height": 25, - "stereotypeLabel": { - "$ref": "AAAAAAGbFRozqBCG6fc=" - }, - "nameLabel": { - "$ref": "AAAAAAGbFRozqBCHSDU=" - }, - "namespaceLabel": { - "$ref": "AAAAAAGbFRozqBCIG8w=" - }, - "propertyLabel": { - "$ref": "AAAAAAGbFRozqBCJk78=" - } - }, - { - "_type": "UMLAttributeCompartmentView", - "_id": "AAAAAAGbFRozqRCK1WE=", - "_parent": { - "$ref": "AAAAAAGbFRozqBCEWV0=" - }, - "model": { - "$ref": "AAAAAAGbFRozpxCCny8=" - }, - "subViews": [ - { - "_type": "UMLAttributeView", - "_id": "AAAAAAGbFRpmMhCvs1I=", - "_parent": { - "$ref": "AAAAAAGbFRozqRCK1WE=" - }, - "model": { - "$ref": "AAAAAAGbFRpmIRCstPg=" - }, - "font": "Arial;13;0", - "left": 357, - "top": 118, - "width": 127.55322265625, - "height": 13, - "text": "+width: int", - "horizontalAlignment": 0 - }, - { - "_type": "UMLAttributeView", - "_id": "AAAAAAGbFRqDBBC2wj8=", - "_parent": { - "$ref": "AAAAAAGbFRozqRCK1WE=" - }, - "model": { - "$ref": "AAAAAAGbFRqC+RCzcFY=" - }, - "font": "Arial;13;0", - "left": 357, - "top": 133, - "width": 127.55322265625, - "height": 13, - "text": "+height: int", - "horizontalAlignment": 0 - }, - { - "_type": "UMLAttributeView", - "_id": "AAAAAAGbFRrlqhC9ook=", - "_parent": { - "$ref": "AAAAAAGbFRozqRCK1WE=" - }, - "model": { - "$ref": "AAAAAAGbFRrlohC693g=" - }, - "font": "Arial;13;0", - "left": 357, - "top": 148, - "width": 127.55322265625, - "height": 13, - "text": "+pixels: tableau Pixel", - "horizontalAlignment": 0 - } - ], - "font": "Arial;13;0", - "left": 352, - "top": 113, - "width": 137.55322265625, - "height": 53 - }, - { - "_type": "UMLOperationCompartmentView", - "_id": "AAAAAAGbFRozqRCL3Ok=", - "_parent": { - "$ref": "AAAAAAGbFRozqBCEWV0=" - }, - "model": { - "$ref": "AAAAAAGbFRozpxCCny8=" - }, - "subViews": [ - { - "_type": "UMLOperationView", - "_id": "AAAAAAGbFRwGLBDGDdo=", - "_parent": { - "$ref": "AAAAAAGbFRozqRCL3Ok=" - }, - "model": { - "$ref": "AAAAAAGbFRwGIRDDyhA=" - }, - "font": "Arial;13;0", - "left": 357, - "top": 171, - "width": 127.55322265625, - "height": 13, - "text": "+getPixel(): Pixel", - "horizontalAlignment": 0 - }, - { - "_type": "UMLOperationView", - "_id": "AAAAAAGbFRxgUhDQyxw=", - "_parent": { - "$ref": "AAAAAAGbFRozqRCL3Ok=" - }, - "model": { - "$ref": "AAAAAAGbFRxgShDNMhQ=" - }, - "font": "Arial;13;0", - "left": 357, - "top": 186, - "width": 127.55322265625, - "height": 13, - "text": "+setPixel(x, y, p): void", - "horizontalAlignment": 0 - } - ], - "font": "Arial;13;0", - "left": 352, - "top": 166, - "width": 137.55322265625, - "height": 38 - }, - { - "_type": "UMLReceptionCompartmentView", - "_id": "AAAAAAGbFRozqRCMh+s=", - "_parent": { - "$ref": "AAAAAAGbFRozqBCEWV0=" - }, - "model": { - "$ref": "AAAAAAGbFRozpxCCny8=" - }, - "visible": false, - "font": "Arial;13;0", - "left": -88, - "top": -8, - "width": 10, - "height": 10 - }, - { - "_type": "UMLTemplateParameterCompartmentView", - "_id": "AAAAAAGbFRozqRCNOto=", - "_parent": { - "$ref": "AAAAAAGbFRozqBCEWV0=" - }, - "model": { - "$ref": "AAAAAAGbFRozpxCCny8=" - }, - "visible": false, - "font": "Arial;13;0", - "left": -88, - "top": -8, - "width": 10, - "height": 10 - } - ], - "font": "Arial;13;0", - "containerChangeable": true, - "left": 352, - "top": 88, - "width": 136.55322265625, - "height": 116, - "nameCompartment": { - "$ref": "AAAAAAGbFRozqBCF29M=" - }, - "attributeCompartment": { - "$ref": "AAAAAAGbFRozqRCK1WE=" - }, - "operationCompartment": { - "$ref": "AAAAAAGbFRozqRCL3Ok=" - }, - "receptionCompartment": { - "$ref": "AAAAAAGbFRozqRCMh+s=" - }, - "templateParameterCompartment": { - "$ref": "AAAAAAGbFRozqRCNOto=" - } - }, - { - "_type": "UMLDependencyView", - "_id": "AAAAAAGbFR0tLhD43VE=", - "_parent": { - "$ref": "AAAAAAFF+qBtyKM79qY=" - }, - "model": { - "$ref": "AAAAAAGbFR0tLhD2yjU=" - }, - "subViews": [ - { - "_type": "EdgeLabelView", - "_id": "AAAAAAGbFR0tLhD5VZQ=", - "_parent": { - "$ref": "AAAAAAGbFR0tLhD43VE=" - }, - "model": { - "$ref": "AAAAAAGbFR0tLhD2yjU=" - }, - "font": "Arial;13;0", - "left": 262, - "top": 141, - "width": 30.7099609375, - "height": 13, - "alpha": 1.5707963267948966, - "distance": 15, - "hostEdge": { - "$ref": "AAAAAAGbFR0tLhD43VE=" - }, - "edgePosition": 1, - "text": "+Use" - }, - { - "_type": "EdgeLabelView", - "_id": "AAAAAAGbFR0tLhD6Nxc=", - "_parent": { - "$ref": "AAAAAAGbFR0tLhD43VE=" - }, - "model": { - "$ref": "AAAAAAGbFR0tLhD2yjU=" - }, - "visible": null, - "font": "Arial;13;0", - "left": 276, - "top": 156, - "height": 13, - "alpha": 1.5707963267948966, - "distance": 30, - "hostEdge": { - "$ref": "AAAAAAGbFR0tLhD43VE=" - }, - "edgePosition": 1 - }, - { - "_type": "EdgeLabelView", - "_id": "AAAAAAGbFR0tLhD7edQ=", - "_parent": { - "$ref": "AAAAAAGbFR0tLhD43VE=" - }, - "model": { - "$ref": "AAAAAAGbFR0tLhD2yjU=" - }, - "visible": false, - "font": "Arial;13;0", - "left": 280, - "top": 112, - "height": 13, - "alpha": -1.5707963267948966, - "distance": 15, - "hostEdge": { - "$ref": "AAAAAAGbFR0tLhD43VE=" - }, - "edgePosition": 1 - } - ], - "font": "Arial;13;0", - "head": { - "$ref": "AAAAAAGbFRd1rBAqXv8=" - }, - "tail": { - "$ref": "AAAAAAGbFRozqBCEWV0=" - }, - "lineStyle": 1, - "points": "351:140;207:127", - "showVisibility": true, - "nameLabel": { - "$ref": "AAAAAAGbFR0tLhD5VZQ=" - }, - "stereotypeLabel": { - "$ref": "AAAAAAGbFR0tLhD6Nxc=" - }, - "propertyLabel": { - "$ref": "AAAAAAGbFR0tLhD7edQ=" - } - }, - { - "_type": "UMLClassView", - "_id": "AAAAAAGbFR2TjxENrtk=", - "_parent": { - "$ref": "AAAAAAFF+qBtyKM79qY=" - }, - "model": { - "$ref": "AAAAAAGbFR2TjxEL1EQ=" - }, - "subViews": [ - { - "_type": "UMLNameCompartmentView", - "_id": "AAAAAAGbFR2TjxEORz4=", - "_parent": { - "$ref": "AAAAAAGbFR2TjxENrtk=" - }, - "model": { - "$ref": "AAAAAAGbFR2TjxEL1EQ=" - }, - "subViews": [ - { - "_type": "LabelView", - "_id": "AAAAAAGbFR2TjxEP6rg=", - "_parent": { - "$ref": "AAAAAAGbFR2TjxEORz4=" - }, - "visible": false, - "font": "Arial;13;0", - "left": -16, - "top": -272, - "height": 13 - }, - { - "_type": "LabelView", - "_id": "AAAAAAGbFR2TjxEQJw0=", - "_parent": { - "$ref": "AAAAAAGbFR2TjxEORz4=" - }, - "font": "Arial;13;1", - "left": 101, - "top": 311, - "width": 99.7314453125, - "height": 13, - "text": "FrequencyTable" - }, - { - "_type": "LabelView", - "_id": "AAAAAAGbFR2TjxERAvo=", - "_parent": { - "$ref": "AAAAAAGbFR2TjxEORz4=" - }, - "visible": false, - "font": "Arial;13;0", - "left": -16, - "top": -272, - "width": 73.67724609375, - "height": 13, - "text": "(from Model)" - }, - { - "_type": "LabelView", - "_id": "AAAAAAGbFR2TjxES6k4=", - "_parent": { - "$ref": "AAAAAAGbFR2TjxEORz4=" - }, - "visible": false, - "font": "Arial;13;0", - "left": -16, - "top": -272, - "height": 13, - "horizontalAlignment": 1 - } - ], - "font": "Arial;13;0", - "left": 96, - "top": 304, - "width": 109.7314453125, - "height": 25, - "stereotypeLabel": { - "$ref": "AAAAAAGbFR2TjxEP6rg=" - }, - "nameLabel": { - "$ref": "AAAAAAGbFR2TjxEQJw0=" - }, - "namespaceLabel": { - "$ref": "AAAAAAGbFR2TjxERAvo=" - }, - "propertyLabel": { - "$ref": "AAAAAAGbFR2TjxES6k4=" - } - }, - { - "_type": "UMLAttributeCompartmentView", - "_id": "AAAAAAGbFR2TkBETcNQ=", - "_parent": { - "$ref": "AAAAAAGbFR2TjxENrtk=" - }, - "model": { - "$ref": "AAAAAAGbFR2TjxEL1EQ=" - }, - "font": "Arial;13;0", - "left": 96, - "top": 329, - "width": 109.7314453125, - "height": 10 - }, - { - "_type": "UMLOperationCompartmentView", - "_id": "AAAAAAGbFR2TkBEUPbs=", - "_parent": { - "$ref": "AAAAAAGbFR2TjxENrtk=" - }, - "model": { - "$ref": "AAAAAAGbFR2TjxEL1EQ=" - }, - "font": "Arial;13;0", - "left": 96, - "top": 339, - "width": 109.7314453125, - "height": 10 - }, - { - "_type": "UMLReceptionCompartmentView", - "_id": "AAAAAAGbFR2TkBEVyZ8=", - "_parent": { - "$ref": "AAAAAAGbFR2TjxENrtk=" - }, - "model": { - "$ref": "AAAAAAGbFR2TjxEL1EQ=" - }, - "visible": false, - "font": "Arial;13;0", - "left": -8, - "top": -136, - "width": 10, - "height": 10 - }, - { - "_type": "UMLTemplateParameterCompartmentView", - "_id": "AAAAAAGbFR2TkBEWW/g=", - "_parent": { - "$ref": "AAAAAAGbFR2TjxENrtk=" - }, - "model": { - "$ref": "AAAAAAGbFR2TjxEL1EQ=" - }, - "visible": false, - "font": "Arial;13;0", - "left": -8, - "top": -136, - "width": 10, - "height": 10 - } - ], - "font": "Arial;13;0", - "containerChangeable": true, - "left": 96, - "top": 304, - "width": 108.7314453125, - "height": 45, - "nameCompartment": { - "$ref": "AAAAAAGbFR2TjxEORz4=" - }, - "attributeCompartment": { - "$ref": "AAAAAAGbFR2TkBETcNQ=" - }, - "operationCompartment": { - "$ref": "AAAAAAGbFR2TkBEUPbs=" - }, - "receptionCompartment": { - "$ref": "AAAAAAGbFR2TkBEVyZ8=" - }, - "templateParameterCompartment": { - "$ref": "AAAAAAGbFR2TkBEWW/g=" - } - } - ] - }, - { - "_type": "UMLClass", - "_id": "AAAAAAGbFRd1qxAoJLU=", - "_parent": { - "$ref": "AAAAAAFF+qBWK6M3Z8Y=" - }, - "name": "Pixel", - "attributes": [ - { - "_type": "UMLAttribute", - "_id": "AAAAAAGbFRe75hBSfjk=", - "_parent": { - "$ref": "AAAAAAGbFRd1qxAoJLU=" - }, - "name": "r", - "visibility": "private", - "type": "int" - }, - { - "_type": "UMLAttribute", - "_id": "AAAAAAGbFRf+WBBYjHk=", - "_parent": { - "$ref": "AAAAAAGbFRd1qxAoJLU=" - }, - "name": "g", - "visibility": "private", - "type": "int" - }, - { - "_type": "UMLAttribute", - "_id": "AAAAAAGbFRgNXxBe9YA=", - "_parent": { - "$ref": "AAAAAAGbFRd1qxAoJLU=" - }, - "name": "b", - "visibility": "private", - "type": "int" - }, - { - "_type": "UMLPort", - "_id": "AAAAAAGbFRl8ehBrIG0=", - "_parent": { - "$ref": "AAAAAAGbFRd1qxAoJLU=" - }, - "name": "Port1", - "type": "" - }, - { - "_type": "UMLAttribute", - "_id": "AAAAAAGbFRmd8RBycuE=", - "_parent": { - "$ref": "AAAAAAGbFRd1qxAoJLU=" - }, - "name": "Attribute1", - "type": "" - } - ], - "operations": [ - { - "_type": "UMLOperation", - "_id": "AAAAAAGbFRm0mhB5BV0=", - "_parent": { - "$ref": "AAAAAAGbFRd1qxAoJLU=" - }, - "name": "getterSetter" - } - ] - }, - { - "_type": "UMLClass", - "_id": "AAAAAAGbFRozpxCCny8=", - "_parent": { - "$ref": "AAAAAAFF+qBWK6M3Z8Y=" - }, - "name": "RGBImage", - "ownedElements": [ - { - "_type": "UMLDependency", - "_id": "AAAAAAGbFR0tLhD2yjU=", - "_parent": { - "$ref": "AAAAAAGbFRozpxCCny8=" - }, - "name": "Use", - "source": { - "$ref": "AAAAAAGbFRozpxCCny8=" - }, - "target": { - "$ref": "AAAAAAGbFRd1qxAoJLU=" - } - } - ], - "attributes": [ - { - "_type": "UMLAttribute", - "_id": "AAAAAAGbFRpmIRCstPg=", - "_parent": { - "$ref": "AAAAAAGbFRozpxCCny8=" - }, - "name": "width", - "type": "int" - }, - { - "_type": "UMLAttribute", - "_id": "AAAAAAGbFRqC+RCzcFY=", - "_parent": { - "$ref": "AAAAAAGbFRozpxCCny8=" - }, - "name": "height", - "type": "int" - }, - { - "_type": "UMLAttribute", - "_id": "AAAAAAGbFRrlohC693g=", - "_parent": { - "$ref": "AAAAAAGbFRozpxCCny8=" - }, - "name": "pixels", - "type": "tableau Pixel" - } - ], - "operations": [ - { - "_type": "UMLOperation", - "_id": "AAAAAAGbFRwGIRDDyhA=", - "_parent": { - "$ref": "AAAAAAGbFRozpxCCny8=" - }, - "name": "getPixel", - "parameters": [ - { - "_type": "UMLParameter", - "_id": "AAAAAAGbFRw2CxDKLAY=", - "_parent": { - "$ref": "AAAAAAGbFRwGIRDDyhA=" - }, - "type": { - "$ref": "AAAAAAGbFRd1qxAoJLU=" - }, - "direction": "return" - } - ] - }, - { - "_type": "UMLOperation", - "_id": "AAAAAAGbFRxgShDNMhQ=", - "_parent": { - "$ref": "AAAAAAGbFRozpxCCny8=" - }, - "name": "setPixel", - "parameters": [ - { - "_type": "UMLParameter", - "_id": "AAAAAAGbFRyKBBDUmu4=", - "_parent": { - "$ref": "AAAAAAGbFRxgShDNMhQ=" - }, - "type": "void", - "direction": "return" - }, - { - "_type": "UMLParameter", - "_id": "AAAAAAGbFRyw7RDXjZw=", - "_parent": { - "$ref": "AAAAAAGbFRxgShDNMhQ=" - }, - "name": "x", - "type": "" - }, - { - "_type": "UMLParameter", - "_id": "AAAAAAGbFRyw7RDY/m4=", - "_parent": { - "$ref": "AAAAAAGbFRxgShDNMhQ=" - }, - "name": "y", - "type": "" - }, - { - "_type": "UMLParameter", - "_id": "AAAAAAGbFRyw7RDZwYI=", - "_parent": { - "$ref": "AAAAAAGbFRxgShDNMhQ=" - }, - "name": "p", - "type": "" - } - ] - } - ] - }, - { - "_type": "UMLClass", - "_id": "AAAAAAGbFR2TjxEL1EQ=", - "_parent": { - "$ref": "AAAAAAFF+qBWK6M3Z8Y=" - }, - "name": "FrequencyTable" - } - ] - } - ] -} \ No newline at end of file diff --git a/Diagrame.plantuml b/Diagrame.plantuml deleted file mode 100644 index 857c8af..0000000 --- a/Diagrame.plantuml +++ /dev/null @@ -1,173 +0,0 @@ -@startuml -skinparam packageStyle rectangle -skinparam classAttributeIconSize 0 - - -' ============================ -' PACKAGE mimage -' ============================ -package mimage { - -class Pixel { - - int r - - int g - - int b - + Pixel(int r, int g, int b) - + int getR() - + int getG() - + int getB() - + void setR(int r) - + void setG(int g) - + void setB(int b) -} - -class RGBImage { - - int width - - int height - - Pixel[][] pixels - + RGBImage(int width, int height) - + int getWidth() - + int getHeight() - + Pixel getPixel(int x, int y) - + void setPixel(int x, int y, Pixel p) -} - -} - -' ============================ -' PACKAGE mhuffman -' ============================ -package mhuffman { - -class FrequencyTable { - - int[] freqR - - int[] freqG - - int[] freqB - + FrequencyTable() - + void computeFromImage(RGBImage img) - + int[] getRed() - + int[] getGreen() - + int[] getBlue() -} - -class HuffmanNode { - + int value - + int frequency - + HuffmanNode left - + HuffmanNode right - + boolean isLeaf() -} - -class HuffmanTree { - - HuffmanNode root - + HuffmanTree(FrequencyTable freq, char component) - + Map generateCodes() -} - -class CanonicalCode { - - Map codeLengths - - Map canonicalCodes - + CanonicalCode(Map huffmanCodes) - + String getCode(int value) - + int getLength(int value) -} - -FrequencyTable --> RGBImage -HuffmanTree --> HuffmanNode -CanonicalCode --> HuffmanTree - -} - -' ============================ -' PACKAGE util -' ============================ -package util { - -class BitInputStream { - - InputStream in - - int currentByte - - int bitPosition - + BitInputStream(InputStream in) - + int readBit() - + int readBits(int n) - + void close() -} - -class BitOutputStream { - - OutputStream out - - int currentByte - - int bitCount - + BitOutputStream(OutputStream out) - + void writeBit(int bit) - + void writeBits(int value, int n) - + void flush() - + void close() -} - -class ByteUtils { - + static int toInt(byte high, byte low) - + static byte[] toBytes(int value) -} - -class FileUtils { - + static boolean isPIFFile(File f) - + static byte[] readBinaryFile(String path) -} - -} - -' ============================ -' PACKAGE vconverter -' ============================ -package vconverter { - -class ConverterWindow { - + void setImagePreview(RGBImage img) - + void setFrequencyTable(int[] r, int[] g, int[] b) - + void setHuffmanTable(Map red, - Map green, - Map blue) - + void setCanonicalTable(CanonicalCode r, CanonicalCode g, CanonicalCode b) -} - -class PreviewPanel { - - RGBImage image - + void setImage(RGBImage img) -} - -class FrequencyTablePanel { - + void updateFrequencies(int[] r, int[] g, int[] b) -} - -class CodeTablePanel { - + void updateCodes(Map hR, - Map hG, - Map hB, - CanonicalCode cR, - CanonicalCode cG, - CanonicalCode cB) -} - -ConverterWindow --> PreviewPanel -ConverterWindow --> FrequencyTablePanel -ConverterWindow --> CodeTablePanel - -} - -' ============================ -' CONTROLLER (Sprint 1) -' ============================ -class ConverterController { - + void loadImage(String path) - + void computeFrequencies() - + void computeHuffman() - + void computeCanonical() - + void saveAsPIF(String path) 'encore vide pour Sprint 1 -} - -ConverterController --> RGBImage -ConverterController --> FrequencyTable -ConverterController --> HuffmanTree -ConverterController --> CanonicalCode - -@enduml diff --git a/DiagrameConvertisseurSimpli.plantuml b/DiagrameConvertisseurSimpli.plantuml new file mode 100644 index 0000000..bdba342 --- /dev/null +++ b/DiagrameConvertisseurSimpli.plantuml @@ -0,0 +1,67 @@ +@startuml +skinparam packageStyle rectangle + +' ============================ +' MODEL (bleu) +' ============================ +package mimage { + class Pixel #aliceblue + class RGBImage #aliceblue +} + +RGBImage *-- Pixel + +package mhuffman { + class FrequencyTable #aliceblue + class HuffmanNode #aliceblue + class HuffmanTree #aliceblue + class CanonicalCode #aliceblue +} + +HuffmanTree *-- HuffmanNode +FrequencyTable ..> RGBImage +CanonicalCode ..> HuffmanTree + +package util { + class BitInputStream #aliceblue + class BitOutputStream #aliceblue + class ByteUtils #aliceblue + class FileUtils #aliceblue +} + +package mpif { + class PIFWriter #aliceblue +} + +PIFWriter ..> RGBImage +PIFWriter ..> CanonicalCode +PIFWriter ..> BitOutputStream + + +' ============================ +' VIEW (vert) +' ============================ +package vconverter { + class ConverterWindow #palegreen + class PreviewPanel #palegreen + class FrequencyTablePanel #palegreen + class CodeTablePanel #palegreen +} + +ConverterWindow *-- PreviewPanel +ConverterWindow *-- FrequencyTablePanel +ConverterWindow *-- CodeTablePanel + + +' ============================ +' CONTROLLER (orange) +' ============================ +class ConverterController #ffddaa + +ConverterController ..> RGBImage +ConverterController ..> FrequencyTable +ConverterController ..> HuffmanTree +ConverterController ..> CanonicalCode +ConverterController ..> PIFWriter + +@enduml diff --git a/DiagrameConvertisseurSimpli.png b/DiagrameConvertisseurSimpli.png new file mode 100644 index 0000000..8c99a86 Binary files /dev/null and b/DiagrameConvertisseurSimpli.png differ diff --git a/DiagrameConvertisseur_Sprint1EtSprint2.plantuml b/DiagrameConvertisseur_Sprint1EtSprint2.plantuml new file mode 100644 index 0000000..f010783 --- /dev/null +++ b/DiagrameConvertisseur_Sprint1EtSprint2.plantuml @@ -0,0 +1,197 @@ +@startuml +skinparam packageStyle rectangle + +' ============================ +' PACKAGE mimage (MODEL - BLEU) +' ============================ +package mimage { + +class Pixel #aliceblue { + - r : int + - g : int + - b : int + + Pixel(r, g, b) + + getR() + + getG() + + getB() + + setR(r) + + setG(g) + + setB(b) +} + +class RGBImage #aliceblue { + - width : int + - height : int + - pixels : Pixel[*] + + RGBImage(width, height) + + getWidth() + + getHeight() + + getPixel(x, y) + + setPixel(x, y, p) +} + +} + +RGBImage *-- Pixel : contient + + +' ============================ +' PACKAGE mhuffman (MODEL - BLEU) +' ============================ +package mhuffman { + +class FrequencyTable #aliceblue { + - freqR : int[*] + - freqG : int[*] + - freqB : int[*] + + computeFromImage(img) + + getRed() + + getGreen() + + getBlue() +} + +class HuffmanNode #aliceblue { + + value : int + + frequency : int + + left : HuffmanNode + + right : HuffmanNode + + isLeaf() +} + +class HuffmanTree #aliceblue { + - root : HuffmanNode + + generateCodes() +} + +class CanonicalCode #aliceblue { + - codeLengths : Map + - canonicalCodes : Map + + getCode(value) + + getLength(value) +} + +} + +FrequencyTable ..> RGBImage : analyse +HuffmanTree *-- HuffmanNode +CanonicalCode ..> HuffmanTree : dérive + + +' ============================ +' PACKAGE util (MODEL - BLEU) +' ============================ +package util { + +class BitInputStream #aliceblue { + - in + - currentByte : int + - bitPosition : int + + BitInputStream(in) + + readBit() + + readBits(n) + + close() +} + +class BitOutputStream #aliceblue { + - out + - currentByte : int + - bitCount : int + + BitOutputStream(out) + + writeBit(bit) + + writeBits(value, n) + + flush() + + close() +} + +class ByteUtils #aliceblue { + + toInt(high, low) + + toBytes(value) +} + +class FileUtils #aliceblue { + + isPIFFile(f) + + readBinaryFile(path) +} + +} + + +' ============================ +' PACKAGE mpif (MODEL - BLEU) — Sprint 2 +' ============================ +package mpif { + +class PIFWriter #aliceblue { + + writeHeader(out, width, height) + + writeTables(out, red, green, blue) + + encodePixels(out, img, red, green, blue) + + writeToFile(path, img, red, green, blue) +} + +' (optionnel) PIFImage si tu souhaite la représenter +class PIFImage #aliceblue { + - width : int + - height : int + - lenR : int[*] + - lenG : int[*] + - lenB : int[*] + - pixelData +} + +} + +PIFWriter ..> RGBImage +PIFWriter ..> CanonicalCode +PIFWriter ..> BitOutputStream + + +' ============================ +' PACKAGE vconverter (VIEW - VERT) +' ============================ +package vconverter { + +class ConverterWindow #palegreen { + + setImagePreview(img) + + setFrequencyTable() + + setHuffmanTable() + + setCanonicalTable() +} + +class PreviewPanel #palegreen { + - image + + setImage(img) +} + +class FrequencyTablePanel #palegreen { + + updateFrequencies() +} + +class CodeTablePanel #palegreen { + + updateCodes() +} + +ConverterWindow *-- PreviewPanel +ConverterWindow *-- FrequencyTablePanel +ConverterWindow *-- CodeTablePanel + +} + + +' ============================ +' CONTROLLER (ORANGE) +' ============================ +class ConverterController #ffddaa { + + loadImage(path) + + computeFrequencies() + + computeHuffman() + + computeCanonical() + + saveAsPIF(path) +} + +ConverterController ..> RGBImage +ConverterController ..> FrequencyTable +ConverterController ..> HuffmanTree +ConverterController ..> CanonicalCode +ConverterController ..> PIFWriter : écrit le .pif + +@enduml diff --git a/DiagrameConvertisseur_Sprint1EtSprint2.png b/DiagrameConvertisseur_Sprint1EtSprint2.png new file mode 100644 index 0000000..ea60acd Binary files /dev/null and b/DiagrameConvertisseur_Sprint1EtSprint2.png differ