📄 rs_python_wrappers.cpp
字号:
class_<RS_Pen, bases<RS_Flags> >("Pen") .def(init<const RS_Color&, RS2::LineWidth, RS2::LineType>()) .add_property("lineType", &RS_Pen::getLineType, &RS_Pen::setLineType) .add_property("width", &RS_Pen::getWidth, &RS_Pen::setWidth) .add_property("screenWidth", &RS_Pen::getScreenWidth, &RS_Pen::setScreenWidth) .add_property("color", make_function(&RS_Pen::getColor, return_value_policy<reference_existing_object>()), &RS_Pen::setColor) .add_property("valid", &RS_Pen::isValid) ; /* Common stuff */ class_<RS_EntityContainer>("EntityContainer", init<RS_EntityContainer*, optional<bool> >()) /* Wrapper functions for ownership transfer */ .def("addEntity", RS_EntityContainer_addArc) .def("addEntity", RS_EntityContainer_addBlock) .def("addEntity", RS_EntityContainer_addCircle) .def("addEntity", RS_EntityContainer_addConstructionLine) .def("addEntity", RS_EntityContainer_addEllipse) .def("addEntity", RS_EntityContainer_addImage) .def("addEntity", RS_EntityContainer_addLine) .def("addEntity", RS_EntityContainer_addPoint) .def("addEntity", RS_EntityContainer_addPolyline) /** Owner-Containers will automatically delete entities upon removing, * so no problem here. Other containers are not allowed in Python at the moment. */ .def("removeEntity", &RS_EntityContainer::removeEntity) /* Standard wrappers */ .def("clear", &RS_EntityContainer::clear) .add_property("empty", &RS_EntityContainer::isEmpty) .def("entityAt", &RS_EntityContainer::entityAt, return_value_policy<reference_existing_object>()) /* Iterators */ .def("firstEntity", &RS_EntityContainer::firstEntity, return_value_policy<reference_existing_object>()) .def("lastEntity", &RS_EntityContainer::lastEntity, return_value_policy<reference_existing_object>()) .def("nextEntity", &RS_EntityContainer::nextEntity, return_value_policy<reference_existing_object>()) ; class_<RS_LayerData>("LayerData") .def(init<const RS_String&, const RS_Pen&, bool>()) .def_readwrite("name", &RS_LayerData::name) .def_readwrite("pen", &RS_LayerData::pen) .def_readwrite("frozen", &RS_LayerData::frozen) ; class_<RS_Layer, std::auto_ptr<RS_Layer> >("Layer", init<const RS_String&>()) .add_property("name", &RS_Layer::getName, &RS_Layer::setName) .add_property("pen", &RS_Layer::getPen, &RS_Layer::setPen) .add_property("frozen", &RS_Layer::isFrozen, &RS_Layer::freeze) .add_property("toggle", &RS_Layer::toggle) ; class_<RS_LayerList>("LayerList") .def("clear", &RS_LayerList::clear) .def("count", &RS_LayerList::count) .def("at", &RS_LayerList::at, return_value_policy<reference_existing_object>()) .add_property("active", make_function(&RS_LayerList::getActive, return_value_policy<reference_existing_object>()), RS_LayerList_activate_layer) .def("activate", RS_LayerList_activate_string) .def("activate", RS_LayerList_activate_layer) .def("add", RS_LayerList_add) .def("remove", &RS_LayerList::remove) .def("edit", &RS_LayerList::edit) .def("find", &RS_LayerList::find, return_value_policy<reference_existing_object>()) .def("toggle", RS_LayerList_toggle_string) .def("toggle", RS_LayerList_toggle_layer) .def("freezeAll", &RS_LayerList::freezeAll) ; class_<RS_Document, bases<RS_EntityContainer>, boost::noncopyable >("Document", no_init) .add_property("layerList", make_function(&RS_Document::getLayerList, return_value_policy<reference_existing_object>())) .add_property("blockList", make_function(&RS_Document::getBlockList, return_value_policy<reference_existing_object>())) .def("newDoc", &RS_Document::newDoc) .def("save", &RS_Document::save) .def("saveAs", &RS_Document::saveAs) .def("open", &RS_Document::open) .add_property("modified", &RS_Document::isModified) .add_property("activePen", &RS_Document::getActivePen, &RS_Document::setActivePen) .add_property("filename", &RS_Document::getFilename) ; class_<RS_Graphic, bases<RS_Document> >("Graphic", init<RS_EntityContainer*>()) .def("count", &RS_Graphic::count) .def("findLayer", &RS_Graphic::findLayer, return_value_policy<reference_existing_object>()) .def("editLayer", &RS_Graphic::editLayer) .def("addLayer", RS_Graphic_addLayer) .def("removeLayer", &RS_Graphic::removeLayer) .def("toggleLayer", RS_Graphic_toggleLayer_string) .def("toggleLayer", RS_Graphic_toggleLayer_layer) .def("clearLayers", &RS_Graphic::clearLayers) .def("freezeAllLayers", &RS_Graphic::freezeAllLayers) ; /* Entity types */ class_<RS_Entity, boost::noncopyable>("Entity", no_init) .def("init", &RS_Entity::init) .def("initId", &RS_Entity::initId) .def("clone", &RS_Entity::clone, return_value_policy<reference_existing_object>()) .def("reparent", &RS_Entity::reparent) .def("resetBorders", &RS_Entity::resetBorders) .add_property("id", &RS_Entity::getId) .add_property("count", &RS_Entity::count) .add_property("parent", make_function(&RS_Entity::getParent, return_value_policy<reference_existing_object>()), &RS_Entity::setParent) .add_property("graphic", make_function(&RS_Entity::getGraphic, return_value_policy<reference_existing_object>())) .add_property("block", make_function(&RS_Entity::getBlock, return_value_policy<reference_existing_object>())) .add_property("insert", make_function(&RS_Entity::getInsert, return_value_policy<reference_existing_object>())) .add_property("blockOrInsert", make_function(&RS_Entity::getBlockOrInsert, return_value_policy<reference_existing_object>())) .add_property("document", make_function(&RS_Entity::getDocument, return_value_policy<reference_existing_object>())) .add_property("layer", make_function(&RS_Entity::getLayer, return_value_policy<reference_existing_object>()), RS_Entity_setLayer_layer) .def("setLayer", RS_Entity_setLayer_string) .def("setLayer", RS_Entity_setLayer_layer) .def("setLayerToActive", &RS_Entity::setLayerToActive) .add_property("isContainer", &RS_Entity::isContainer) .add_property("isAtomic", &RS_Entity::isAtomic) .add_property("isEdge", &RS_Entity::isEdge) .add_property("isDocument", &RS_Entity::isDocument) .add_property("selected", &RS_Entity::isSelected, &RS_Entity::setSelected) .def("toggleSelected", &RS_Entity::toggleSelected) .add_property("processed", &RS_Entity::isProcessed, &RS_Entity::setProcessed) .add_property("visible", &RS_Entity::isVisible, &RS_Entity::setVisible) .add_property("min", &RS_Entity::getMin) .add_property("max", &RS_Entity::getMax) .add_property("size", &RS_Entity::getSize) .def("move", &RS_Entity::move) .def("rotate", &RS_Entity::rotate) .def("calculateBorders", &RS_Entity::calculateBorders) ; class_<RS_AtomicEntity, bases<RS_Entity>, boost::noncopyable>("AtomicEntity", no_init) .add_property("startpointSelected", &RS_AtomicEntity::isStartpointSelected) .add_property("endpointSelected", &RS_AtomicEntity::isEndpointSelected) .def("moveStartpoint", &RS_AtomicEntity::moveStartpoint) .def("moveEndpoint", &RS_AtomicEntity::moveEndpoint) .add_property("trimPoint", &RS_AtomicEntity::getTrimPoint) .def("reverse", &RS_AtomicEntity::reverse) ; /* Entities Data */ class_<RS_ArcData>("ArcData") .def(init<RS_Vector&, double, double, double, bool>()) .def("reset", &RS_ArcData::reset) .add_property("valid", &RS_ArcData::isValid) .def_readwrite("center", &RS_ArcData::center) .def_readwrite("radius", &RS_ArcData::radius) .def_readwrite("angle1", &RS_ArcData::angle1) .def_readwrite("angle2", &RS_ArcData::angle2) .def_readwrite("reversed", &RS_ArcData::reversed) ; class_<RS_BlockData>("BlockData") .def(init<RS_String&, const RS_Vector&, bool>()) .add_property("valid", &RS_BlockData::isValid) .def_readwrite("name", &RS_BlockData::name) .def_readwrite("basePoint", &RS_BlockData::basePoint) .def_readwrite("frozen", &RS_BlockData::frozen) ; class_<RS_CircleData>("CircleData") .def(init<RS_Vector&, double>()) .def("reset", &RS_CircleData::reset) .add_property("valid", &RS_CircleData::isValid) .def_readwrite("center", &RS_CircleData::center) .def_readwrite("radius", &RS_CircleData::radius) ; class_<RS_ConstructionLineData>("ConstructionLineData") .def(init<RS_Vector&, RS_Vector&>()) ; class_<RS_EllipseData>("EllipseData", init<const RS_Vector&, const RS_Vector&, double, double, double, bool>()) ; class_<RS_ImageData>("ImageData") .def(init<int, const RS_Vector&, const RS_Vector&, const RS_Vector&, const RS_Vector&, const RS_String&, int, int, int>()) .def_readwrite("handle", &RS_ImageData::handle) .def_readwrite("insertionPoint", &RS_ImageData::insertionPoint) .def_readwrite("uVector", &RS_ImageData::uVector) .def_readwrite("vVector", &RS_ImageData::vVector) .def_readwrite("size", &RS_ImageData::size) .def_readwrite("file", &RS_ImageData::file) .def_readwrite("brightness", &RS_ImageData::brightness) .def_readwrite("contrast", &RS_ImageData::contrast) .def_readwrite("fade", &RS_ImageData::fade) ; class_<RS_LineData>("LineData") .def(init<RS_Vector&, RS_Vector&>()) .def_readwrite("startpoint", &RS_LineData::startpoint) .def_readwrite("endpoint", &RS_LineData::endpoint) ; class_<RS_PointData>("PointData", init<const RS_Vector&>()) ; class_<RS_PolylineData>("PolylineData") .def(init<const RS_Vector&, const RS_Vector&, bool>()) ; /* Entities */ class_<RS_Arc, bases<RS_AtomicEntity>, std::auto_ptr<RS_Arc> >("Arc", init<RS_EntityContainer*, RS_ArcData&>()) .add_property("data", &RS_Arc::getData, &RS_Arc::setData) .add_property("center", &RS_Arc::getCenter, &RS_Arc::setCenter) .add_property("radius", &RS_Arc::getRadius, &RS_Arc::setRadius) .add_property("angle1", &RS_Arc::getAngle1, &RS_Arc::setAngle1) .add_property("angle2", &RS_Arc::getAngle2, &RS_Arc::setAngle2) .add_property("direction1", &RS_Arc::getDirection1) .add_property("direction2", &RS_Arc::getDirection2) .add_property("reversed", &RS_Arc::isReversed, &RS_Arc::setReversed) .add_property("middlepoint", &RS_Arc::getMiddlepoint) .add_property("angleLength", &RS_Arc::getAngleLength) .add_property("length", &RS_Arc::getLength) .add_property("bulge", &RS_Arc::getBulge) .def("createFrom3P", &RS_Arc::createFrom3P) ; class_<RS_Block, bases<RS_Document>, std::auto_ptr<RS_Block> >("Block", init<RS_EntityContainer*, const RS_BlockData&>()) .add_property("name", &RS_Block::getName, &RS_Block::setName) .add_property("basePoint", &RS_Block::getBasePoint) .add_property("frozen", &RS_Block::isFrozen, &RS_Block::freeze) .def("toggle", &RS_Block::toggle) ; class_<RS_Circle, bases<RS_AtomicEntity>, std::auto_ptr<RS_Circle> >("Circle", init<RS_EntityContainer*, const RS_CircleData&>()) .add_property("data", &RS_Circle::getData) .add_property("center", &RS_Circle::getCenter, &RS_Circle::setCenter) .add_property("radius", &RS_Circle::getRadius, &RS_Circle::setRadius) .add_property("angleLength", &RS_Circle::getAngleLength) .def("createFromCR", &RS_Circle::createFromCR) .def("createFrom2P", &RS_Circle::createFrom2P) .def("createFrom3P", &RS_Circle::createFrom3P) ; class_<RS_ConstructionLine, bases<RS_AtomicEntity>, std::auto_ptr<RS_ConstructionLine> > ("ConstructionLine", init<RS_EntityContainer*, const RS_ConstructionLineData&>()) .add_property("data", &RS_ConstructionLine::getData) .add_property("point1", &RS_ConstructionLine::getPoint1) .add_property("point2", &RS_ConstructionLine::getPoint2) ; class_<RS_Ellipse, bases<RS_AtomicEntity>, std::auto_ptr<RS_Ellipse> > ("Ellipse", init<RS_EntityContainer*, const RS_EllipseData&>()) .add_property("data", &RS_Ellipse::getData) .add_property("reversed", &RS_Ellipse::isReversed, &RS_Ellipse::setReversed) .add_property("angle", &RS_Ellipse::getAngle) .add_property("angle1", &RS_Ellipse::getAngle1, &RS_Ellipse::setAngle1) .add_property("angle2", &RS_Ellipse::getAngle2, &RS_Ellipse::setAngle2) .add_property("center", &RS_Ellipse::getCenter, &RS_Ellipse::setCenter) .add_property("majorP", &RS_Ellipse::getMajorP, &RS_Ellipse::setMajorP) .add_property("ratio", &RS_Ellipse::getRatio, &RS_Ellipse::setRatio) .add_property("majorRadius", &RS_Ellipse::getMajorRadius) .add_property("minorRadius", &RS_Ellipse::getMinorRadius) ; class_<RS_Image, bases<RS_AtomicEntity>, std::auto_ptr<RS_Image> > ("Image", init<RS_EntityContainer*, const RS_ImageData&>()) .add_property("data", &RS_Image::getData) .add_property("insertionPoint", &RS_Image::getInsertionPoint, &RS_Image::setInsertionPoint) .add_property("file", &RS_Image::getFile, &RS_Image::setFile) .add_property("uVector", &RS_Image::getUVector) .add_property("vVector", &RS_Image::getVVector) .add_property("width", &RS_Image::getWidth) .add_property("height", &RS_Image::getHeight) .add_property("brightness", &RS_Image::getBrightness) .add_property("contrast", &RS_Image::getContrast) .add_property("fade", &RS_Image::getFade) .add_property("handle", &RS_Image::getHandle, &RS_Image::setHandle) .add_property("imageWidth", &RS_Image::getImageWidth) .add_property("imageHeight", &RS_Image::getImageHeight) ; class_<RS_Line, bases<RS_AtomicEntity>, std::auto_ptr<RS_Line> > ("Line", init<RS_EntityContainer*, const RS_LineData&>()) .add_property("data", &RS_Line::getData) .add_property("startpoint", &RS_Line::getStartpoint, &RS_Line::setStartpoint) .add_property("endpoint", &RS_Line::getEndpoint, &RS_Line::setEndpoint) ; class_<RS_Point, bases<RS_AtomicEntity>, std::auto_ptr<RS_Point> > ("Point", init<RS_EntityContainer*, const RS_PointData&>()) .add_property("pos", &RS_Point::getPos, &RS_Point::setPos) ; class_<RS_Polyline, bases<RS_EntityContainer>, std::auto_ptr<RS_Polyline> > ("Polyline", init<RS_EntityContainer*, const RS_PolylineData&>()) .def(init<RS_EntityContainer*>()) .add_property("startpoint", &RS_Polyline::getStartpoint, &RS_Polyline::setStartpoint) .add_property("endpoint", &RS_Polyline::getEndpoint) .add_property("closed", &RS_Polyline::isClosed) .def("addVertex", &RS_Polyline::addVertex, return_value_policy<reference_existing_object>()) .def("createVertex", &RS_Polyline::createVertex, return_value_policy<reference_existing_object>()) .def("endPolyline", &RS_Polyline::endPolyline) ;}#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -