CVR-Lib last update 20 Sep 2009

cvrBoundaryType.h

Go to the documentation of this file.
00001 /*
00002  * Copyright (C) 1998 - 2004
00003  * Lehrstuhl fuer Technische Informatik, RWTH-Aachen, Germany
00004  *
00005  *
00006  * This file is part of the Computer Vision and Robotics Library (CVR-Lib)
00007  *
00008  * The CVR-Lib is free software; you can redistribute it and/or
00009  * modify it under the terms of the BSD License.
00010  *
00011  * All rights reserved.
00012  *
00013  * Redistribution and use in source and binary forms, with or without
00014  * modification, are permitted provided that the following conditions are met:
00015  *
00016  * 1. Redistributions of source code must retain the above copyright notice,
00017  *    this list of conditions and the following disclaimer.
00018  *
00019  * 2. Redistributions in binary form must reproduce the above copyright notice,
00020  *    this list of conditions and the following disclaimer in the documentation
00021  *    and/or other materials provided with the distribution.
00022  *
00023  * 3. Neither the name of the authors nor the names of its contributors may be
00024  *    used to endorse or promote products derived from this software without
00025  *    specific prior written permission.
00026  *
00027  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00028  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00029  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
00030  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
00031  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
00032  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
00033  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
00034  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
00035  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
00036  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
00037  * POSSIBILITY OF SUCH DAMAGE.
00038  */
00039 
00040 
00041 
00042 /**
00043  * \file   cvrBoundaryType.h
00044  *         Contains the enum eBoundaryType which provides global
00045  *         constants for differnt boudary conditions. The appropriate
00046  *         read and write functions are also defined.
00047  * \author Peter Doerfler
00048  * \date   02.04.2003
00049  * $Id: cvrBoundaryType.h,v 1.2 2007/04/18 21:13:40 alvarado Exp $
00050  */
00051 
00052 #ifndef _CVR_BOUNDARYTYPE_H_
00053 #define _CVR_BOUNDARYTYPE_H_
00054 
00055 #include "cvrIoHandler.h"
00056 
00057 namespace cvr {
00058 
00059   /**
00060    * boundary condition type.  This type indicates how to
00061    * consider/interpret the boundaries of an image or matrix.
00062    *
00063    * For this type the methods read(ioHandler&, eBoundaryType&) and
00064    * write(ioHandler&, const eBoundaryType&) are implemented. Note
00065    * that template functions read(ioHandler&, const std::string&, T&)
00066    * and write(ioHandler&, const std::string&, const T&) exist. (see
00067    * Developer's Guide for further information).
00068    *
00069    * @ingroup gTypes
00070    */
00071   enum eBoundaryType {
00072     Zero,      /**< The boundary does not exist (only 0-value) */
00073     Mirror,    /**< The signal/image/vector is mirrored */
00074     Periodic , /**< A periodic continuation of the signal is assumed */
00075     Constant,  /**< The last value of the border will be assumed */
00076     NoBoundary /**< The boundary will be ignored. The effect is
00077                   an unitialized border in those parts of the vector,
00078                   matrix or image, where a complete filter kernel cannot
00079                   be applied due to its size.
00080                   Please note that the border will be left UNinitialized.
00081                   It is up to you to set some value at this border,
00082                   which will have a maximum height or width of the size
00083                   of the filter kernel minus one.  The reason for this
00084                   option to exist is that some algorithms will ignore
00085                   this border anyway and all other border types will
00086                   spend some time calculating it */
00087   };
00088 
00089   /**
00090    * read function for eBoundaryType.
00091    *
00092    * @ingroup gStorable
00093    */
00094   bool read(ioHandler& handler,eBoundaryType& data);
00095 
00096   /**
00097    * write function for eBoundaryType.
00098    *
00099    * @ingroup gStorable
00100    */
00101   bool write(ioHandler& handler,const eBoundaryType& data);
00102 
00103 
00104 }
00105 #endif

Generated on Sun Sep 20 22:07:58 2009 for CVR-Lib by Doxygen 1.5.8