Icons

class Icons "Icon design"
    extends Modelica.Icons.Information;

    annotation (Documentation(info = "<html>\n\n<p>The icon of a Modelica class shall consider the following guidelines:</p>\n\n<h4>Color and Shapes</h4>\n\n<p>The main icon color of a component shall be the same for all components of one library. White fill areas of an icon shall not be used to hide parts of an icon, see\n<a href=\"https://github.com/modelica/ModelicaStandardLibrary/issues/2031\">#2031</a>.\nIn the Modelica Standard Library the following color schemes apply:</p>\n\n<table border=\"1\" cellspacing=\"0\" cellpadding=\"2\">\n  <tr>\n    <th>Package</th>\n    <th>Color RGB code</th>\n    <th>Color sample</th>\n  </tr>\n  <tr>\n    <td>Modelica.Blocks</td>\n    <td>{0,0,127}</td>\n    <td><img src=\"modelica://Modelica/Resources/Images/UsersGuide/Conventions/Icons/colorSampleBlocks.png\"></td>\n  </tr>\n  <tr>\n    <td>Modelica.ComplexBlocks</td>\n    <td>{85,170,255}</td>\n    <td><img src=\"modelica://Modelica/Resources/Images/UsersGuide/Conventions/Icons/colorSampleComplexBlocks.png\"></td>\n  </tr>\n  <tr>\n    <td>Modelica.StateGraph</td>\n    <td>{0,0,0}</td>\n    <td><img src=\"modelica://Modelica/Resources/Images/UsersGuide/Conventions/Icons/colorSampleStateGraph.png\"></td>\n  </tr>\n  <tr>\n    <td>Modelica.Electrical.Analog</td>\n    <td>{0,0,255}</td>\n    <td><img src=\"modelica://Modelica/Resources/Images/UsersGuide/Conventions/Icons/colorSampleElectricalAnalog.png\"></td>\n  </tr>\n  <tr>\n    <td>Modelica.Electrical.Digital</td>\n    <td>{128,0,128}</td>\n    <td><img src=\"modelica://Modelica/Resources/Images/UsersGuide/Conventions/Icons/colorSampleElectricalDigital.png\"></td>\n  </tr>\n  <tr>\n    <td>Modelica.Electrical.Machines</td>\n    <td>{0,0,255}</td>\n    <td><img src=\"modelica://Modelica/Resources/Images/UsersGuide/Conventions/Icons/colorSampleElectricalMachines.png\"></td>\n  </tr>\n  <tr>\n    <td>Modelica.Electrical.MultiPhase</td>\n    <td>{0,0,255}</td>\n    <td><img src=\"modelica://Modelica/Resources/Images/UsersGuide/Conventions/Icons/colorSampleElectricalMultiPhase.png\"></td>\n  </tr>\n  <tr>\n    <td>Modelica.Electrical.QuasiStationary</td>\n    <td>{85,170,255}</td>\n    <td><img src=\"modelica://Modelica/Resources/Images/UsersGuide/Conventions/Icons/colorSampleElectricalQuasiStationary.png\"></td>\n  </tr>\n  <tr>\n    <td>Modelica.Electrical.Spice3</td>\n    <td> {170,85,255}</td>\n    <td><img src=\"modelica://Modelica/Resources/Images/UsersGuide/Conventions/Icons/colorSampleElectricalSpice3.png\"></td>\n  </tr>\n  <tr>\n    <td>Modelica.Magnetic.FluxTubes</td>\n    <td>{255,127,0}</td>\n    <td><img src=\"modelica://Modelica/Resources/Images/UsersGuide/Conventions/Icons/colorSampleMagneticFluxTubes.png\"></td>\n  </tr>\n  <tr>\n    <td>Modelica.Magnetic.FundamentalWave</td>\n    <td>{255,127,0}</td>\n    <td><img src=\"modelica://Modelica/Resources/Images/UsersGuide/Conventions/Icons/colorSampleMagneticFundamentalWave.png\"></td>\n  </tr>\n  <tr>\n    <td>Modelica.Magnetic.QuasiStatic</td>\n    <td>{255,170,85}</td>\n    <td><img src=\"modelica://Modelica/Resources/Images/UsersGuide/Conventions/Icons/colorSampleMagneticQuasiStatic.png\"></td>\n  </tr>\n  <tr>\n    <td>Modelica.Mechanics.MultiBody</td>\n    <td>{192,192,192}</td>\n    <td><img src=\"modelica://Modelica/Resources/Images/UsersGuide/Conventions/Icons/colorSampleMechanicsMultiBody.png\"></td>\n  </tr>\n  <tr>\n    <td>Modelica.Mechanics.Rotational</td>\n    <td>{95,95,95}</td>\n    <td><img src=\"modelica://Modelica/Resources/Images/UsersGuide/Conventions/Icons/colorSampleMechanicsRotational.png\"></td>\n  </tr>\n  <tr>\n    <td>Modelica.Mechanics.Translational</td>\n    <td>{0,127,0}</td>\n    <td><img src=\"modelica://Modelica/Resources/Images/UsersGuide/Conventions/Icons/colorSampleMechanicsTranslational.png\"></td>\n  </tr>\n  <tr>\n    <td>Modelica.Fluid</td>\n    <td>{0,127,255}</td>\n    <td><img src=\"modelica://Modelica/Resources/Images/UsersGuide/Conventions/Icons/colorSampleFluid.png\"></td>\n  </tr>\n  <tr>\n    <td>Modelica.Media</td>\n    <td>none</td>\n    <td></td>\n  </tr>\n  <tr>\n    <td>Modelica.Thermal.FluidHeatFlow</td>\n    <td>{0,0,255}</td>\n    <td><img src=\"modelica://Modelica/Resources/Images/UsersGuide/Conventions/Icons/colorSampleThermalFluidHeatFlow.png\"></td>\n  </tr>\n  <tr>\n    <td>Modelica.Thermal.HeatTransfer</td>\n    <td>{191,0,0}</td>\n    <td><img src=\"modelica://Modelica/Resources/Images/UsersGuide/Conventions/Icons/colorSampleThermalHeatTransfer.png\"></td>\n  </tr>\n  <tr>\n    <td>Modelica.Math</td>\n    <td>none</td>\n    <td></td>\n  </tr>\n  <tr>\n    <td>Modelica.ComplexMath</td>\n    <td>none</td>\n    <td></td>\n  </tr>\n  <tr>\n    <td>Modelica.Utilities</td>\n    <td>none</td>\n    <td></td>\n  </tr>\n  <tr>\n    <td>Modelica.Constants</td>\n    <td>none</td>\n    <td></td>\n  </tr>\n  <tr>\n    <td>Modelica.Icons</td>\n    <td>none</td>\n    <td></td>\n  </tr>\n  <tr>\n    <td>Modelica.SIunits</td>\n    <td>none</td>\n    <td></td>\n  </tr>\n</table>\n\n<h4>Icon size</h4>\n\n<p>The icon of a Modelica class shall not be significantly greater or smaller than the default Diagram limits of 200 units x 200 units. These default diagram limits are</p>\n<ul>\n<li>-100 units &le; horizontal coordinate &le; +100 units</li>\n<li>-100 units &le; vertical coordinate &le; +100 units</li>\n</ul>\n<p>If possible, the icon shall be designed such way, that the icon name <code>%name</code>\nand the most significant parameter can be displayed within the vertical Diagram range of the icon.</p>\n\n<p>\n(a) <img src=\"modelica://Modelica/Resources/Images/UsersGuide/Conventions/Icon_name.png\">\n(b) <img src=\"modelica://Modelica/Resources/Images/UsersGuide/Conventions/Icon_name_dimensions.png\"><br>\nFig. 1: (a) Typical icon, (b) including dimensions\n</p>\n\n<h4>Component Name</h4>\n\n<p>The component name <code>%name</code> shall be in RGB (0,0,255) blue color.</p>\n<ul>\n<li>Text height: 40 units</li>\n<li>Text width: 300 units</li>\n</ul>\n<p>The text shall be located above the actual icon. If there is enough space, the upper text limit of the component name\nshall be 10 units below the upper icon boundary, see Fig. 1.</p>\n\n<p>If the icon is as big as the entire icon range of 200 units x 200 units, e.g. in blocks,\nthe component name shall be placed above the icon with vertical 10 units of space between icon and lower text box, see Fig. 2.</p>\n\n<p>\n<img src=\"modelica://Modelica/Resources/Images/UsersGuide/Conventions/Block_name.png\"><br>\nFig. 2: Block component name\n</p>\n\n<p>If there is a connector located at the top icon boundary and it is obvious that this connector influences the model\nbehavior compared to a similar model without such connector, then a line from the connector to the actual icon\nshall be avoided to keep the design straight, see Fig. 4. If it is required to use a line indicating the connector dependency, then\nthe line shall be interrupted such that this line does not interfere with component name.</p>\n\n<p>\n<img src=\"modelica://Modelica/Resources/Images/UsersGuide/Conventions/Icon_name_connector_above.png\"><br>\nFig. 3: Component name between actual icon and connector\n</p>\n\n<p>In some cases, if there is not alternative, the component name has to be placed below the actual icon, see. Fig. 4.</p>\n\n<p>\n<img src=\"modelica://Modelica/Resources/Images/UsersGuide/Conventions/Icon_name_below.png\"><br>\nFig. 4: Component name below actual icon\n</p>\n\n<h4>Parameter Name</h4>\n\n<p>One significant parameter shall be placed below the icon, see Fig. 1 and 2. The parameter name shall be RGB (0,0,0) black color.</p>\n<ul>\n<li>Text height: 40 units (or 30 units, minimum 20 units, if required)</li>\n<li>Text width: 300 units</li>\n</ul>\n<p>The parameter text box shall be placed 10 units below the actual icon.\n</p>\n\n<h4>Connector location</h4>\n\n<p>Physical connectors shall always be located on the icon boundary. Input and output connector shall be placed outside the icon, see Fig. 2 and 3.\nPreferred connector locations are:</p>\n<ul>\n<li>at the four corners of the icon diagram, see Fig. 5</li>\n<li>at vertical or horizontal symmetry line of an icon, see Fig. 1-3</li>\n<li>alternative connection points shall be located in a raster of 20 units (or 10 units) if required, see Fig. 4</li>\n</ul>\n\n<p>\n<img src=\"modelica://Modelica/Resources/Images/UsersGuide/Conventions/Icon_connector_corner.png\"><br>\nFig. 5: Connectors located at the four corners of the icon diagram\n</p>\n\n<h4>Diagram icons</h4>\n\n<p>Icons drawn in the Diagram layer shall be avoided. Particularly, icons of Diagram layer shall be avoided which are equal to the\nicons of the Icon layer. Any graphical illustrations shall be moved to the HTML documentation instead.</p>\n\n\n</html>"));
end Icons;