Sketcher: Addition of layerId field to SketcherGeometryExtension, GeometryFacade and ExternalGeometryFacade, and their Python wrappers
This commit is contained in:
@@ -90,6 +90,9 @@ public:
|
||||
virtual bool testGeometryMode(int flag) const override { return getGeoExt()->testGeometryMode(flag); }
|
||||
virtual void setGeometryMode(int flag, bool v=true) override { getGeoExt()->setGeometryMode(flag, v); }
|
||||
|
||||
virtual int getGeometryLayerId() const override { return getGeoExt()->getGeometryLayerId();}
|
||||
virtual void setGeometryLayerId(int geolayer) override { getGeoExt()->setGeometryLayerId(geolayer);}
|
||||
|
||||
// Convenience accessor
|
||||
bool getBlocked() const { return this->testGeometryMode(GeometryMode::Blocked);}
|
||||
void setBlocked(bool status = true) {this->setGeometryMode(GeometryMode::Blocked, status);}
|
||||
|
||||
@@ -47,6 +47,14 @@
|
||||
</Documentation>
|
||||
<Parameter Name="Construction" Type="Boolean"/>
|
||||
</Attribute>
|
||||
<Attribute Name="GeometryLayerId" ReadOnly="false">
|
||||
<Documentation>
|
||||
<UserDocu>
|
||||
Returns the Id of the geometry Layer in which the geometry is located.
|
||||
</UserDocu>
|
||||
</Documentation>
|
||||
<Parameter Name="GeometryLayerId" Type="Long"/>
|
||||
</Attribute>
|
||||
<Attribute Name="InternalType" ReadOnly="false">
|
||||
<Documentation>
|
||||
<UserDocu>
|
||||
|
||||
@@ -506,6 +506,16 @@ void ExternalGeometryFacadePy::setConstruction(Py::Boolean arg)
|
||||
getExternalGeometryFacadePtr()->setConstruction(arg);
|
||||
}
|
||||
|
||||
Py::Long ExternalGeometryFacadePy::getGeometryLayerId(void) const
|
||||
{
|
||||
return Py::Long(this->getExternalGeometryFacadePtr()->getGeometryLayerId());
|
||||
}
|
||||
|
||||
void ExternalGeometryFacadePy::setGeometryLayerId(Py::Long Id)
|
||||
{
|
||||
this->getExternalGeometryFacadePtr()->setGeometryLayerId(long(Id));
|
||||
}
|
||||
|
||||
Py::String ExternalGeometryFacadePy::getTag(void) const
|
||||
{
|
||||
std::string tmp = boost::uuids::to_string(getExternalGeometryFacadePtr()->getTag());
|
||||
|
||||
@@ -147,6 +147,9 @@ public:
|
||||
virtual bool testGeometryMode(int flag) const override { return getGeoExt()->testGeometryMode(flag); }
|
||||
virtual void setGeometryMode(int flag, bool v=true) override { getGeoExt()->setGeometryMode(flag, v); }
|
||||
|
||||
virtual int getGeometryLayerId() const override { return getGeoExt()->getGeometryLayerId();}
|
||||
virtual void setGeometryLayerId(int geolayer) override { getGeoExt()->setGeometryLayerId(geolayer);}
|
||||
|
||||
// Convenience accessor
|
||||
bool getBlocked() const { return this->testGeometryMode(GeometryMode::Blocked);}
|
||||
void setBlocked(bool status = true) {this->setGeometryMode(GeometryMode::Blocked, status);}
|
||||
|
||||
@@ -56,6 +56,14 @@
|
||||
</Documentation>
|
||||
<Parameter Name="Construction" Type="Boolean"/>
|
||||
</Attribute>
|
||||
<Attribute Name="GeometryLayerId" ReadOnly="false">
|
||||
<Documentation>
|
||||
<UserDocu>
|
||||
Returns the Id of the geometry Layer in which the geometry is located.
|
||||
</UserDocu>
|
||||
</Documentation>
|
||||
<Parameter Name="GeometryLayerId" Type="Long"/>
|
||||
</Attribute>
|
||||
<Methode Name="mirror">
|
||||
<Documentation>
|
||||
<UserDocu>Performs the symmetrical transformation of this geometric object</UserDocu>
|
||||
|
||||
@@ -483,6 +483,16 @@ void GeometryFacadePy::setConstruction(Py::Boolean arg)
|
||||
getGeometryFacadePtr()->setConstruction(arg);
|
||||
}
|
||||
|
||||
Py::Long GeometryFacadePy::getGeometryLayerId(void) const
|
||||
{
|
||||
return Py::Long(this->getGeometryFacadePtr()->getGeometryLayerId());
|
||||
}
|
||||
|
||||
void GeometryFacadePy::setGeometryLayerId(Py::Long Id)
|
||||
{
|
||||
this->getGeometryFacadePtr()->setGeometryLayerId(long(Id));
|
||||
}
|
||||
|
||||
Py::String GeometryFacadePy::getTag(void) const
|
||||
{
|
||||
std::string tmp = boost::uuids::to_string(getGeometryFacadePtr()->getTag());
|
||||
|
||||
@@ -41,12 +41,16 @@ TYPESYSTEM_SOURCE(Sketcher::SketchGeometryExtension,Part::GeometryPersistenceExt
|
||||
// scoped within the class, multithread ready
|
||||
std::atomic<long> SketchGeometryExtension::_GeometryID;
|
||||
|
||||
SketchGeometryExtension::SketchGeometryExtension():Id(++SketchGeometryExtension::_GeometryID),InternalGeometryType(InternalType::None)
|
||||
SketchGeometryExtension::SketchGeometryExtension(): Id(++SketchGeometryExtension::_GeometryID),
|
||||
InternalGeometryType(InternalType::None),
|
||||
GeometryLayer(0)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
SketchGeometryExtension::SketchGeometryExtension(long cid):Id(cid),InternalGeometryType(InternalType::None)
|
||||
SketchGeometryExtension::SketchGeometryExtension(long cid): Id(cid),
|
||||
InternalGeometryType(InternalType::None),
|
||||
GeometryLayer(0)
|
||||
{
|
||||
|
||||
}
|
||||
@@ -58,6 +62,7 @@ void SketchGeometryExtension::copyAttributes(Part::GeometryExtension * cpy) cons
|
||||
static_cast<SketchGeometryExtension *>(cpy)->Id = this->Id;
|
||||
static_cast<SketchGeometryExtension *>(cpy)->InternalGeometryType = this->InternalGeometryType;
|
||||
static_cast<SketchGeometryExtension *>(cpy)->GeometryModeFlags = this->GeometryModeFlags;
|
||||
static_cast<SketchGeometryExtension *>(cpy)->GeometryLayer = this->GeometryLayer;
|
||||
}
|
||||
|
||||
void SketchGeometryExtension::restoreAttributes(Base::XMLReader &reader)
|
||||
@@ -70,6 +75,10 @@ void SketchGeometryExtension::restoreAttributes(Base::XMLReader &reader)
|
||||
InternalGeometryType = (InternalType::InternalType) reader.getAttributeAsInteger("internalGeometryType");
|
||||
|
||||
GeometryModeFlags = GeometryModeFlagType(reader.getAttribute("geometryModeFlags"));
|
||||
|
||||
if(reader.hasAttribute("geometryLayer"))
|
||||
GeometryLayer = reader.getAttributeAsInteger("geometryLayer");
|
||||
|
||||
}
|
||||
|
||||
void SketchGeometryExtension::saveAttributes(Base::Writer &writer) const
|
||||
@@ -78,7 +87,8 @@ void SketchGeometryExtension::saveAttributes(Base::Writer &writer) const
|
||||
|
||||
writer.Stream() // << "\" id=\"" << Id // This is removed as the stored Id is not used and it may interfere with RT's future implementation
|
||||
<< "\" internalGeometryType=\"" << (int) InternalGeometryType
|
||||
<< "\" geometryModeFlags=\"" << GeometryModeFlags.to_string();
|
||||
<< "\" geometryModeFlags=\"" << GeometryModeFlags.to_string()
|
||||
<< "\" geometryLayer=\"" << GeometryLayer;
|
||||
}
|
||||
|
||||
std::unique_ptr<Part::GeometryExtension> SketchGeometryExtension::copy(void) const
|
||||
|
||||
@@ -71,6 +71,9 @@ public:
|
||||
// Geometry functional mode
|
||||
virtual bool testGeometryMode(int flag) const = 0;
|
||||
virtual void setGeometryMode(int flag, bool v=true) = 0;
|
||||
|
||||
virtual int getGeometryLayerId() const = 0;
|
||||
virtual void setGeometryLayerId(int geolayer) = 0;
|
||||
};
|
||||
|
||||
class SketcherExport SketchGeometryExtension : public Part::GeometryPersistenceExtension, private ISketchGeometryExtension
|
||||
@@ -95,6 +98,9 @@ public:
|
||||
virtual bool testGeometryMode(int flag) const override { return GeometryModeFlags.test((size_t)(flag)); };
|
||||
virtual void setGeometryMode(int flag, bool v=true) override { GeometryModeFlags.set((size_t)(flag), v); };
|
||||
|
||||
virtual int getGeometryLayerId() const override { return GeometryLayer;}
|
||||
virtual void setGeometryLayerId(int geolayer) override { GeometryLayer = geolayer;}
|
||||
|
||||
constexpr static std::array<const char *,InternalType::NumInternalGeometryType> internaltype2str {{ "None", "EllipseMajorDiameter", "EllipseMinorDiameter","EllipseFocus1", "EllipseFocus2", "HyperbolaMajor", "HyperbolaMinor", "HyperbolaFocus", "ParabolaFocus", "BSplineControlPoint", "BSplineKnotPoint" }};
|
||||
|
||||
constexpr static std::array<const char *,GeometryMode::NumGeometryMode> geometrymode2str {{ "Blocked", "Construction" }};
|
||||
@@ -116,6 +122,7 @@ private:
|
||||
long Id;
|
||||
InternalType::InternalType InternalGeometryType;
|
||||
GeometryModeFlagType GeometryModeFlags;
|
||||
int GeometryLayer;
|
||||
|
||||
private:
|
||||
static std::atomic<long> _GeometryID;
|
||||
|
||||
@@ -55,5 +55,13 @@
|
||||
</Documentation>
|
||||
<Parameter Name="Construction" Type="Boolean"/>
|
||||
</Attribute>
|
||||
<Attribute Name="GeometryLayerId" ReadOnly="false">
|
||||
<Documentation>
|
||||
<UserDocu>
|
||||
Returns the Id of the geometry Layer in which the geometry is located.
|
||||
</UserDocu>
|
||||
</Documentation>
|
||||
<Parameter Name="GeometryLayerId" Type="Long"/>
|
||||
</Attribute>
|
||||
</PythonExport>
|
||||
</GenerateModel>
|
||||
|
||||
@@ -173,6 +173,16 @@ PyObject* SketchGeometryExtensionPy::setGeometryMode(PyObject *args)
|
||||
Py_Return;
|
||||
}
|
||||
|
||||
Py::Long SketchGeometryExtensionPy::getGeometryLayerId(void) const
|
||||
{
|
||||
return Py::Long(this->getSketchGeometryExtensionPtr()->getGeometryLayerId());
|
||||
}
|
||||
|
||||
void SketchGeometryExtensionPy::setGeometryLayerId(Py::Long Id)
|
||||
{
|
||||
this->getSketchGeometryExtensionPtr()->setGeometryLayerId(long(Id));
|
||||
}
|
||||
|
||||
PyObject *SketchGeometryExtensionPy::getCustomAttributes(const char* /*attr*/) const
|
||||
{
|
||||
return 0;
|
||||
@@ -182,3 +192,4 @@ int SketchGeometryExtensionPy::setCustomAttributes(const char* /*attr*/, PyObjec
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user