kicad-source/pcbnew/router/pns_debug_decorator.h
Tomasz Wlostowski 379aa8f3b5 router: clearer distinction between LOGGER and DEBUG_DECORATOR classes.
The first one keeps a log of events (start routing, mouse motion, etc).
The second allows for adding temporary debug drawings and messages which are stored synchronously with the events in LOGGER.

The event stream together with the PCB design (now with UUIDs) can be used to deterministically replay routing bugs as the user sees them.
2020-07-22 18:05:54 +02:00

57 lines
1.9 KiB
C++

/*
* KiRouter - a push-and-(sometimes-)shove PCB router
*
* Copyright (C) 2013-2016 CERN
* Copyright (C) 2016 KiCad Developers, see AUTHORS.txt for contributors.
* Author: Christian Gagneraud <chgans@gna.org>
*
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation, either version 3 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef __PNS_DEBUG_DECORATOR_H
#define __PNS_DEBUG_DECORATOR_H
#include <math/vector2d.h>
#include <math/box2.h>
#include <geometry/seg.h>
#include <geometry/shape_line_chain.h>
namespace PNS {
class DEBUG_DECORATOR
{
public:
DEBUG_DECORATOR()
{}
virtual ~DEBUG_DECORATOR()
{}
virtual void SetIteration( int iter ) {};
virtual void Message( const wxString msg ) {};
virtual void NewStage( const std::string& name, int iter ) {};
virtual void BeginGroup( const std::string name ) {};
virtual void EndGroup( ) {};
virtual void AddPoint( VECTOR2I aP, int aColor, const std::string aName = "" ) {};
virtual void AddLine( const SHAPE_LINE_CHAIN& aLine, int aType = 0, int aWidth = 0, const std::string aName = "" ) {};
virtual void AddSegment( SEG aS, int aColor, const std::string aName = "" ) {};
virtual void AddBox( BOX2I aB, int aColor, const std::string aName = "" ) {};
virtual void AddDirections( VECTOR2D aP, int aMask, int aColor, const std::string aName = "" ) {};
virtual void Clear() {};
};
}
#endif