• Skip to content
  • Skip to link menu
KDE 4.2 API Reference
  • KDE API Reference
  • kdeedu
  • Sitemap
  • Contact Us
 

kig

special_constructors.h

Go to the documentation of this file.
00001 // Copyright (C)  2003  Dominique Devriese <devriese@kde.org>
00002 
00003 // This program is free software; you can redistribute it and/or
00004 // modify it under the terms of the GNU General Public License
00005 // as published by the Free Software Foundation; either version 2
00006 // of the License, or (at your option) any later version.
00007 
00008 // This program is distributed in the hope that it will be useful,
00009 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00010 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00011 // GNU General Public License for more details.
00012 
00013 // You should have received a copy of the GNU General Public License
00014 // along with this program; if not, write to the Free Software
00015 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
00016 // 02110-1301, USA.
00017 
00018 #ifndef KIG_MISC_SPECIAL_CONSTRUCTORS_H
00019 #define KIG_MISC_SPECIAL_CONSTRUCTORS_H
00020 
00021 #include "object_constructor.h"
00022 
00023 class TwoOrOneIntersectionConstructor
00024   : public StandardConstructorBase
00025 {
00026   const ArgsParserObjectType* mtype_std;
00027   const ArgsParserObjectType* mtype_special;
00028   ArgsParser margsparser;
00029 public:
00030   TwoOrOneIntersectionConstructor( const ArgsParserObjectType* t_std,
00031                                    const ArgsParserObjectType* t_special,
00032                                    const char* iconfile,
00033                                    const struct ArgsParser::spec argsspecv[] );
00034   ~TwoOrOneIntersectionConstructor();
00035 
00036   void drawprelim( const ObjectDrawer& drawer, KigPainter& p, const std::vector<ObjectCalcer*>& parents, const KigDocument& ) const;
00037   std::vector<ObjectHolder*> build( const std::vector<ObjectCalcer*>& os, KigDocument& d, KigWidget& w ) const;
00038   void plug( KigPart* doc, KigGUIAction* kact );
00039   bool isTransform() const;
00040 };
00041 
00042 class ThreeTwoOneIntersectionConstructor
00043   : public StandardConstructorBase
00044 {
00045   const ArgsParserObjectType* mtype_std;
00046   const ArgsParserObjectType* mtype_special;
00047   const ArgsParserObjectType* mtype_special2;
00048   ArgsParser margsparser;
00049 public:
00050   ThreeTwoOneIntersectionConstructor( const ArgsParserObjectType* t_std,
00051                                    const ArgsParserObjectType* t_special,
00052                    const ArgsParserObjectType* t_special2,
00053                                    const char* iconfile,
00054                                    const struct ArgsParser::spec argsspecv[] );
00055   ~ThreeTwoOneIntersectionConstructor();
00056 
00057   void drawprelim( const ObjectDrawer& drawer, KigPainter& p, const std::vector<ObjectCalcer*>& parents, const KigDocument& ) const;
00058   std::vector<ObjectHolder*> build( const std::vector<ObjectCalcer*>& os, KigDocument& d, KigWidget& w ) const;
00059   void plug( KigPart* doc, KigGUIAction* kact );
00060   bool isTransform() const;
00061 };
00062 
00063 
00064 class PolygonVertexTypeConstructor
00065   : public StandardConstructorBase
00066 {
00067   const ArgsParserObjectType* mtype;
00068   ArgsParser margsparser;
00069 public:
00070   PolygonVertexTypeConstructor();
00071   ~PolygonVertexTypeConstructor();
00072 
00073   void drawprelim( const ObjectDrawer& drawer, KigPainter& p, const std::vector<ObjectCalcer*>& parents, const KigDocument& ) const;
00074   std::vector<ObjectHolder*> build( const std::vector<ObjectCalcer*>& os, KigDocument& d, KigWidget& w ) const;
00075   void plug( KigPart* doc, KigGUIAction* kact );
00076   bool isTransform() const;
00077 };
00078 
00079 class PolygonSideTypeConstructor
00080   : public StandardConstructorBase
00081 {
00082   const ArgsParserObjectType* mtype;
00083   ArgsParser margsparser;
00084 public:
00085   PolygonSideTypeConstructor();
00086   ~PolygonSideTypeConstructor();
00087 
00088   void drawprelim( const ObjectDrawer& drawer, KigPainter& p, const std::vector<ObjectCalcer*>& parents, const KigDocument& ) const;
00089   std::vector<ObjectHolder*> build( const std::vector<ObjectCalcer*>& os, KigDocument& d, KigWidget& w ) const;
00090   void plug( KigPart* doc, KigGUIAction* kact );
00091   bool isTransform() const;
00092 };
00093 
00094 class PolygonBNPTypeConstructor
00095   : public ObjectConstructor
00096 {
00097   const ObjectType* mtype;
00098 public:
00099   PolygonBNPTypeConstructor();
00100   ~PolygonBNPTypeConstructor();
00101 
00102   const QString descriptiveName() const;
00103   const QString description() const;
00104   const QByteArray iconFileName( const bool canBeNull = false ) const;
00105   bool isAlreadySelectedOK( const std::vector<ObjectCalcer*>& os, const int& ) const;
00106   int wantArgs( const std::vector<ObjectCalcer*>& os, const KigDocument& d, const KigWidget& v) const;
00107   void handleArgs( const std::vector<ObjectCalcer*>& os,
00108                            KigPart& d,
00109                            KigWidget& v
00110     ) const;
00111   QString useText( const ObjectCalcer& o, const std::vector<ObjectCalcer*>& sel,
00112                            const KigDocument& d, const KigWidget& v
00113     ) const;
00114   QString selectStatement(
00115     const std::vector<ObjectCalcer*>& sel, const KigDocument& d,
00116     const KigWidget& w ) const;
00117   void handlePrelim( KigPainter& p,
00118                              const std::vector<ObjectCalcer*>& sel,
00119                              const KigDocument& d,
00120                              const KigWidget& v
00121     ) const;
00122 
00123   void drawprelim( const ObjectDrawer& drawer, KigPainter& p, const std::vector<ObjectCalcer*>& parents, const KigDocument& ) const;
00124   std::vector<ObjectHolder*> build( const std::vector<ObjectCalcer*>& os, KigDocument& d, KigWidget& w ) const;
00125   void plug( KigPart* doc, KigGUIAction* kact );
00126   bool isTransform() const;
00127 };
00128 
00129 class PolygonBCVConstructor
00130   : public ObjectConstructor
00131 {
00132   const ObjectType* mtype;
00133 public:
00134   PolygonBCVConstructor();
00135   ~PolygonBCVConstructor();
00136 
00137   const QString descriptiveName() const;
00138   const QString description() const;
00139   const QByteArray iconFileName( const bool canBeNull = false ) const;
00140   bool isAlreadySelectedOK( const std::vector<ObjectCalcer*>& os, const int& ) const;
00141   int wantArgs( const std::vector<ObjectCalcer*>& os,
00142                               const KigDocument& d,
00143                               const KigWidget& v
00144     ) const;
00145   void handleArgs( const std::vector<ObjectCalcer*>& os,
00146                            KigPart& d,
00147                            KigWidget& v
00148     ) const;
00149   QString useText( const ObjectCalcer& o, const std::vector<ObjectCalcer*>& sel,
00150                            const KigDocument& d, const KigWidget& v
00151     ) const;
00152   QString selectStatement(
00153     const std::vector<ObjectCalcer*>& sel, const KigDocument& d,
00154     const KigWidget& w ) const;
00155   void handlePrelim( KigPainter& p,
00156                              const std::vector<ObjectCalcer*>& sel,
00157                              const KigDocument& d,
00158                              const KigWidget& v
00159     ) const;
00160   void drawprelim( const ObjectDrawer& drawer, KigPainter& p, const std::vector<ObjectCalcer*>& parents, const KigDocument& ) const;
00161   std::vector<ObjectHolder*> build( const std::vector<ObjectCalcer*>& os, KigDocument& d, KigWidget& w ) const;
00162   void plug( KigPart* doc, KigGUIAction* kact );
00163   bool isTransform() const;
00164   int computeNsides( const Coordinate& c, const Coordinate& v, const Coordinate& cntrl, int& winding ) const;
00165   Coordinate getRotatedCoord( const Coordinate& c1,
00166                const Coordinate& c2, double alpha ) const;
00167 };
00168 
00169 class MeasureTransportConstructor
00170   : public ObjectConstructor
00171 {
00172   const ObjectType* mtype;
00173 public:
00174   MeasureTransportConstructor();
00175   ~MeasureTransportConstructor();
00176 
00177   const QString descriptiveName() const;
00178   const QString description() const;
00179   const QByteArray iconFileName( const bool canBeNull = false ) const;
00180   bool isAlreadySelectedOK( const std::vector<ObjectCalcer*>& os,
00181                               const int& ) const;
00182   int wantArgs( const std::vector<ObjectCalcer*>& os,
00183                               const KigDocument& d,
00184                               const KigWidget& v
00185     ) const;
00186   void handleArgs( const std::vector<ObjectCalcer*>& os,
00187                            KigPart& d,
00188                            KigWidget& v
00189     ) const;
00190   QString useText( const ObjectCalcer& o, const std::vector<ObjectCalcer*>& sel,
00191                            const KigDocument& d, const KigWidget& v
00192     ) const;
00193   QString selectStatement(
00194     const std::vector<ObjectCalcer*>& sel, const KigDocument& d,
00195     const KigWidget& w ) const;
00196   void handlePrelim( KigPainter& p,
00197                              const std::vector<ObjectCalcer*>& sel,
00198                              const KigDocument& d,
00199                              const KigWidget& v
00200     ) const;
00201 
00202   void drawprelim( const ObjectDrawer& drawer, KigPainter& p, const std::vector<ObjectCalcer*>& parents, const KigDocument& ) const;
00203   std::vector<ObjectHolder*> build( const std::vector<ObjectCalcer*>& os, KigDocument& d, KigWidget& w ) const;
00204   void plug( KigPart* doc, KigGUIAction* kact );
00205   bool isTransform() const;
00206 };
00207 
00208 class ConicRadicalConstructor
00209   : public StandardConstructorBase
00210 {
00211   const ArgsParserObjectType* mtype;
00212   const ArgsParser mparser;
00213 public:
00214   ConicRadicalConstructor();
00215   ~ConicRadicalConstructor();
00216   QString useText( const ObjectCalcer& o, const std::vector<ObjectCalcer*>& sel, const KigDocument& d,
00217                    const KigWidget& v ) const;
00218   void drawprelim( const ObjectDrawer& drawer, KigPainter& p, const std::vector<ObjectCalcer*>& parents, const KigDocument& ) const;
00219   std::vector<ObjectHolder*> build( const std::vector<ObjectCalcer*>& os, KigDocument& d, KigWidget& w ) const;
00220   void plug( KigPart* doc, KigGUIAction* kact );
00221 
00222   bool isTransform() const;
00223 };
00224 
00225 class LocusConstructor
00226   : public StandardConstructorBase
00227 {
00228   ArgsParser margsparser;
00229 public:
00230   LocusConstructor();
00231   ~LocusConstructor();
00237   int wantArgs(
00238     const std::vector<ObjectCalcer*>& os, const KigDocument& d,
00239     const KigWidget& v
00240     ) const;
00241   QString useText( const ObjectCalcer& o, const std::vector<ObjectCalcer*>& sel, const KigDocument& d,
00242                    const KigWidget& v ) const;
00243 
00244   void drawprelim( const ObjectDrawer& drawer, KigPainter& p, const std::vector<ObjectCalcer*>& parents, const KigDocument& ) const;
00245   std::vector<ObjectHolder*> build( const std::vector<ObjectCalcer*>& os, KigDocument& d, KigWidget& w ) const;
00246   void plug( KigPart* doc, KigGUIAction* kact );
00247 
00248   bool isTransform() const;
00249 };
00250 
00251 class GenericAffinityConstructor
00252   : public MergeObjectConstructor
00253 {
00254 public:
00255   GenericAffinityConstructor();
00256   ~GenericAffinityConstructor();
00257 };
00258 
00259 class GenericProjectivityConstructor
00260   : public MergeObjectConstructor
00261 {
00262 public:
00263   GenericProjectivityConstructor();
00264   ~GenericProjectivityConstructor();
00265 };
00266 
00267 class InversionConstructor
00268   : public MergeObjectConstructor
00269 {
00270 public:
00271   InversionConstructor();
00272   ~InversionConstructor();
00273 };
00274 
00275 class GenericIntersectionConstructor
00276   : public MergeObjectConstructor
00277 {
00278 public:
00279   GenericIntersectionConstructor();
00280   ~GenericIntersectionConstructor();
00281 
00282   bool isIntersection() const;
00283 
00284   QString useText( const ObjectCalcer& o, const std::vector<ObjectCalcer*>& sel, const KigDocument& d,
00285                    const KigWidget& v ) const;
00286   QString selectStatement(
00287     const std::vector<ObjectCalcer*>& sel, const KigDocument& d,
00288     const KigWidget& w ) const;
00289 };
00290 
00291 class MidPointOfTwoPointsConstructor
00292   : public StandardConstructorBase
00293 {
00294   ArgsParser mparser;
00295 public:
00296   MidPointOfTwoPointsConstructor();
00297   ~MidPointOfTwoPointsConstructor();
00298   void drawprelim( const ObjectDrawer& drawer, KigPainter& p, const std::vector<ObjectCalcer*>& parents,
00299                    const KigDocument& ) const;
00300   std::vector<ObjectHolder*> build( const std::vector<ObjectCalcer*>& os, KigDocument& d,
00301                  KigWidget& w ) const;
00302   void plug( KigPart* doc, KigGUIAction* kact );
00303   bool isTransform() const;
00304 };
00305 
00306 class TestConstructor
00307   : public StandardConstructorBase
00308 {
00309   const ArgsParserObjectType* mtype;
00310 public:
00311   TestConstructor( const ArgsParserObjectType* type, const char* descname,
00312     const char* desc, const char* iconfile );
00313   ~TestConstructor();
00314   void drawprelim( const ObjectDrawer& drawer, KigPainter& p, const std::vector<ObjectCalcer*>& parents,
00315                    const KigDocument& ) const;
00316   std::vector<ObjectHolder*> build( const std::vector<ObjectCalcer*>& os, KigDocument& d,
00317                  KigWidget& w ) const;
00318   int wantArgs( const std::vector<ObjectCalcer*>& os,
00319                       const KigDocument& d, const KigWidget& v ) const;
00320   void plug( KigPart* doc, KigGUIAction* kact );
00321   bool isTransform() const;
00322   bool isTest() const;
00323 
00324   BaseConstructMode* constructMode( KigPart& doc );
00325 };
00326 
00327 class TangentConstructor
00328   : public MergeObjectConstructor
00329 {
00330 public:
00331   TangentConstructor();
00332   ~TangentConstructor();
00333 
00334   QString useText( const ObjectCalcer& o, const std::vector<ObjectCalcer*>& sel, const KigDocument& d,
00335                    const KigWidget& v ) const;
00336 //  QString selectStatement(
00337 //    const std::vector<ObjectCalcer*>& sel, const KigDocument& d,
00338 //    const KigWidget& w ) const;
00339 };
00340 
00341 class CocConstructor
00342   : public MergeObjectConstructor
00343 {
00344 public:
00345   CocConstructor();
00346   ~CocConstructor();
00347 
00348   QString useText( const ObjectCalcer& o, const std::vector<ObjectCalcer*>& sel, const KigDocument& d,
00349                    const KigWidget& v ) const;
00350 //  QString selectStatement(
00351 //    const std::vector<ObjectCalcer*>& sel, const KigDocument& d,
00352 //    const KigWidget& w ) const;
00353 };
00354 
00355 bool relativePrimes( int n, int p );
00356 
00357 std::vector<ObjectCalcer*> 
00358 removeDuplicatedPoints( std::vector<ObjectCalcer*> points );
00359 bool coincidentPoints( const ObjectImp* p1, const ObjectImp* p2 );
00360 
00361 #endif

kig

Skip menu "kig"
  • Main Page
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members

kdeedu

Skip menu "kdeedu"
  • kalzium
  • kanagram
  • kig
  •   lib
  • klettres
  • kstars
  • libkdeedu
  •   keduvocdocument
  •   docs
  •   src
  • parley
  •   stepcore
Generated for kdeedu by doxygen 1.5.7
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal