Skip to content

Commit

Permalink
Part: for Prism feature use PrismExtension
Browse files Browse the repository at this point in the history
  • Loading branch information
wwmayer committed Apr 5, 2021
1 parent 84c5d22 commit 57d2a2f
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 17 deletions.
17 changes: 3 additions & 14 deletions src/Mod/Part/App/PrimitiveFeature.cpp
Expand Up @@ -573,12 +573,9 @@ Prism::Prism(void)
ADD_PROPERTY_TYPE(Polygon, (6.0), "Prism", App::Prop_None, "Number of sides in the polygon, of the prism");
ADD_PROPERTY_TYPE(Circumradius, (2.0), "Prism", App::Prop_None, "Circumradius (centre to vertex) of the polygon, of the prism");
ADD_PROPERTY_TYPE(Height, (10.0f), "Prism", App::Prop_None, "The height of the prism");
ADD_PROPERTY_TYPE(FirstAngle, (0.0f), "Prism", App::Prop_None, "Angle in first direction");
ADD_PROPERTY_TYPE(SecondAngle, (0.0f), "Prism", App::Prop_None, "Angle in second direction");
Polygon.setConstraints(&polygonRange);
static const App::PropertyQuantityConstraint::Constraints angleConstraint = { -89.99999, 89.99999, 1.0 };
FirstAngle.setConstraints(&angleConstraint);
SecondAngle.setConstraints(&angleConstraint);

PrismExtension::initExtension(this);
}

short Prism::mustExecute() const
Expand All @@ -589,10 +586,6 @@ short Prism::mustExecute() const
return 1;
if (Height.isTouched())
return 1;
if (FirstAngle.isTouched())
return 1;
if (SecondAngle.isTouched())
return 1;
return Primitive::mustExecute();
}

Expand Down Expand Up @@ -621,11 +614,7 @@ App::DocumentObjectExecReturn *Prism::execute(void)
mkPoly.Add(gp_Pnt(v.x,v.y,v.z));
BRepBuilderAPI_MakeFace mkFace(mkPoly.Wire());
// the direction vector for the prism is the height for z and the given angle
BRepPrimAPI_MakePrism mkPrism(mkFace.Face(),
gp_Vec(Height.getValue() * tan(Base::toRadians<double>(FirstAngle.getValue())),
Height.getValue() * tan(Base::toRadians<double>(SecondAngle.getValue())),
Height.getValue()));
this->Shape.setValue(mkPrism.Shape());
this->Shape.setValue(makePrism(Height.getValue(), mkFace.Face()));
}
catch (Standard_Failure& e) {
return new App::DocumentObjectExecReturn(e.GetMessageString());
Expand Down
6 changes: 3 additions & 3 deletions src/Mod/Part/App/PrimitiveFeature.h
Expand Up @@ -27,6 +27,7 @@
#include <App/PropertyUnits.h>
#include "PartFeature.h"
#include "AttachExtension.h"
#include "PrismExtension.h"

namespace Part
{
Expand Down Expand Up @@ -199,7 +200,8 @@ class PartExport Cylinder : public Primitive
//@}
};

class PartExport Prism : public Primitive
class PartExport Prism : public Primitive,
public PrismExtension
{
PROPERTY_HEADER(Part::Prism);

Expand All @@ -209,8 +211,6 @@ class PartExport Prism : public Primitive
App::PropertyIntegerConstraint Polygon;
App::PropertyLength Circumradius;
App::PropertyLength Height;
App::PropertyAngle FirstAngle;
App::PropertyAngle SecondAngle;

/** @name methods override feature */
//@{
Expand Down

0 comments on commit 57d2a2f

Please sign in to comment.