-// Copyright (C) 2014-2017 CEA/DEN, EDF R&D
+// Copyright (C) 2014-2024 CEA, EDF
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
//
// You should have received a copy of the GNU Lesser General Public
// License along with this library; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//
-// See http://www.salome-platform.org/ or
-// email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com>
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
#include "PrimitivesAPI_Box.h"
setPoints(theFirstPoint, theSecondPoint);
}
+//==================================================================================================
+PrimitivesAPI_Box::PrimitivesAPI_Box(const std::shared_ptr<ModelAPI_Feature>& theFeature,
+ const ModelHighAPI_Double& theOx,
+ const ModelHighAPI_Double& theOy,
+ const ModelHighAPI_Double& theOz,
+ const ModelHighAPI_Double& theHalfX,
+ const ModelHighAPI_Double& theHalfY,
+ const ModelHighAPI_Double& theHalfZ)
+: ModelHighAPI_Interface(theFeature)
+{
+ if (initialize())
+ {
+ fillAttribute(PrimitivesPlugin_Box::CREATION_METHOD_BY_ONE_POINT_AND_DIMS(), creationMethod());
+ fillAttribute(theOx, ox());
+ fillAttribute(theOy, oy());
+ fillAttribute(theOz, oz());
+ fillAttribute(theHalfX, halfdx());
+ fillAttribute(theHalfY, halfdy());
+ fillAttribute(theHalfZ, halfdz());
+ execute();
+ }
+}
+
//==================================================================================================
PrimitivesAPI_Box::~PrimitivesAPI_Box()
{
execute();
}
+//==================================================================================================
+void PrimitivesAPI_Box::setOrigin(const ModelHighAPI_Double& theOx,
+ const ModelHighAPI_Double& theOy,
+ const ModelHighAPI_Double& theOz)
+{
+ fillAttribute(theOx, ox());
+ fillAttribute(theOy, oy());
+ fillAttribute(theOz, oz());
+
+ execute();
+}
+
+//==================================================================================================
+void PrimitivesAPI_Box::setHalfLengths(const ModelHighAPI_Double& theHalfLengthX,
+ const ModelHighAPI_Double& theHalfLengthY,
+ const ModelHighAPI_Double& theHalfLengthZ)
+{
+ fillAttribute(theHalfLengthX, halfdx());
+ fillAttribute(theHalfLengthY, halfdy());
+ fillAttribute(theHalfLengthZ, halfdz());
+
+ execute();
+}
+
//==================================================================================================
void PrimitivesAPI_Box::dump(ModelHighAPI_Dumper& theDumper) const
{
AttributeSelectionPtr anAttrSecondPnt =
aBase->selection(PrimitivesPlugin_Box::POINT_SECOND_ID());
theDumper << ", " << anAttrFirstPnt << ", " << anAttrSecondPnt;
+ } else if (aCreationMethod == PrimitivesPlugin_Box::CREATION_METHOD_BY_ONE_POINT_AND_DIMS()) {
+ AttributeDoublePtr anAttrOx = aBase->real(PrimitivesPlugin_Box::OX_ID());
+ AttributeDoublePtr anAttrOy = aBase->real(PrimitivesPlugin_Box::OY_ID());
+ AttributeDoublePtr anAttrOz = aBase->real(PrimitivesPlugin_Box::OZ_ID());
+ AttributeDoublePtr anAttrHalfLengthX = aBase->real(PrimitivesPlugin_Box::HALF_DX_ID());
+ AttributeDoublePtr anAttrHalfLengthY = aBase->real(PrimitivesPlugin_Box::HALF_DY_ID());
+ AttributeDoublePtr anAttrHalfLengthZ = aBase->real(PrimitivesPlugin_Box::HALF_DZ_ID());
+ theDumper << ", " << anAttrOx << ", " << anAttrOy << ", " << anAttrOz;
+ theDumper << ", " << anAttrHalfLengthX << ", " << anAttrHalfLengthY;
+ theDumper << ", " << anAttrHalfLengthZ;
}
theDumper << ")" << std::endl;
{
std::shared_ptr<ModelAPI_Feature> aFeature = thePart->addFeature(PrimitivesAPI_Box::ID());
return BoxPtr(new PrimitivesAPI_Box(aFeature, theFirstPoint, theSecondPoint));
-}
\ No newline at end of file
+}
+
+//==================================================================================================
+BoxPtr addBox(const std::shared_ptr<ModelAPI_Document>& thePart,
+ const ModelHighAPI_Double& theOx,
+ const ModelHighAPI_Double& theOy,
+ const ModelHighAPI_Double& theOz,
+ const ModelHighAPI_Double& theHalfLengthX,
+ const ModelHighAPI_Double& theHalfLengthY,
+ const ModelHighAPI_Double& theHalfLengthZ)
+{
+ std::shared_ptr<ModelAPI_Feature> aFeature = thePart->addFeature(PrimitivesAPI_Box::ID());
+ return BoxPtr(new PrimitivesAPI_Box(aFeature, theOx, theOy, theOz, theHalfLengthX,
+ theHalfLengthY, theHalfLengthZ));
+}