From 65a9f54e1051ee8ab936975e78dcb7117b265ef5 Mon Sep 17 00:00:00 2001 From: Michele Calgaro Date: Fri, 11 Dec 2020 21:51:45 +0900 Subject: Renaming of files in preparation for code style tools. Signed-off-by: Michele Calgaro --- kig/objects/cubic_type.cpp | 185 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 185 insertions(+) create mode 100644 kig/objects/cubic_type.cpp (limited to 'kig/objects/cubic_type.cpp') diff --git a/kig/objects/cubic_type.cpp b/kig/objects/cubic_type.cpp new file mode 100644 index 00000000..24bfbda4 --- /dev/null +++ b/kig/objects/cubic_type.cpp @@ -0,0 +1,185 @@ +// Copyright (C) 2003 Dominique Devriese + +// 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 2 +// 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, write to the Free Software +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +// 02110-1301, USA. + +#include "cubic_type.h" + +#include "cubic_imp.h" +#include "point_imp.h" +#include "bogus_imp.h" + +#include + +static const char cubictpstatement[] = I18N_NOOP( "Construct a cubic curve through this point" ); + +static const struct ArgsParser::spec argsspecCubicB9P[] = +{ + { PointImp::stype(), cubictpstatement, + I18N_NOOP( "Select a point for the new cubic to go through..." ), true }, + { PointImp::stype(), cubictpstatement, + I18N_NOOP( "Select a point for the new cubic to go through..." ), true }, + { PointImp::stype(), cubictpstatement, + I18N_NOOP( "Select a point for the new cubic to go through..." ), true }, + { PointImp::stype(), cubictpstatement, + I18N_NOOP( "Select a point for the new cubic to go through..." ), true }, + { PointImp::stype(), cubictpstatement, + I18N_NOOP( "Select a point for the new cubic to go through..." ), true }, + { PointImp::stype(), cubictpstatement, + I18N_NOOP( "Select a point for the new cubic to go through..." ), true }, + { PointImp::stype(), cubictpstatement, + I18N_NOOP( "Select a point for the new cubic to go through..." ), true }, + { PointImp::stype(), cubictpstatement, + I18N_NOOP( "Select a point for the new cubic to go through..." ), true }, + { PointImp::stype(), cubictpstatement, + I18N_NOOP( "Select a point for the new cubic to go through..." ), true } +}; + +KIG_INSTANTIATE_OBJECT_TYPE_INSTANCE( CubicB9PType ) + +CubicB9PType::CubicB9PType() + : ArgsParserObjectType( "CubicB9P", argsspecCubicB9P, 9 ) +{ +} + +CubicB9PType::~CubicB9PType() +{ +} + +const CubicB9PType* CubicB9PType::instance() +{ + static const CubicB9PType t; + return &t; +} + +ObjectImp* CubicB9PType::calc( const Args& os, const KigDocument& ) const +{ + if ( ! margsparser.checkArgs( os, 2 ) ) return new InvalidImp; + + std::vector points; + for ( uint i = 0; i < os.size(); ++i ) + points.push_back( static_cast( os[i] )->coordinate() ); + + CubicCartesianData d = calcCubicThroughPoints( points ); + if ( d.valid() ) + return new CubicImp( d ); + else + return new InvalidImp; +} + +static const ArgsParser::spec argsspecCubicNodeB6P[] = +{ + { PointImp::stype(), cubictpstatement, + I18N_NOOP( "Select a point for the new cubic to go through..." ), true }, + { PointImp::stype(), cubictpstatement, + I18N_NOOP( "Select a point for the new cubic to go through..." ), true }, + { PointImp::stype(), cubictpstatement, + I18N_NOOP( "Select a point for the new cubic to go through..." ), true }, + { PointImp::stype(), cubictpstatement, + I18N_NOOP( "Select a point for the new cubic to go through..." ), true }, + { PointImp::stype(), cubictpstatement, + I18N_NOOP( "Select a point for the new cubic to go through..." ), true }, + { PointImp::stype(), cubictpstatement, + I18N_NOOP( "Select a point for the new cubic to go through..." ), true } +}; + +KIG_INSTANTIATE_OBJECT_TYPE_INSTANCE( CubicNodeB6PType ) + +CubicNodeB6PType::CubicNodeB6PType() + : ArgsParserObjectType( "CubicNodeB6P", argsspecCubicNodeB6P, 6 ) +{ +} + +CubicNodeB6PType::~CubicNodeB6PType() +{ +} + +const CubicNodeB6PType* CubicNodeB6PType::instance() +{ + static const CubicNodeB6PType t; + return &t; +} + +ObjectImp* CubicNodeB6PType::calc( const Args& parents, const KigDocument& ) const +{ + if ( ! margsparser.checkArgs( parents, 2 ) ) return new InvalidImp; + + std::vector points; + for ( Args::const_iterator i = parents.begin(); i != parents.end(); ++i ) + points.push_back( static_cast( *i )->coordinate() ); + + CubicCartesianData d = calcCubicNodeThroughPoints( points ); + if ( d.valid() ) + return new CubicImp( d ); + else + return new InvalidImp; +} + +static const ArgsParser::spec argsspecCubicCuspB4P[] = +{ + { PointImp::stype(), cubictpstatement, + I18N_NOOP( "Select a point for the new cubic to go through..." ), true }, + { PointImp::stype(), cubictpstatement, + I18N_NOOP( "Select a point for the new cubic to go through..." ), true }, + { PointImp::stype(), cubictpstatement, + I18N_NOOP( "Select a point for the new cubic to go through..." ), true }, + { PointImp::stype(), cubictpstatement, + I18N_NOOP( "Select a point for the new cubic to go through..." ), true } +}; + +KIG_INSTANTIATE_OBJECT_TYPE_INSTANCE( CubicCuspB4PType ) + +CubicCuspB4PType::CubicCuspB4PType() + : ArgsParserObjectType( "CubicCuspB4P", argsspecCubicCuspB4P, 4 ) +{ +} + +CubicCuspB4PType::~CubicCuspB4PType() +{ +} + +const CubicCuspB4PType* CubicCuspB4PType::instance() +{ + static const CubicCuspB4PType t; + return &t; +} + +ObjectImp* CubicCuspB4PType::calc( const Args& parents, const KigDocument& ) const +{ + if ( ! margsparser.checkArgs( parents, 2 ) ) return new InvalidImp; + + std::vector points; + for ( Args::const_iterator i = parents.begin(); i != parents.end(); ++i ) + points.push_back( static_cast( *i )->coordinate() ); + + CubicCartesianData d = calcCubicCuspThroughPoints( points ); + if ( d.valid() ) return new CubicImp( d ); + else return new InvalidImp; +} + +const ObjectImpType* CubicB9PType::resultId() const +{ + return CubicImp::stype(); +} + +const ObjectImpType* CubicNodeB6PType::resultId() const +{ + return CubicImp::stype(); +} + +const ObjectImpType* CubicCuspB4PType::resultId() const +{ + return CubicImp::stype(); +} -- cgit v1.2.1