GeomAlgoAPI_ShapeAPI.h
GeomAlgoAPI_Exception.h
GeomAlgoAPI_Box.h
- GeomAlgoAPI_BoxPoints.h
GeomAlgoAPI_XAOExport.h
GeomAlgoAPI_XAOImport.h
GeomAlgoAPI_Copy.h
+ GeomAlgoAPI_ChangeOrientation.h
+ GeomAlgoAPI_DivideEdge.h
)
SET(PROJECT_SOURCES
GeomAlgoAPI_ShapeAPI.cpp
GeomAlgoAPI_Exception.cpp
GeomAlgoAPI_Box.cpp
- GeomAlgoAPI_BoxPoints.cpp
GeomAlgoAPI_XAOExport.cpp
GeomAlgoAPI_XAOImport.cpp
GeomAlgoAPI_Copy.cpp
+ GeomAlgoAPI_ChangeOrientation.cpp
+ GeomAlgoAPI_DivideEdge.cpp
)
SET(PROJECT_LIBRARIES
myDx = theDx;
myDy = theDy;
myDz = theDz;
+ myMethodType = MethodType::BOX_DIM;
+}
+
+//=================================================================================================
+GeomAlgoAPI_Box::GeomAlgoAPI_Box(std::shared_ptr<GeomAPI_Pnt> theFirstPoint,
+ std::shared_ptr<GeomAPI_Pnt> theSecondPoint)
+:GeomAlgoAPI_Box()
+{
+ myFirstPoint = theFirstPoint;
+ mySecondPoint = theSecondPoint;
+ myMethodType = MethodType::BOX_POINTS;
}
//=================================================================================================
bool GeomAlgoAPI_Box::check()
{
- if (myDx < Precision::Confusion()) {
- myError = "Box builder with dimensions :: Dx is null.";
- return false;
- } else if (myDy < Precision::Confusion()) {
- myError = "Box builder with dimensions :: Dy is null.";
- return false;
- } else if (myDz < Precision::Confusion()) {
- myError = "Box builder with dimensions :: Dz is null.";
+ if (myMethodType == MethodType::BOX_DIM) {
+ if (myDx < Precision::Confusion()) {
+ myError = "Box builder with dimensions :: Dx is null.";
+ return false;
+ } else if (myDy < Precision::Confusion()) {
+ myError = "Box builder with dimensions :: Dy is null.";
+ return false;
+ } else if (myDz < Precision::Confusion()) {
+ myError = "Box builder with dimensions :: Dz is null.";
+ return false;
+ }
+ } else if (myMethodType == MethodType::BOX_POINTS) {
+ if (myFirstPoint->distance(mySecondPoint) < Precision::Confusion()) {
+ myError = "Box builder with points :: the distance between the two points is null.";
+ return false;
+ }
+ } else {
+ myError = "Box builder :: Method not implemented.";
return false;
}
return true;
//=================================================================================================
void GeomAlgoAPI_Box::build()
+{
+ if (myMethodType == MethodType::BOX_DIM) {
+ buildWithDimensions();
+ } else if (myMethodType == MethodType::BOX_POINTS) {
+ buildWithPoints();
+ } else {
+ myError = "Box builder :: Method not implemented.";
+ return;
+ }
+}
+
+//=================================================================================================
+void GeomAlgoAPI_Box::buildWithDimensions()
{
myCreatedFaces.clear();
setDone(true);
}
+
+//=================================================================================================
+void GeomAlgoAPI_Box::buildWithPoints()
+{
+ myCreatedFaces.clear();
+
+ const gp_Pnt& aFirstPoint = myFirstPoint->impl<gp_Pnt>();
+ const gp_Pnt& aSecondPoint = mySecondPoint->impl<gp_Pnt>();
+
+ // Construct the box
+ BRepPrimAPI_MakeBox *aBoxMaker = new BRepPrimAPI_MakeBox(aFirstPoint, aSecondPoint);
+ aBoxMaker->Build();
+
+ // Test the algorithm
+ if(!aBoxMaker->IsDone()) {
+ myError = "Box builder with two points :: algorithm failed.";
+ return;
+ }
+
+ TopoDS_Shape aResult = aBoxMaker->Shape();
+
+ std::shared_ptr<GeomAPI_Shape> aShape(new GeomAPI_Shape());
+ aShape->setImpl(new TopoDS_Shape(aResult));
+ setShape(aShape);
+
+ // Tests on the shape
+ if (!aShape.get() || aShape->isNull()) {
+ myError = "Box builder with two points :: resulting shape is null.";
+ return;
+ }
+
+ setImpl(aBoxMaker);
+
+ setDone(true);
+}
+
//=================================================================================================
void GeomAlgoAPI_Box::prepareNamingFaces()
{
class GeomAlgoAPI_Box : public GeomAlgoAPI_MakeShape
{
public:
+ /// Type of box operation
+ enum MethodType {
+ BOX_DIM, ///< Box with dimensions
+ BOX_POINTS, ///< Box with points
+ };
+
GEOMALGOAPI_EXPORT GeomAlgoAPI_Box();
/// Creates a box using the dimensions.
/// \param theDz The dimension on Z
GEOMALGOAPI_EXPORT GeomAlgoAPI_Box(const double theDx, const double theDy, const double theDz);
+ /// Creates a box using the two points that defined a diagonal.
+ /// \param theFirstPoint One extermity of the diagonal
+ /// \param theSecondPoint The other extremity of the diagonal
+ GEOMALGOAPI_EXPORT GeomAlgoAPI_Box(std::shared_ptr<GeomAPI_Pnt> theFirstPoint,
+ std::shared_ptr<GeomAPI_Pnt> theSecondPoint);
+
/// Checks if each dimension "Dx", Dy" and "Dz" for the box construction is OK.
GEOMALGOAPI_EXPORT bool check();
- /// Builds the box with the dimensions "Dx", "Dy" and "Dz".
+ /// Builds the box.
GEOMALGOAPI_EXPORT void build();
/// Prepare the naming (redifined because it is specific for a box).
GEOMALGOAPI_EXPORT void prepareNamingFaces();
private:
+ /// Builds the box with the dimensions "Dx", "Dy" and "Dz".
+ void buildWithDimensions();
+ /// Builds the box with two points
+ void buildWithPoints();
+
double myDx; /// Dimension on X to create a box.
double myDy; /// Dimension on Y to create a box.
double myDz; /// Dimension Z to create a box.
+ std::shared_ptr<GeomAPI_Pnt> myFirstPoint; /// First point to create a box.
+ std::shared_ptr<GeomAPI_Pnt> mySecondPoint; /// Second point to create a box.
+ MethodType myMethodType; /// Type of method used.
};
+++ /dev/null
-// Copyright (C) 2014-2016 CEA/DEN, EDF R&D
-
-// File: GeomAlgoAPI_BoxPoints.cpp
-// Created: 17 Mar 2016
-// Author: Clarisse Genrault (CEA)
-
-#include <GeomAlgoAPI_BoxPoints.h>
-
-#include <BRepPrimAPI_MakeBox.hxx>
-#include <TopoDS_Shape.hxx>
-
-#include <iostream>
-
-//=================================================================================================
-GeomAlgoAPI_BoxPoints::GeomAlgoAPI_BoxPoints(std::shared_ptr<GeomAPI_Pnt> theFirstPoint,
- std::shared_ptr<GeomAPI_Pnt> theSecondPoint)
-:GeomAlgoAPI_Box()
-{
- myFirstPoint = theFirstPoint;
- mySecondPoint = theSecondPoint;
-}
-
-//=================================================================================================
-bool GeomAlgoAPI_BoxPoints::check()
-{
- // The distance between myFirstPoint and mySecondPoint must not be null.
- if (myFirstPoint->distance(mySecondPoint) < Precision::Confusion())
- return false;
- return true;
-}
-
-//=================================================================================================
-void GeomAlgoAPI_BoxPoints::build()
-{
- myCreatedFaces.clear();
-
- const gp_Pnt& aFirstPoint = myFirstPoint->impl<gp_Pnt>();
- const gp_Pnt& aSecondPoint = mySecondPoint->impl<gp_Pnt>();
-
- // Construct the box
- BRepPrimAPI_MakeBox *aBoxMaker = new BRepPrimAPI_MakeBox(aFirstPoint, aSecondPoint);
- aBoxMaker->Build();
-
- // Test the algorithm
- if(!aBoxMaker->IsDone()) {
- myError = "Box builder with two points :: algorithm failed.";
- return;
- }
-
- TopoDS_Shape aResult = aBoxMaker->Shape();
-
- std::shared_ptr<GeomAPI_Shape> aShape(new GeomAPI_Shape());
- aShape->setImpl(new TopoDS_Shape(aResult));
- setShape(aShape);
-
- // Tests on the shape
- if (!aShape.get() || aShape->isNull()) {
- myError = "Box builder with two points :: resulting shape is null.";
- return;
- }
-
- setImpl(aBoxMaker);
-
- setDone(true);
-}
+++ /dev/null
-// Copyright (C) 2014-2016 CEA/DEN, EDF R&D
-
-// File: GeomAlgoAPI_BoxPoints.h
-// Created: 17 Mar 2016
-// Author: Clarisse Genrault (CEA)
-
-#ifndef GeomAlgoAPI_BoxPoints_H_
-#define GeomAlgoAPI_BoxPoints_H_
-
-#include <GeomAPI_Pnt.h>
-#include <GeomAlgoAPI_Box.h>
-
-/**\class GeomAlgoAPI_BoxPoints
- * \ingroup DataAlgo
- * \brief Allows to create Box Primitives using the two points that defined a diagonal.
- */
-class GeomAlgoAPI_BoxPoints : public GeomAlgoAPI_Box
-{
- public:
- /// Creates a box using the two points that defined a diagonal.
- /// \param theFirstPoint One extermity of the diagonal
- /// \param theSecondPoint The other extremity of the diagonal
- GEOMALGOAPI_EXPORT GeomAlgoAPI_BoxPoints(std::shared_ptr<GeomAPI_Pnt> theFirstPoint,
- std::shared_ptr<GeomAPI_Pnt> theSecondPoint);
-
- /// \return true if the data of the construction of the box were correct.
- GEOMALGOAPI_EXPORT bool check();
-
- /// Builds the box.
- GEOMALGOAPI_EXPORT void build();
-
- private:
- std::shared_ptr<GeomAPI_Pnt> myFirstPoint; /// First point to create a box.
- std::shared_ptr<GeomAPI_Pnt> mySecondPoint; /// Second point to create a box.
-};
-
-
-#endif
#include "GeomAlgoAPI_ShapeAPI.h"
#include <GeomAlgoAPI_Box.h>
-#include <GeomAlgoAPI_BoxPoints.h>
#include <GeomAPI_Pnt.h>
#include <GeomAPI_Edge.h>
{
//=========================================================================================================
std::shared_ptr<GeomAPI_Shape> GeomAlgoAPI_ShapeAPI::makeBox(const double theDx, const double theDy,
- const double theDz) throw (GeomAlgoAPI_Exception)
+ const double theDz) throw (GeomAlgoAPI_Exception)
{
GeomAlgoAPI_Box aBoxAlgo(theDx,theDy,theDz);
//=========================================================================================================
std::shared_ptr<GeomAPI_Shape> GeomAlgoAPI_ShapeAPI::makeBox(std::shared_ptr<GeomAPI_Pnt> theFirstPoint,
- std::shared_ptr<GeomAPI_Pnt> theSecondPoint) throw (GeomAlgoAPI_Exception)
+ std::shared_ptr<GeomAPI_Pnt> theSecondPoint) throw (GeomAlgoAPI_Exception)
{
- GeomAlgoAPI_BoxPoints aBoxAlgo(theFirstPoint, theSecondPoint);
+ GeomAlgoAPI_Box aBoxAlgo(theFirstPoint, theSecondPoint);
if (!aBoxAlgo.check()) {
throw GeomAlgoAPI_Exception(aBoxAlgo.getError());
#include "GeomAlgoAPI_Exception.h"
#include "GeomAlgoAPI_ShapeAPI.h"
#include "GeomAlgoAPI_Box.h"
- #include "GeomAlgoAPI_BoxPoints.h"
#include "GeomAlgoAPI_Copy.h"
#include <memory>
#include "PrimitivesAPI_Box.h"
+#include <ModelHighAPI_Dumper.h>
#include <ModelHighAPI_Tools.h>
//==================================================================================================
execute();
}
+//==================================================================================================
+void PrimitivesAPI_Box::dump(ModelHighAPI_Dumper& theDumper) const
+{
+ FeaturePtr aBase = feature();
+ const std::string& aDocName = theDumper.name(aBase->document());
+
+ theDumper << aBase << " = model.addBox(" << aDocName;
+
+ std::string aCreationMethod = aBase->string(PrimitivesPlugin_Box::CREATION_METHOD())->value();
+
+ if(aCreationMethod == PrimitivesPlugin_Box::CREATION_METHOD_BY_DIMENSIONS()) {
+ AttributeDoublePtr anAttrDx = aBase->real(PrimitivesPlugin_Box::DX_ID());
+ AttributeDoublePtr anAttrDy = aBase->real(PrimitivesPlugin_Box::DY_ID());
+ AttributeDoublePtr anAttrDz = aBase->real(PrimitivesPlugin_Box::DZ_ID());
+
+ theDumper << ", " << anAttrDx << ", " << anAttrDy << ", " << anAttrDz;
+ } else if (aCreationMethod == PrimitivesPlugin_Box::CREATION_METHOD_BY_TWO_POINTS()) {
+ AttributeSelectionPtr anAttrFirstPnt = aBase->selection(PrimitivesPlugin_Box::POINT_FIRST_ID());
+ AttributeSelectionPtr anAttrSecondPnt = aBase->selection(PrimitivesPlugin_Box::POINT_SECOND_ID());
+
+ theDumper << ", " << anAttrFirstPnt << ", " << anAttrSecondPnt;
+ }
+
+ theDumper << ")" << std::endl;
+}
//==================================================================================================
BoxPtr addBox(const std::shared_ptr<ModelAPI_Document>& thePart,
PRIMITIVESAPI_EXPORT
void setPoints(const ModelHighAPI_Selection& theFirstPoint,
const ModelHighAPI_Selection& theSecondPoint);
+
+ /// Dump wrapped feature
+ PRIMITIVESAPI_EXPORT
+ virtual void dump(ModelHighAPI_Dumper& theDumper) const;
};
/// Pointer on primitive Box object
AttributeSelectionPtr aRef1 = data()->selection(PrimitivesPlugin_Box::POINT_FIRST_ID());
AttributeSelectionPtr aRef2 = data()->selection(PrimitivesPlugin_Box::POINT_SECOND_ID());
- std::shared_ptr<GeomAlgoAPI_BoxPoints> aBoxAlgo;
+ std::shared_ptr<GeomAlgoAPI_Box> aBoxAlgo;
if ((aRef1.get() != NULL) && (aRef2.get() != NULL)) {
GeomShapePtr aShape1 = aRef1->value();
if (aShape1 && aShape2){
std::shared_ptr<GeomAPI_Pnt> aFirstPoint = GeomAlgoAPI_PointBuilder::point(aShape1);
std::shared_ptr<GeomAPI_Pnt> aSecondPoint = GeomAlgoAPI_PointBuilder::point(aShape2);
- aBoxAlgo = std::shared_ptr<GeomAlgoAPI_BoxPoints>(new GeomAlgoAPI_BoxPoints(aFirstPoint,aSecondPoint));
+ aBoxAlgo = std::shared_ptr<GeomAlgoAPI_Box>(new GeomAlgoAPI_Box(aFirstPoint,aSecondPoint));
}
}
#include <PrimitivesPlugin.h>
#include <ModelAPI_Feature.h>
#include <GeomAlgoAPI_Box.h>
-#include <GeomAlgoAPI_BoxPoints.h>
class GeomAPI_Shape;
class ModelAPI_ResultBody;
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ id="svg2994"
+ version="1.1"
+ inkscape:version="0.48.4 r9939"
+ sodipodi:docname="dessin-1.svg">
+ <defs
+ id="defs2996" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="31.678384"
+ inkscape:cx="10.142429"
+ inkscape:cy="6.86954"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:showpageshadow="false"
+ inkscape:window-width="1261"
+ inkscape:window-height="854"
+ inkscape:window-x="185"
+ inkscape:window-y="192"
+ inkscape:window-maximized="0">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3002"
+ empspacing="5"
+ visible="true"
+ enabled="true"
+ snapvisiblegridlinesonly="true" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata2999">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Calque 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="fill:#b7d9ea;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;fill-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+ d="M 6,1 15,1 11,5 2,5 z"
+ id="path3861"
+ inkscape:connector-curvature="0"
+ transform="translate(0,1036.3622)" />
+ <path
+ style="fill:#b7d9ea;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 10.65276,1041.9203 0,10 5,-5 0,-10 z"
+ id="path3857"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#b7d9ea;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 1.1578363,1051.8887 0,-10 8.9999997,0 0,10 c 0,0 -8.9999997,0 -8.9999997,0 z"
+ id="path3855"
+ inkscape:connector-curvature="0" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4768"
+ d="m 15.407143,1036.9199 -4.889234,4.9317 0,9.8635"
+ style="fill:none;stroke:#1b4955;stroke-width:0.98199999000000004;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;fill-opacity:1" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4766"
+ d="m 0.79020106,1051.8933 9.77846994,0 4.889235,-4.9318"
+ style="fill:none;stroke:#1b4955;stroke-width:0.98208702;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ style="fill:none;stroke:#1b4955;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
+ d="m 15.431789,1036.9834 0,10"
+ id="path3059"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#1b4955;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 0.74746186,1051.8887 0,-10"
+ id="path3847"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#b7ffea;stroke:#1b4955;stroke-width:0.98990493999999996px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
+ d="m 10.536534,1041.794 -9.79911626,0"
+ id="path3849"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#b7ffea;stroke:#1b4955;stroke-width:0.99432135000000021px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
+ d="m 0.74462252,1041.7968 5.13194768,-4.8162"
+ id="path3851"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#b7ffea;stroke:#1b4955;stroke-width:1.01877272000000008px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
+ d="m 5.9872958,1036.9518 9.3410802,0"
+ id="path3853"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="32px"
+ height="32px"
+ id="svg5094"
+ version="1.1"
+ inkscape:version="0.48.4 r9939"
+ sodipodi:docname="box_2pt_32x32.svg"
+ inkscape:export-filename="/home/cg246364/Shaper/icones_240/box_2pt_32x32.png"
+ inkscape:export-xdpi="119.76"
+ inkscape:export-ydpi="119.76">
+ <defs
+ id="defs5096" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="15.836083"
+ inkscape:cx="15.869472"
+ inkscape:cy="15.646401"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:grid-bbox="true"
+ inkscape:document-units="px"
+ inkscape:showpageshadow="false"
+ inkscape:window-width="924"
+ inkscape:window-height="764"
+ inkscape:window-x="368"
+ inkscape:window-y="230"
+ inkscape:window-maximized="0">
+ <inkscape:grid
+ type="xygrid"
+ id="grid5102"
+ empspacing="5"
+ visible="true"
+ enabled="true"
+ snapvisiblegridlinesonly="true" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata5099">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="layer1"
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer">
+ <path
+ style="fill:#b7d9ea;stroke:#1b4955;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;fill-opacity:1"
+ d="m 5,27 0,-15 15,0 0,15 z"
+ id="path5104"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#b7d9ea;stroke:#1b4955;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;fill-opacity:1"
+ d="m 5,12 7,-7 15,0 -7,7 z"
+ id="path5106"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#b7d9ea;stroke:#1b4955;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;fill-opacity:1"
+ d="m 20,12 7,-7 0,15 -7,7 z"
+ id="path5108"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 3.0632835,28.949341 2,-2 2,-2"
+ id="path5069"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 3.0632835,24.949341 4,4"
+ id="path5071"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 24.599511,7.3955372 2,-2 2,-2"
+ id="path5069-7"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 24.599511,3.3955372 4,4"
+ id="path5071-1"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="32px"
+ height="32px"
+ id="svg5094"
+ version="1.1"
+ inkscape:version="0.48.4 r9939"
+ sodipodi:docname="box_dxyz_32x32.svg"
+ inkscape:export-filename="/home/cg246364/Shaper/icones_240/box_dxyz_32x32.png"
+ inkscape:export-xdpi="119.76"
+ inkscape:export-ydpi="119.76">
+ <defs
+ id="defs5096">
+ <linearGradient
+ id="linearGradient8999"
+ osb:paint="solid">
+ <stop
+ style="stop-color:#ff0000;stop-opacity:1;"
+ offset="0"
+ id="stop9001" />
+ </linearGradient>
+ <marker
+ inkscape:stockid="TriangleOutS"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="TriangleOutS"
+ style="overflow:visible">
+ <path
+ id="path3989"
+ d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt"
+ transform="scale(0.2)" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="TriangleOutL"
+ style="overflow:visible">
+ <path
+ id="path3983"
+ d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt"
+ transform="scale(0.8)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Send"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow1Send"
+ style="overflow:visible;">
+ <path
+ id="path3856"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;"
+ transform="scale(0.2) rotate(180) translate(6,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Mend"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow1Mend"
+ style="overflow:visible;">
+ <path
+ id="path3850"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;"
+ transform="scale(0.4) rotate(180) translate(10,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="DotM"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="DotM"
+ style="overflow:visible">
+ <path
+ id="path3905"
+ d="M -2.5,-1.0 C -2.5,1.7600000 -4.7400000,4.0 -7.5,4.0 C -10.260000,4.0 -12.5,1.7600000 -12.5,-1.0 C -12.5,-3.7600000 -10.260000,-6.0 -7.5,-6.0 C -4.7400000,-6.0 -2.5,-3.7600000 -2.5,-1.0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt"
+ transform="scale(0.4) translate(7.4, 1)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow1Lend"
+ style="overflow:visible;">
+ <path
+ id="path3844"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;"
+ transform="scale(0.8) rotate(180) translate(12.5,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Lend"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow2Lend"
+ style="overflow:visible;">
+ <path
+ id="path3862"
+ style="fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ transform="scale(1.1) rotate(180) translate(1,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutS"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="TriangleOutS-9"
+ style="overflow:visible">
+ <path
+ inkscape:connector-curvature="0"
+ id="path3989-8"
+ d="m 5.77,0 -8.65,5 0,-10 8.65,5 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
+ transform="scale(0.2,0.2)" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutS"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="TriangleOutS-2"
+ style="overflow:visible">
+ <path
+ inkscape:connector-curvature="0"
+ id="path3989-4"
+ d="m 5.77,0 -8.65,5 0,-10 8.65,5 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
+ transform="scale(0.2,0.2)" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.395603"
+ inkscape:cx="23.187875"
+ inkscape:cy="14.744242"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:grid-bbox="true"
+ inkscape:document-units="px"
+ inkscape:showpageshadow="false"
+ inkscape:window-width="1205"
+ inkscape:window-height="897"
+ inkscape:window-x="404"
+ inkscape:window-y="208"
+ inkscape:window-maximized="0">
+ <inkscape:grid
+ type="xygrid"
+ id="grid5102"
+ empspacing="5"
+ visible="true"
+ enabled="true"
+ snapvisiblegridlinesonly="true" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata5099">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="layer1"
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer">
+ <path
+ style="fill:#b7d9ea;stroke:#1b4955;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;fill-opacity:1"
+ d="m 5,27 0,-15 15,0 0,15 z"
+ id="path5104"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#b7d9ea;stroke:#1b4955;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;fill-opacity:1"
+ d="m 5,12 7,-7 15,0 -7,7 z"
+ id="path5106"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#b7d9ea;stroke:#1b4955;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;fill-opacity:1"
+ d="m 20,12 7,-7 0,15 -7,7 z"
+ id="path5108"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#ff0000;fill-opacity:1;stroke:#ff0000;stroke-width:1.8;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#TriangleOutS)"
+ d="m 13.934027,19.021179 0,-9.4164093"
+ id="path7345"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#ff0000;fill-opacity:1;stroke:#ff0000;stroke-width:1.8;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#TriangleOutS)"
+ d="m 13.223752,18.138229 7.802955,0"
+ id="path7345-9"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1.8;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#TriangleOutS-2)"
+ d="M 13.795837,18.204163 8.9070412,23.130217"
+ id="path9029"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>