KiCad PCB EDA Suite
Loading...
Searching...
No Matches
bezier_draw_behavior.h
Go to the documentation of this file.
1/*
2 * This program source code file is part of KiCad, a free EDA CAD application.
3 *
4 * Copyright The KiCad Developers, see AUTHORS.txt for contributors.
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version 2
9 * of the License, or (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program. If not, see <https://www.gnu.org/licenses/>.
18 */
19
20#pragma once
21
22#include <eda_units.h>
23#include <eda_shape.h>
26
27
28struct EDA_IU_SCALE;
29
35 : public MANAGED_DRAW_BEHAVIOR<KIGFX::PREVIEW::BEZIER_GEOM_MANAGER, KIGFX::PREVIEW::BEZIER_ASSISTANT>
36{
37public:
39
42
43 bool OnProperties( EDA_SHAPE& aShape ) override
44 {
46 }
47
48 void ApplyToShape( EDA_SHAPE& aShape ) const override
49 {
50 aShape.SetStart( m_manager.GetStart() );
51 aShape.SetBezierC1( m_manager.GetControlC1() );
52 aShape.SetEnd( m_manager.GetEnd() );
53 aShape.SetBezierC2( m_manager.GetControlC2() );
55 }
56};
BEZIER_DRAW_BEHAVIOR(const BEZIER_DRAW_BEHAVIOR &)=delete
bool OnProperties(EDA_SHAPE &aShape) override
Called when the user invokes the properties action mid-draw.
void ApplyToShape(EDA_SHAPE &aShape) const override
Transfer the current geometry to an EDA_SHAPE.
MANAGED_DRAW_BEHAVIOR(const EDA_IU_SCALE &aIuScale, EDA_UNITS aUnits)
BEZIER_DRAW_BEHAVIOR & operator=(const BEZIER_DRAW_BEHAVIOR &)=delete
virtual void SetEnd(const VECTOR2I &aEnd)
Definition eda_shape.h:329
virtual void SetBezierC2(const VECTOR2I &aPt)
Definition eda_shape.h:367
virtual void SetBezierC1(const VECTOR2I &aPt)
Definition eda_shape.h:364
void RebuildBezierToSegmentsPointsList(int aMaxError)
Rebuild the m_bezierPoints vertex list that approximate the Bezier curve by a list of segments.
virtual void SetStart(const VECTOR2I &aStart)
Definition eda_shape.h:279
@ SET_START
Waiting to lock in the start point.
MANAGED_DRAW_BEHAVIOR(const EDA_IU_SCALE &aIuScale, EDA_UNITS aUnits)