Sketcher: Separate ExternalGeometryExtension interface from class
This commit is contained in:
committed by
abdullahtahiriyo
parent
10102f45f7
commit
93dee6ccd7
@@ -33,7 +33,7 @@ using namespace Sketcher;
|
||||
|
||||
//---------- Geometry Extension
|
||||
|
||||
constexpr std::array<const char *,ExternalGeometryExtension::NumFlags> ExternalGeometryExtension::flag2str;
|
||||
constexpr std::array<const char *, ISketchExternalGeometryExtension::NumFlags> ISketchExternalGeometryExtension::flag2str;
|
||||
|
||||
TYPESYSTEM_SOURCE(Sketcher::ExternalGeometryExtension,Part::GeometryExtension)
|
||||
|
||||
|
||||
@@ -25,13 +25,13 @@
|
||||
|
||||
#include <Mod/Part/App/Geometry.h>
|
||||
#include <array>
|
||||
#include <bitset>
|
||||
|
||||
namespace Sketcher
|
||||
{
|
||||
|
||||
class SketcherExport ExternalGeometryExtension : public Part::GeometryExtension
|
||||
class ISketchExternalGeometryExtension
|
||||
{
|
||||
TYPESYSTEM_HEADER_WITH_OVERRIDE();
|
||||
public:
|
||||
// START_CREDIT_BLOCK: Credit under LGPL for this block to Zheng, Lei (realthunder) <realthunder.dev@gmail.com>
|
||||
enum Flag {
|
||||
@@ -46,6 +46,25 @@ public:
|
||||
|
||||
constexpr static std::array<const char *,NumFlags> flag2str {{ "Defining", "Frozen", "Detached","Missing", "Sync" }};
|
||||
|
||||
public:
|
||||
// Identification information
|
||||
// START_CREDIT_BLOCK: Credit under LGPL for this block to Zheng, Lei (realthunder) <realthunder.dev@gmail.com>
|
||||
virtual bool testFlag(int flag) const = 0;
|
||||
virtual void setFlag(int flag, bool v=true) = 0;
|
||||
// END_CREDIT_BLOCK: Credit under LGPL for this block to Zheng, Lei (realthunder) <realthunder.dev@gmail.com>
|
||||
|
||||
virtual bool isClear() const = 0;
|
||||
virtual size_t flagSize() const = 0;
|
||||
|
||||
virtual const std::string& getRef() const = 0;
|
||||
virtual void setRef(const std::string & ref) = 0;
|
||||
};
|
||||
|
||||
class SketcherExport ExternalGeometryExtension : public Part::GeometryExtension, public ISketchExternalGeometryExtension
|
||||
{
|
||||
TYPESYSTEM_HEADER_WITH_OVERRIDE();
|
||||
public:
|
||||
|
||||
ExternalGeometryExtension() = default;
|
||||
virtual ~ExternalGeometryExtension() override = default;
|
||||
|
||||
@@ -59,15 +78,15 @@ public:
|
||||
virtual PyObject *getPyObject(void) override;
|
||||
|
||||
// START_CREDIT_BLOCK: Credit under LGPL for this block to Zheng, Lei (realthunder) <realthunder.dev@gmail.com>
|
||||
bool testFlag(int flag) const { return Flags.test((size_t)(flag)); }
|
||||
void setFlag(int flag, bool v=true) { Flags.set((size_t)(flag),v); }
|
||||
virtual bool testFlag(int flag) const override { return Flags.test((size_t)(flag)); }
|
||||
virtual void setFlag(int flag, bool v=true) override { Flags.set((size_t)(flag),v); }
|
||||
// END_CREDIT_BLOCK: Credit under LGPL for this block to Zheng, Lei (realthunder) <realthunder.dev@gmail.com>
|
||||
|
||||
bool isClear() const {return Flags.none();}
|
||||
size_t flagSize() const {return Flags.size();}
|
||||
virtual bool isClear() const override {return Flags.none();}
|
||||
virtual size_t flagSize() const override {return Flags.size();}
|
||||
|
||||
const std::string& getRef() const {return Ref;}
|
||||
void setRef(const std::string & ref) {Ref = ref;}
|
||||
virtual const std::string& getRef() const override {return Ref;}
|
||||
virtual void setRef(const std::string & ref) override {Ref = ref;}
|
||||
|
||||
private:
|
||||
ExternalGeometryExtension(const ExternalGeometryExtension&) = default;
|
||||
|
||||
@@ -55,7 +55,7 @@ std::string ExternalGeometryExtensionPy::representation(void) const
|
||||
|
||||
bool first=true;
|
||||
|
||||
for(size_t i=0;i<ExternalGeometryExtension::NumFlags;i++) {
|
||||
for(size_t i=0;i<ISketchExternalGeometryExtension::NumFlags;i++) {
|
||||
if(getExternalGeometryExtensionPtr()->testFlag(i)) {
|
||||
if(first) {
|
||||
first=false;
|
||||
|
||||
Reference in New Issue
Block a user