]> SALOME platform Git repositories - modules/shaper.git/commitdiff
Salome HOME
Update box and add dump for box.
authorClarisse Genrault <clarisse.genrault@cea.fr>
Thu, 15 Sep 2016 09:27:34 +0000 (11:27 +0200)
committerClarisse Genrault <clarisse.genrault@cea.fr>
Thu, 15 Sep 2016 09:27:34 +0000 (11:27 +0200)
16 files changed:
src/GeomAlgoAPI/CMakeLists.txt
src/GeomAlgoAPI/GeomAlgoAPI_Box.cpp
src/GeomAlgoAPI/GeomAlgoAPI_Box.h
src/GeomAlgoAPI/GeomAlgoAPI_BoxPoints.cpp [deleted file]
src/GeomAlgoAPI/GeomAlgoAPI_BoxPoints.h [deleted file]
src/GeomAlgoAPI/GeomAlgoAPI_ShapeAPI.cpp
src/GeomAlgoAPI/GeomAlgoAPI_swig.h
src/PrimitivesAPI/PrimitivesAPI_Box.cpp
src/PrimitivesAPI/PrimitivesAPI_Box.h
src/PrimitivesPlugin/PrimitivesPlugin_Box.cpp
src/PrimitivesPlugin/PrimitivesPlugin_Box.h
src/PrimitivesPlugin/icons/SVG/box.svg [new file with mode: 0644]
src/PrimitivesPlugin/icons/SVG/box_2pt_32x32.svg [new file with mode: 0644]
src/PrimitivesPlugin/icons/SVG/box_dxyz_32x32.svg [new file with mode: 0644]
src/PrimitivesPlugin/icons/box.png
src/PrimitivesPlugin/icons/box_2pt_32x32.png

index c4ff34d4d8ea4cf607ddba60454cd64a5fce2796..623ddacefc4ce8d2021a923fb4c8e0ba8d2842b8 100644 (file)
@@ -42,10 +42,11 @@ SET(PROJECT_HEADERS
     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
@@ -84,10 +85,11 @@ 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
index ee03a2224f3323a8362afc5a5fcc00322a30446c..1737b8aa38cdd9d88f9b324e1afc037734842a26 100644 (file)
@@ -20,19 +20,40 @@ GeomAlgoAPI_Box::GeomAlgoAPI_Box(const double theDx, const double theDy, const d
   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;
@@ -40,6 +61,19 @@ bool GeomAlgoAPI_Box::check()
 
 //=================================================================================================
 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();
   
@@ -69,6 +103,42 @@ void GeomAlgoAPI_Box::build()
   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()
 {
index 23bcb8d350c40b66532c8cea836d9c20a069129e..5c08abf96e0ca9cdf8d402a35b829b3e282ba946 100644 (file)
 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.
@@ -25,19 +31,33 @@ class GeomAlgoAPI_Box : public GeomAlgoAPI_MakeShape
   /// \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.
 };
 
 
diff --git a/src/GeomAlgoAPI/GeomAlgoAPI_BoxPoints.cpp b/src/GeomAlgoAPI/GeomAlgoAPI_BoxPoints.cpp
deleted file mode 100644 (file)
index dcfd835..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-// 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);
-}
diff --git a/src/GeomAlgoAPI/GeomAlgoAPI_BoxPoints.h b/src/GeomAlgoAPI/GeomAlgoAPI_BoxPoints.h
deleted file mode 100644 (file)
index 159715f..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-// 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
index 6945ee370c073e720a019e14d159c34add3fca61..a2e1184e69437d2b8a929e137e6e6af9abf216aa 100644 (file)
@@ -6,7 +6,6 @@
 
 #include "GeomAlgoAPI_ShapeAPI.h"
 #include <GeomAlgoAPI_Box.h>
-#include <GeomAlgoAPI_BoxPoints.h>
 
 #include <GeomAPI_Pnt.h>
 #include <GeomAPI_Edge.h>
@@ -18,7 +17,7 @@ namespace GeomAlgoAPI_ShapeAPI
 {
   //=========================================================================================================
   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);
     
@@ -39,9 +38,9 @@ namespace GeomAlgoAPI_ShapeAPI
   
   //=========================================================================================================
   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());
index 39468c70168230ce158870dedc4f07ef2fafa9ed..df537f6200f0cd6bcac6a9ecb8b3e95ab77cd1cf 100644 (file)
@@ -44,7 +44,6 @@
   #include "GeomAlgoAPI_Exception.h"
   #include "GeomAlgoAPI_ShapeAPI.h"
   #include "GeomAlgoAPI_Box.h"
-  #include "GeomAlgoAPI_BoxPoints.h"
   #include "GeomAlgoAPI_Copy.h"
 
   #include <memory>
index 2c2e016cb5c03210fff0f9897cbd2d36f41c990f..db8048c84918503382587a7d6e3fef24cebe3c58 100644 (file)
@@ -6,6 +6,7 @@
 
 #include "PrimitivesAPI_Box.h"
 
+#include <ModelHighAPI_Dumper.h>
 #include <ModelHighAPI_Tools.h>
 
 //==================================================================================================
@@ -65,6 +66,31 @@ void PrimitivesAPI_Box::setPoints(const ModelHighAPI_Selection& theFirstPoint,
 
   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,
index acf8bdffb6e810a8cf1da05664ba9b89ea0315e8..1f8415b8b1062c817b68b6ed8fd229a155318ae0 100644 (file)
@@ -63,6 +63,10 @@ public:
   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
index 8f150802e728eff70e36841e75a2ea400345a99e..f502f71fcd460b773104b5a35bee826a78230777 100644 (file)
@@ -88,7 +88,7 @@ void PrimitivesPlugin_Box::createBoxByTwoPoints()
   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();
@@ -100,7 +100,7 @@ void PrimitivesPlugin_Box::createBoxByTwoPoints()
     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));
     }
   }
   
index 8db0d54174d155331bde900fd55b8bce4e1df61e..991099301e5dbf5026e8e8216b1262b18b77defe 100644 (file)
@@ -10,7 +10,6 @@
 #include <PrimitivesPlugin.h>
 #include <ModelAPI_Feature.h>
 #include <GeomAlgoAPI_Box.h>
-#include <GeomAlgoAPI_BoxPoints.h>
 
 class GeomAPI_Shape;
 class ModelAPI_ResultBody;
diff --git a/src/PrimitivesPlugin/icons/SVG/box.svg b/src/PrimitivesPlugin/icons/SVG/box.svg
new file mode 100644 (file)
index 0000000..f9dd6a3
--- /dev/null
@@ -0,0 +1,116 @@
+<?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>
diff --git a/src/PrimitivesPlugin/icons/SVG/box_2pt_32x32.svg b/src/PrimitivesPlugin/icons/SVG/box_2pt_32x32.svg
new file mode 100644 (file)
index 0000000..fe8517b
--- /dev/null
@@ -0,0 +1,103 @@
+<?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>
diff --git a/src/PrimitivesPlugin/icons/SVG/box_dxyz_32x32.svg b/src/PrimitivesPlugin/icons/SVG/box_dxyz_32x32.svg
new file mode 100644 (file)
index 0000000..6913b55
--- /dev/null
@@ -0,0 +1,227 @@
+<?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>
index 8e707cbc668bae30e2f4c3d9c43e1727212eae3e..2b0757b055f0b982a04cb52ab53c3379201c1720 100644 (file)
Binary files a/src/PrimitivesPlugin/icons/box.png and b/src/PrimitivesPlugin/icons/box.png differ
index 900cb41e1673805263dc47cecd6c5fed2feadfe1..1294e0391f6564f2b2a4daecc0caac78ddde40e2 100644 (file)
Binary files a/src/PrimitivesPlugin/icons/box_2pt_32x32.png and b/src/PrimitivesPlugin/icons/box_2pt_32x32.png differ