<commit_before>// -------------------------------------------------------------------------
// itkQuadEdge.h
// $Revision: 1.10 $
// $Author: ibanez $
// $Name:  $
// $Date: 2007-01-24 23:58:14 $
// -------------------------------------------------------------------------
// This code is an implementation of the well known quad edge (QE) data
// structure in the ITK library. Although the original QE can handle non
// orientable 2-manifolds and its dual and its mirror, this implementation
// is specifically dedicated to handle orientable 2-manifolds along with
// their dual.
//
// Any comment, criticism and/or donation is welcome.
//
// Please contact any member of the team:
//
// - The frog master (<NAME>)       <EMAIL>
// - The duck master (<NAME>) <EMAIL>
// - The cow  master (<NAME>) <EMAIL>
// -------------------------------------------------------------------------

#ifndef __itkQuadEdge_h
#define __itkQuadEdge_h

#include "itkQuadEdgeMeshBaseIterator.h"

#include "itkMacro.h"

// Debugging macros for classes that do not derive from the itkObject.
// FIXME: Maybe variations of these macros should be moved into
// itkMacro.h
//
#define itkQEDebugMacro( x )                                            \
    {                                                                   \
        ::itk::OStringStream itkmsg;                                    \
        itkmsg << "Debug: In " __FILE__ ", line " << __LINE__ << "\n"   \
               << " (" << this << "): " x                               \
               << "\n\n";                                               \
        ::itk::OutputWindowDisplayDebugText( itkmsg.str( ).c_str( ) );  \
    }
#define itkQEWarningMacro( x )                                          \
    {                                                                   \
        ::itk::OStringStream itkmsg;                                    \
        itkmsg << "WARNING: In " __FILE__ ", line " << __LINE__ << "\n" \
               << " (" << this << "): " x                               \
               << "\n\n";                                               \
        ::itk::OutputWindowDisplayWarningText( itkmsg.str( ).c_str( ) ); \
    }


// -------------------------------------------------------------------------
/**
 * Macro that defines overloaded members for the second order
 * topological accessors.
 *
 * @param st Superclass type.
 * @param pt Primal edge type.
 * @param dt Dual edge type.
 */
#define itkQEAccessorsMacro( st, pt, dt )                               \
   pt* GetOnext()                                                       \
    {                                                                   \
    return( dynamic_cast<  pt* >( this->st::GetOnext() ) );             \
    }                                                                   \
                                                                        \
   dt* GetRot()                                                         \
    {                                                                   \
    return( dynamic_cast<  dt* >( this->st::GetRot() ) );               \
    }                                                                   \
                                                                        \
   pt* GetSym()                                                         \<commit_msg>STYLE: Fixing style issues.<commit_after>/*=========================================================================

  Program:   Insight Segmentation & Registration Toolkit
  Module:    itkQuadEdge.h
  Language:  C++
  Date:      $Date$
  Version:   $Revision$

  Copyright (c) Insight Software Consortium. All rights reserved.
  See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.

     This software is distributed WITHOUT ANY WARRANTY; without even
     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
     PURPOSE.  See the above copyright notices for more information.

=========================================================================*/

#ifndef __itkQuadEdge_h
#define __itkQuadEdge_h

#include "itkQuadEdgeMeshBaseIterator.h"

#include "itkMacro.h"

// Debugging macros for classes that do not derive from the itkObject.
// FIXME: Maybe variations of these macros should be moved into
// itkMacro.h
//
#define itkQEDebugMacro( x )                                        \
{                                                                   \
    ::itk::OStringStream itkmsg;                                    \
    itkmsg << "Debug: In " __FILE__ ", line " << __LINE__ << "\n"   \
           << " (" << this << "): " x                               \
           << "\n\n";                                               \
    ::itk::OutputWindowDisplayDebugText( itkmsg.str( ).c_str( ) );  \
}
#define itkQEWarningMacro( x )                                      \
{                                                                   \
    ::itk::OStringStream itkmsg;                                    \
    itkmsg << "WARNING: In " __FILE__ ", line " << __LINE__ << "\n" \
           << " (" << this << "): " x                               \
           << "\n\n";                                               \
    ::itk::OutputWindowDisplayWarningText( itkmsg.str( ).c_str( ) );\
}


// -------------------------------------------------------------------------
/**
 * Macro that defines overloaded members for the second order
 * topological accessors.
 *
 * @param st Superclass type.
 * @param pt Primal edge type.
 * @param dt Dual edge type.
 */
#define itkQEAccessorsMacro( st, pt, dt )                               \
   pt* GetOnext()                                                       \
    {                                                                   \
    return( dynamic_cast<  pt* >( this->st::GetOnext() ) );             \
    }                                                                   \
                                                                        \
   dt* GetRot()                                                         \
    {                                                                   \
    return( dynamic_cast<  dt* >( this->st::GetRot() ) );               \
    }                                                                   \
                                                                        \
   pt* GetSym()                                                         \
{'fraction_non_alphanumeric': 0.17053184910327768, 'fraction_numerical': 0.002937538651824366, 'mean_word_length': 0.7959466962798445, 'pattern_counts': {'":': 0, '<': 69, '<?xml version=': 0, '>': 17, 'https://': 0, 'lorem ipsum': 0, 'www.': 1, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 81, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3275043', 'n_tokens_mistral': 1395, 'n_tokens_neox': 1344, 'n_words': 364}