| /* |
| * Copyright 2017-present Open Networking Laboratory |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| /* |
| * ONOS GUI -- SVG -- Sprite Data Service |
| * Bundled sprite and layout definitions. |
| */ |
| (function () { |
| 'use strict'; |
| |
| // ---------------------------------------------------------------------- |
| // === Sprite Data === |
| |
| var cloud = { |
| // TODO: define cloud sprite... |
| vbox: '0 0 305 186', |
| d: [ |
| "M91.2,48.4C121.2,6.3,187.9-13.4,219,45.6", |
| "M43.1,139.6C21.8,142.9-15.6,108.4,26.1,79", |
| "M103.7,150C89,205.2-11.2,167.4,30.5,138", |
| "M192.3,147.3c-33.5,48-82.1,32.3-94.5-8.2", |
| "M267.1,115c27.9,67.8-77.6,74.3-83.1,41", |
| "M34.3,89.9C10.8,79,59.5,10.7,97.2,39.6", |
| "M211.9,34.2c51.9-38.8,118,57.4,59,94.5" |
| ], |
| style: { |
| fill: 'none', |
| 'stroke-miterlimit': 10 |
| } |
| }; |
| |
| // TODO: define other core sprites here... |
| |
| // ---------------------------------------------------------------------- |
| // === API functions === |
| |
| function registerCoreSprites(ssApi) { |
| ssApi.registerSprite(cloud); |
| |
| // TODO: add base set of sprites here ... |
| |
| // ----------------------------------------------------------$$$ |
| // This following code is for initial development of Topo2 sprite layer |
| ssApi.createSprite('rack', 40, 50) |
| .addRect(0, 0, 40, 50) |
| .addPath([ |
| 'M5,20h30v5h-30z', |
| 'M5,30h30v5h-30z', |
| 'M5,40h30v5h-30z' |
| ]) |
| .register(); |
| |
| ssApi.createLayout('segmentRouting', 130, 75) |
| .addSprite('rack', 10, 40, 20) |
| .addSprite('rack', 40, 40, 20) |
| .addSprite('rack', 70, 40, 20) |
| .addSprite('rack', 100, 40, 20) |
| .addLabel('Segment Routing', 120, 10, {anchor: 'right'}) |
| .register(); |
| |
| ssApi.dump(); |
| // ----------------------------------------------------------$$$ |
| } |
| |
| // ---------------------------------------------------------------------- |
| |
| angular.module('onosSvg') |
| .factory('SpriteDataService', [ |
| function () { |
| return { |
| registerCoreSprites: registerCoreSprites |
| }; |
| } |
| ]); |
| |
| }()); |