149 lines
5.3 KiB
XML
149 lines
5.3 KiB
XML
<?xml version="1.0" encoding="UTF-8" ?>
|
|
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
|
|
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
|
|
|
|
<refentry id="libgimpmath-GimpMath">
|
|
<refmeta>
|
|
<refentrytitle role="top_of_page" id="libgimpmath-GimpMath.top_of_page">GimpMath</refentrytitle>
|
|
<manvolnum>3</manvolnum>
|
|
<refmiscinfo>LIBGIMPMATH Library</refmiscinfo>
|
|
</refmeta>
|
|
|
|
<refnamediv>
|
|
<refname>GimpMath</refname>
|
|
<refpurpose>Mathematical definitions and macros.</refpurpose>
|
|
<!--[<xref linkend="desc" endterm="desc.title"/>]-->
|
|
</refnamediv>
|
|
|
|
<refsynopsisdiv id="libgimpmath-GimpMath.synopsis" role="synopsis">
|
|
<title role="synopsis.title">Synopsis</title>
|
|
|
|
<synopsis>
|
|
#define <link linkend="RINT:CAPS">RINT</link> (x)
|
|
#define <link linkend="ROUND:CAPS">ROUND</link> (x)
|
|
#define <link linkend="SQR:CAPS">SQR</link> (x)
|
|
#define <link linkend="MAX255:CAPS">MAX255</link> (a)
|
|
#define <link linkend="CLAMP0255:CAPS">CLAMP0255</link> (a)
|
|
#define <link linkend="gimp-deg-to-rad">gimp_deg_to_rad</link> (angle)
|
|
#define <link linkend="gimp-rad-to-deg">gimp_rad_to_deg</link> (angle)
|
|
</synopsis>
|
|
</refsynopsisdiv>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<refsect1 id="libgimpmath-GimpMath.description" role="desc">
|
|
<title role="desc.title">Description</title>
|
|
<para>
|
|
Mathematical definitions and macros. These macros should be used
|
|
rather than the ones from math.h for enhanced portability.
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1 id="libgimpmath-GimpMath.details" role="details">
|
|
<title role="details.title">Details</title>
|
|
<refsect2 id="RINT:CAPS" role="macro">
|
|
<title>RINT()</title>
|
|
<indexterm zone="RINT:CAPS"><primary>RINT</primary></indexterm><programlisting>#define RINT(x)</programlisting>
|
|
<para>
|
|
This macro rounds its argument <parameter>x</parameter> to an integer value in floating point
|
|
format.
|
|
</para><variablelist role="params">
|
|
<varlistentry><term><parameter>x</parameter> :</term>
|
|
<listitem><simpara>the value to be rounded.
|
|
|
|
|
|
</simpara></listitem></varlistentry>
|
|
</variablelist></refsect2>
|
|
<refsect2 id="ROUND:CAPS" role="macro">
|
|
<title>ROUND()</title>
|
|
<indexterm zone="ROUND:CAPS"><primary>ROUND</primary></indexterm><programlisting>#define ROUND(x) ((int) ((x) + 0.5))
|
|
</programlisting>
|
|
<para>
|
|
This macro rounds its argument <parameter>x</parameter> to the nearest integer.
|
|
</para><variablelist role="params">
|
|
<varlistentry><term><parameter>x</parameter> :</term>
|
|
<listitem><simpara>the value to be rounded.
|
|
|
|
|
|
</simpara></listitem></varlistentry>
|
|
</variablelist></refsect2>
|
|
<refsect2 id="SQR:CAPS" role="macro">
|
|
<title>SQR()</title>
|
|
<indexterm zone="SQR:CAPS"><primary>SQR</primary></indexterm><programlisting>#define SQR(x) ((x) * (x))
|
|
</programlisting>
|
|
<para>
|
|
This macro squares its argument <parameter>x</parameter>.
|
|
</para><variablelist role="params">
|
|
<varlistentry><term><parameter>x</parameter> :</term>
|
|
<listitem><simpara>the value to be squared.
|
|
|
|
|
|
</simpara></listitem></varlistentry>
|
|
</variablelist></refsect2>
|
|
<refsect2 id="MAX255:CAPS" role="macro">
|
|
<title>MAX255()</title>
|
|
<indexterm zone="MAX255:CAPS"><primary>MAX255</primary></indexterm><programlisting>#define MAX255(a) ((a) | (((a) & 256) - (((a) & 256) >> 8)))
|
|
</programlisting>
|
|
<para>
|
|
This macro limits it argument <parameter>a</parameter>, an (0-511) int, to 255.
|
|
</para><variablelist role="params">
|
|
<varlistentry><term><parameter>a</parameter> :</term>
|
|
<listitem><simpara>the value to be limited.
|
|
|
|
|
|
</simpara></listitem></varlistentry>
|
|
</variablelist></refsect2>
|
|
<refsect2 id="CLAMP0255:CAPS" role="macro">
|
|
<title>CLAMP0255()</title>
|
|
<indexterm zone="CLAMP0255:CAPS"><primary>CLAMP0255</primary></indexterm><programlisting>#define CLAMP0255(a) CLAMP(a,0,255)
|
|
</programlisting>
|
|
<para>
|
|
This macro clamps its argument <parameter>a</parameter>, an int32-range int, between 0 and
|
|
255 inclusive.
|
|
</para><variablelist role="params">
|
|
<varlistentry><term><parameter>a</parameter> :</term>
|
|
<listitem><simpara>the value to be clamped.
|
|
|
|
|
|
</simpara></listitem></varlistentry>
|
|
</variablelist></refsect2>
|
|
<refsect2 id="gimp-deg-to-rad" role="macro">
|
|
<title>gimp_deg_to_rad()</title>
|
|
<indexterm zone="gimp-deg-to-rad"><primary>gimp_deg_to_rad</primary></indexterm><programlisting>#define gimp_deg_to_rad(angle) ((angle) * (2.0 * G_PI) / 360.0)
|
|
</programlisting>
|
|
<para>
|
|
This macro converts its argument <parameter>angle</parameter> from degree to radian.
|
|
</para><variablelist role="params">
|
|
<varlistentry><term><parameter>angle</parameter> :</term>
|
|
<listitem><simpara>the angle to be converted.
|
|
|
|
|
|
</simpara></listitem></varlistentry>
|
|
</variablelist></refsect2>
|
|
<refsect2 id="gimp-rad-to-deg" role="macro">
|
|
<title>gimp_rad_to_deg()</title>
|
|
<indexterm zone="gimp-rad-to-deg"><primary>gimp_rad_to_deg</primary></indexterm><programlisting>#define gimp_rad_to_deg(angle) ((angle) * 360.0 / (2.0 * G_PI))
|
|
</programlisting>
|
|
<para>
|
|
This macro converts its argument <parameter>angle</parameter> from radian to degree.
|
|
</para><variablelist role="params">
|
|
<varlistentry><term><parameter>angle</parameter> :</term>
|
|
<listitem><simpara>the angle to be converted.
|
|
|
|
|
|
</simpara></listitem></varlistentry>
|
|
</variablelist></refsect2>
|
|
|
|
</refsect1>
|
|
|
|
|
|
|
|
|
|
</refentry>
|