<HTML>
<HEAD>
<TITLE>Untitled file 'SymmetryGroup.html'</TITLE>
<!-- Copyright (c) 1996 by The Geometry Center. All Rights Reserved. -->
</HEAD>
<BODY BGCOLOR="FFFFFF">
<!-- *Navigation-Links -->
<B>Up:</B> <A HREF="source.html"><I>Java Kali Source Code and Documentation</I></A><BR>
<HR>
<p>

<!-- *Begin-Document-Body -->
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc on Mon Sep 16 18:25:19 CDT 1996 -->
<A NAME="_top_"></A>
<TITLE>
  Class SymmetryGroup
</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<H1>Class SymmetryGroup</H1>
<PRE>
<A HREF="http://www.javasoft.com/products/JDK/CurrentRelease/api/java.lang.Object.html">java.lang.Object</A>
   |
   +----SymmetryGroup
</PRE>
<HR>
<DL>
  <DT>class <B>SymmetryGroup</B>
  <DT>extends <A HREF="http://www.javasoft.com/products/JDK/CurrentRelease/api/java.lang.Object.html">Object</A>
</DL>
The SymmetryGroup class holds the data for a particular symmetry
group.  A symmetry group may be generated by
<UL>
	<LI>a reflection
	<LI>a glide reflection
	<LI>a rotation
	<LI>up to two translations
</UL>
<p>
Kali always performs the generators in that order.  Given a line
segment upon which the group is to act, first the line segment is
reflected (if a reflection is present), then the line and its
reflection are glide reflected (if a glide reflection is present),
then the images are rotated (if a rotation is present) and finally
all images are translated according to whatever translations are
present.
<p>
Note: all the math happens in the
<A HREF="Panorama.html#_top_">Panorama</A> object; the SymmetryGroup
object just holds the group data.
<DL>
    <DT><B>See Also:</B>
    <DD><A HREF="SymmetryGroups.html#_top_">SymmetryGroups</A>, <A HREF="Panorama.html#_top_">Panorama</A>
</DL>
<HR>
<A NAME="index"></A>
<H2><IMG SRC="images/variable-index.gif" WIDTH=207 HEIGHT=38 ALT="Variable Index"></H2>
<DL>
  <DT><IMG SRC="images/magenta-ball-small.gif" WIDTH=6 HEIGHT=6 ALT=" o ">
	<A HREF="#glideReflectionType"><B>glideReflectionType</B></A>
  <DD>If glideReflectionType != axis_none, do a glide reflection
a distance 1/2 along the specified axis.
  <DT><IMG SRC="images/magenta-ball-small.gif" WIDTH=6 HEIGHT=6 ALT=" o ">
	<A HREF="#glideSegments"><B>glideSegments</B></A>
  <DD>The locations of the glide segments.
  <DT><IMG SRC="images/magenta-ball-small.gif" WIDTH=6 HEIGHT=6 ALT=" o ">
	<A HREF="#gyrationPoints"><B>gyrationPoints</B></A>
  <DD>The locations of the gyration points.
  <DT><IMG SRC="images/magenta-ball-small.gif" WIDTH=6 HEIGHT=6 ALT=" o ">
	<A HREF="#index"><B>index</B></A>
  <DD>The index of the group (value is one of the constants defined
Constants.java)

  <DT><IMG SRC="images/magenta-ball-small.gif" WIDTH=6 HEIGHT=6 ALT=" o ">
	<A HREF="#mirrorSegments"><B>mirrorSegments</B></A>
  <DD>The locations of the mirror segments.
  <DT><IMG SRC="images/magenta-ball-small.gif" WIDTH=6 HEIGHT=6 ALT=" o ">
	<A HREF="#name"><B>name</B></A>
  <DD>The name of the group (for debug printing, etc)

  <DT><IMG SRC="images/magenta-ball-small.gif" WIDTH=6 HEIGHT=6 ALT=" o ">
	<A HREF="#numGlideSegments"><B>numGlideSegments</B></A>
  <DD>The number of glide segments (same as mirrorSegments.length).
  <DT><IMG SRC="images/magenta-ball-small.gif" WIDTH=6 HEIGHT=6 ALT=" o ">
	<A HREF="#numGyrationPoints"><B>numGyrationPoints</B></A>
  <DD>The number of gyration points (same as mirrorSegments.length).
  <DT><IMG SRC="images/magenta-ball-small.gif" WIDTH=6 HEIGHT=6 ALT=" o ">
	<A HREF="#numMirrorSegments"><B>numMirrorSegments</B></A>
  <DD>The number of mirror segments (same as mirrorSegments.length).
  <DT><IMG SRC="images/magenta-ball-small.gif" WIDTH=6 HEIGHT=6 ALT=" o ">
	<A HREF="#numTranslations"><B>numTranslations</B></A>
  <DD>numTranslations tells how many independent translations are
present.
  <DT><IMG SRC="images/magenta-ball-small.gif" WIDTH=6 HEIGHT=6 ALT=" o ">
	<A HREF="#reflectionType"><B>reflectionType</B></A>
  <DD>reflectionType has one of the values AXIS_NONE, AXIS_X0,
AXIS_X4, AXIS_Y0, or AXIS_Y4.
  <DT><IMG SRC="images/magenta-ball-small.gif" WIDTH=6 HEIGHT=6 ALT=" o ">
	<A HREF="#rotationOrder"><B>rotationOrder</B></A>
  <DD>rotationOrder gives the order of the rotation about
the origin if a rotation is present.
  <DT><IMG SRC="images/magenta-ball-small.gif" WIDTH=6 HEIGHT=6 ALT=" o ">
	<A HREF="#translations"><B>translations</B></A>
<DD></DL>
<H2><IMG SRC="images/constructor-index.gif" WIDTH=275 HEIGHT=38 ALT="Constructor Index"></H2>
<DL>
  <DT><IMG SRC="images/yellow-ball-small.gif" WIDTH=6 HEIGHT=6 ALT=" o ">
	<A HREF="#SymmetryGroup(int, java.lang.String, int, int, int)"><B>SymmetryGroup</B></A>(int, String, int, int, int)
  <DD>Create a new SymmetryGroup object with the given data (and no
mirror segments, glide segments, or gyration points).
  <DT><IMG SRC="images/yellow-ball-small.gif" WIDTH=6 HEIGHT=6 ALT=" o ">
	<A HREF="#SymmetryGroup(int, java.lang.String, int, int, int, DVector[], Segment[], Segment[], DVector[])"><B>SymmetryGroup</B></A>(int, String, int, int, int, DVector[], Segment[], Segment[], DVector[])
  <DD>Create a new SymmetryGroup object with the given data.
</DL>
<H2><IMG SRC="images/method-index.gif" WIDTH=207 HEIGHT=38 ALT="Method Index"></H2>
<DL>
  <DT><IMG SRC="images/red-ball-small.gif" WIDTH=6 HEIGHT=6 ALT=" o ">
	<A HREF="#toString()"><B>toString</B></A>()
  <DD>Convert a SymmetryGroup to a string for printing

</DL>
<A NAME="variables"></A>
<H2><IMG SRC="images/variables.gif" WIDTH=153 HEIGHT=38 ALT="Variables"></H2>
<A NAME="index"><IMG SRC="images/magenta-ball.gif" WIDTH=12 HEIGHT=12 ALT=" o "></A>
<B>index</B>
<PRE>
  public int index
</PRE>
<DL>
  <DD>The index of the group (value is one of the constants defined
Constants.java)
</DL>
<A NAME="name"><IMG SRC="images/magenta-ball.gif" WIDTH=12 HEIGHT=12 ALT=" o "></A>
<B>name</B>
<PRE>
  public <A HREF="http://www.javasoft.com/products/JDK/CurrentRelease/api/java.lang.String.html">String</A> name
</PRE>
<DL>
  <DD>The name of the group (for debug printing, etc)
