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  <caption align=\"bottom\">Color schemes applied to particular libraries</caption>\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.Clocked</td>\n    <td>{95,95,95}</td>\n    <td><img src=\"modelica://Modelica/Resources/Images/UsersGuide/Conventions/Icons/colorSampleClocked.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.Polyphase</td>\n    <td>{0,0,255}</td>\n    <td><img src=\"modelica://Modelica/Resources/Images/UsersGuide/Conventions/Icons/colorSampleElectricalPolyphase.png\"></td>\n  </tr>\n  <tr>\n    <td>Modelica.Electrical.QuasiStatic</td>\n    <td>{85,170,255}</td>\n    <td><img src=\"modelica://Modelica/Resources/Images/UsersGuide/Conventions/Icons/colorSampleElectricalQuasiStatic.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.Units</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<table border=\"0\" cellspacing=\"0\" cellpadding=\"2\">\n  <caption align=\"bottom\"><strong>Fig. 1</strong>: (a) Typical icon, (b) including dimensions</caption>\n  <tr>\n    <td> (a)\n      <img src=\"modelica://Modelica/Resources/Images/UsersGuide/Conventions/Icon_name.png\"\n           alt=\"Typical placement of component name\">\n    </td>\n    <td> (b)\n      <img src=\"modelica://Modelica/Resources/Images/UsersGuide/Conventions/Icon_name_dimensions.png\"\n           alt=\"Typical dimensions of icon and its entities\">\n    </td>\n  </tr>\n</table>\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 <strong>Fig.&nbsp;1</strong>.</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 <strong>Fig.&nbsp;2</strong>.</p>\n\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"2\">\n  <caption align=\"bottom\"><strong>Fig. 2</strong>: Block component name</caption>\n  <tr>\n    <td>\n      <img src=\"modelica://Modelica/Resources/Images/UsersGuide/Conventions/Block_name.png\"\n           alt=\"Placement of block component name\">\n    </td>\n  </tr>\n</table>\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 <strong>Fig.&nbsp;4</strong>. 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<table border=\"0\" cellspacing=\"0\" cellpadding=\"2\">\n  <caption align=\"bottom\"><strong>Fig. 3</strong>: Component name between actual icon and connector</caption>\n  <tr>\n    <td>\n      <img src=\"modelica://Modelica/Resources/Images/UsersGuide/Conventions/Icon_name_connector_above.png\"\n           alt=\"Component name placed between actual icon and connector\">\n    </td>\n  </tr>\n</table>\n\n<p>In some cases, if there is not alternative, the component name has to be placed below the actual icon, see. <strong>Fig.&nbsp;4</strong>.</p>\n\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"2\">\n  <caption align=\"bottom\"><strong>Fig. 4</strong>: Component name below actual icon</caption>\n  <tr>\n    <td>\n      <img src=\"modelica://Modelica/Resources/Images/UsersGuide/Conventions/Icon_name_below.png\"\n           alt=\"Icon with name placed below it\">\n    </td>\n  </tr>\n</table>\n\n<h4>Parameter Name</h4>\n\n<p>One significant parameter shall be placed below the icon, see <strong>Fig.&nbsp;1</strong> and <strong>Fig.&nbsp;2</strong>. 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 <strong>Fig.&nbsp;2</strong> and <strong>Fig.&nbsp;3</strong>.\nPreferred connector locations are:</p>\n<ul>\n<li>at the four corners of the icon diagram, see <strong>Fig.&nbsp;5</strong></li>\n<li>at vertical or horizontal symmetry line of an icon, see <strong>Fig.&nbsp;1&ndash;3</strong></li>\n<li>alternative connection points shall be located in a raster of 20 units (or 10 units) if required, see <strong>Fig.&nbsp;4</strong></li>\n</ul>\n\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"2\">\n  <caption align=\"bottom\"><strong>Fig. 5</strong>: Connectors located at the four corners of the icon diagram</caption>\n  <tr>\n    <td>\n      <img src=\"modelica://Modelica/Resources/Images/UsersGuide/Conventions/Icon_connector_corner.png\"\n           alt=\"Icon of connector corner\">\n    </td>\n  </tr>\n</table>\n\n<h4>Sensors</h4>\n\n<p>\nBased on <a href=\"https://github.com/modelica/ModelicaStandardLibrary/issues/2628\">#2628</a> the following guidelines for the\ndesign of sensors apply:\n</p>\n\n<ul>\n<li>The sensor outputs shall be indicated by its SI unit, not its quantity; the proper SI unit shall be compliant with the unit definitions of\n    <a href=\"modelica://Modelica.Units.SI\">Modelica.Units.SI</a>,\n    e.g. heat flow is indicated by <strong>W</strong>, torque is indicated by <strong>N.m</strong></li>\n<li>The text color of the SI units is {64,64,64} in RGB code</li>\n<li>For a sensor with a single output signal the SI unit shall be placed within the sensor,\n    see <strong>Fig.&nbsp;6</strong> and <strong>7</strong>\n    <ul>\n    <li>In a <a href=\"modelica://Modelica.Icons.RoundSensor\">round sensor</a> the text size shall be\n        <ul>\n        <li>either <code>{{-30,-10},{30,-70}}</code> (<strong>Fig.&nbsp;6(a)</strong>)</li>\n        <li>or <code>{{-50,-12},{50,-48}}</code> (<strong>Fig.&nbsp;6(b)</strong>), depending on the better readability</li>\n        </ul></li>\n\n    <li>In a <a href=\"modelica://Modelica.Icons.RectangularSensor\">rectangular sensor</a> the text size shall be\n        <code>{{-24,20},{66,-40}}</code> (<strong>Fig.&nbsp;7</strong>)</li>\n    </ul></li>\n<li>For a sensor with multiple output signals the SI unit shall be placed next to the output signal;\n    a signal connectors and the SI units may overlap, see <strong>Fig.&nbsp;8</strong>\n    <ul>\n    <li>Text height: 40 units (or 30 units, minimum 20 units, if required)</li>\n    <li>Text width: 40 units (or 30 units, minimum 20 units, if required)</li>\n    </ul></li>\n</ul>\n\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"2\">\n  <caption align=\"bottom\"><strong>Fig. 6</strong>: Round sensor with (a) short and (b) longer SI unit</caption>\n  <tr>\n    <td> (a)\n      <img src=\"modelica://Modelica/Resources/Images/UsersGuide/Conventions/Icon_sensor_round.png\"\n           alt=\"Icon of connector corner\">\n    </td>\n    <td> (b)\n      <img src=\"modelica://Modelica/Resources/Images/UsersGuide/Conventions/Icon_sensor_round2.png\"\n           alt=\"Icon of connector corner\">\n    </td>\n  </tr>\n</table>\n\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"2\">\n  <caption align=\"bottom\"><strong>Fig. 7</strong>: Rectangular sensor </caption>\n  <tr>\n    <td>\n      <img src=\"modelica://Modelica/Resources/Images/UsersGuide/Conventions/Icon_sensor_rectangular.png\"\n           alt=\"Icon of connector corner\">\n    </td>\n  </tr>\n</table>\n\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"2\">\n  <caption align=\"bottom\"><strong>Fig. 8</strong>: Sensor with multiple signal outputs and SI units located next to the output connectors</caption>\n  <tr>\n    <td>\n      <img src=\"modelica://Modelica/Resources/Images/UsersGuide/Conventions/Icon_sensor_multi.png\"\n           alt=\"Icon of connector corner\">\n    </td>\n  </tr>\n</table>\n\n<h4>Diagram layer</h4>\n\n<p>The diagram layer is intended to contain the graphical components, and if there are no graphical components it shall be left empty.\nIn particular do not make the diagram layer a copy of the icon layer.\nGraphical illustrations shall not be added in the diagram layer, but can be added in the HTML documentation.</p>\n</html>"));
end Icons;