</DL>
<A NAME="reflectionType"><IMG SRC="images/magenta-ball.gif" WIDTH=12 HEIGHT=12 ALT=" o "></A>
<B>reflectionType</B>
<PRE>
  public int reflectionType
</PRE>
<DL>
  <DD>reflectionType has one of the values AXIS_NONE, AXIS_X0,
AXIS_X4, AXIS_Y0, or AXIS_Y4.  If reflectionType != AXIS_NONE,
do a reflection about the specified axis.
</DL>
<A NAME="glideReflectionType"><IMG SRC="images/magenta-ball.gif" WIDTH=12 HEIGHT=12 ALT=" o "></A>
<B>glideReflectionType</B>
<PRE>
  public int glideReflectionType
</PRE>
<DL>
  <DD>If glideReflectionType != axis_none, do a glide reflection
a distance 1/2 along the specified axis.
</DL>
<A NAME="rotationOrder"><IMG SRC="images/magenta-ball.gif" WIDTH=12 HEIGHT=12 ALT=" o "></A>
<B>rotationOrder</B>
<PRE>
  public int rotationOrder
</PRE>
<DL>
  <DD>rotationOrder gives the order of the rotation about
the origin if a rotation is present.  Otherwise it's zero.
</DL>
<A NAME="numTranslations"><IMG SRC="images/magenta-ball.gif" WIDTH=12 HEIGHT=12 ALT=" o "></A>
<B>numTranslations</B>
<PRE>
  public int numTranslations
</PRE>
<DL>
  <DD>numTranslations tells how many independent translations are
present.  It will be 2 for a wallpaper group, 1 for a frieze
group, and 0 for a rosette group.  The array "translations"
gives the translation vectors.
</DL>
<A NAME="translations"><IMG SRC="images/magenta-ball.gif" WIDTH=12 HEIGHT=12 ALT=" o "></A>
<B>translations</B>
<PRE>
  public <A HREF="DVector.html#_top_">DVector</A> translations[]
</PRE>
<A NAME="numMirrorSegments"><IMG SRC="images/magenta-ball.gif" WIDTH=12 HEIGHT=12 ALT=" o "></A>
<B>numMirrorSegments</B>
<PRE>
  public int numMirrorSegments
</PRE>
<DL>
  <DD>The number of mirror segments (same as mirrorSegments.length).
</DL>
<A NAME="mirrorSegments"><IMG SRC="images/magenta-ball.gif" WIDTH=12 HEIGHT=12 ALT=" o "></A>
<B>mirrorSegments</B>
<PRE>
  public <A HREF="Segment.html#_top_">Segment</A> mirrorSegments[]
</PRE>
<DL>
  <DD>The locations of the mirror segments.  NOTE: currently
Java Kali does not display these; they're included here
because they were present in the Mac version, and a future
version of Java Kali might display them.
</DL>
<A NAME="numGlideSegments"><IMG SRC="images/magenta-ball.gif" WIDTH=12 HEIGHT=12 ALT=" o "></A>
<B>numGlideSegments</B>
<PRE>
  public int numGlideSegments
</PRE>
<DL>
  <DD>The number of glide segments (same as mirrorSegments.length).
</DL>
<A NAME="glideSegments"><IMG SRC="images/magenta-ball.gif" WIDTH=12 HEIGHT=12 ALT=" o "></A>
<B>glideSegments</B>
<PRE>
  public <A HREF="Segment.html#_top_">Segment</A> glideSegments[]
</PRE>
<DL>
  <DD>The locations of the glide segments.
</DL>
<A NAME="numGyrationPoints"><IMG SRC="images/magenta-ball.gif" WIDTH=12 HEIGHT=12 ALT=" o "></A>
<B>numGyrationPoints</B>
<PRE>
  public int numGyrationPoints
</PRE>
<DL>
  <DD>The number of gyration points (same as mirrorSegments.length).
</DL>
<A NAME="gyrationPoints"><IMG SRC="images/magenta-ball.gif" WIDTH=12 HEIGHT=12 ALT=" o "></A>
<B>gyrationPoints</B>
<PRE>
  public <A HREF="DVector.html#_top_">DVector</A> gyrationPoints[]
</PRE>
<DL>
  <DD>The locations of the gyration points.
</DL>
<A NAME="constructors"></A>
<H2><IMG SRC="images/constructors.gif" WIDTH=231 HEIGHT=38 ALT="Constructors"></H2>
<A NAME="SymmetryGroup"></A>
<A NAME="SymmetryGroup(int, java.lang.String, int, int, int)"><IMG SRC="images/yellow-ball.gif" WIDTH=12 HEIGHT=12 ALT=" o "></A>
<B>SymmetryGroup</B>
<PRE>
  public SymmetryGroup(int index,
                       <A HREF="http://www.javasoft.com/products/JDK/CurrentRelease/api/java.lang.String.html">String</A> name,
                       int reflectionType,
                       int glideReflectionType,
                       int rotationOrder)
</PRE>
<DL>
  <DD>Create a new SymmetryGroup object with the given data (and no
mirror segments, glide segments, or gyration points).
</DL>
<A NAME="SymmetryGroup(int, java.lang.String, int, int, int, DVector[], Segment[], Segment[], DVector[])"><IMG SRC="images/yellow-ball.gif" WIDTH=12 HEIGHT=12 ALT=" o "></A>
<B>SymmetryGroup</B>
<PRE>
  public SymmetryGroup(int index,
                       <A HREF="http://www.javasoft.com/products/JDK/CurrentRelease/api/java.lang.String.html">String</A> name,
                       int reflectionType,
                       int glideReflectionType,
                       int rotationOrder,
                       <A HREF="DVector.html#_top_">DVector</A> translations[],
                       <A HREF="Segment.html#_top_">Segment</A> mirrorSegments[],
                       <A HREF="Segment.html#_top_">Segment</A> glideSegments[],
                       <A HREF="DVector.html#_top_">DVector</A> gyrationPoints[])
</PRE>
<DL>
  <DD>Create a new SymmetryGroup object with the given data.
</DL>
<A NAME="methods"></A>
<H2><IMG SRC="images/methods.gif" WIDTH=151 HEIGHT=38 ALT="Methods"></H2>
<A NAME="toString()"><IMG SRC="images/red-ball.gif" WIDTH=12 HEIGHT=12 ALT=" o "></A>
<A NAME="toString"><B>toString</B></A>
<PRE>
  public <A HREF="http://www.javasoft.com/products/JDK/CurrentRelease/api/java.lang.String.html">String</A> toString()
</PRE>
<DL>
  <DD>Convert a SymmetryGroup to a string for printing
  <DL>
    <DT><B>Overrides:</B>
    <DD><A HREF="http://www.javasoft.com/products/JDK/CurrentRelease/api/java.lang.Object.html">toString</A> in class <A HREF="http://www.javasoft.com/products/JDK/CurrentRelease/api/java.lang.Object.html">Object</A>
  </DL>
</DL>
<!-- *End-Document-Body -->
<p>

<!-- *Navigation-Links -->
<HR>
<B>Up:</B> <A HREF="source.html"><I>Java Kali Source Code and Documentation</I></A><BR>

<!-- *GC-Common-Footer -->
<HR>
<NOBR><A HREF="/"><IMG SRC="/pix/home.gif" ALT="[HOME]" ALIGN=MIDDLE></A>
<I>The Geometry Center Home Page</I></NOBR>
<p>
Author: <A HREF="http://www.geom.umn.edu/locate/mbp">Mark Phillips</A><BR>
Comments to:
<A HREF="/admin/mail/webmaster.html">webmaster@geom.umn.edu</A><BR>
Created:  Sep 16 1996 --- 
<!-- hhmts start -->
Last modified: Sep 18 1996
<!-- hhmts end -->
</BODY>
</HTML>
