Salome HOME
projects
/
modules
/
shaper.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Edit created feature after noMoreWidgets. Restart the creation operation by click...
[modules/shaper.git]
/
src
/
SketcherPrs
/
SketcherPrs_Mirror.cpp
diff --git
a/src/SketcherPrs/SketcherPrs_Mirror.cpp
b/src/SketcherPrs/SketcherPrs_Mirror.cpp
index 2c05d225f25b00bf593763291f38d9ab833a6f55..9719dc8cd066175fdc641e7fa98217cfe5f865f7 100644
(file)
--- a/
src/SketcherPrs/SketcherPrs_Mirror.cpp
+++ b/
src/SketcherPrs/SketcherPrs_Mirror.cpp
@@
-10,10
+10,9
@@
#include <SketchPlugin_Constraint.h>
#include <SketchPlugin_Constraint.h>
-#include <ModelAPI_AttributeRefList.h>
-
#include <Graphic3d_AspectLine3d.hxx>
#include <Prs3d_Root.hxx>
#include <Graphic3d_AspectLine3d.hxx>
#include <Prs3d_Root.hxx>
+#include <Prs3d_LineAspect.hxx>
@@
-31,20
+30,24
@@
SketcherPrs_Mirror::SketcherPrs_Mirror(ModelAPI_Feature* theConstraint,
bool SketcherPrs_Mirror::updatePoints(double theStep) const
{
bool SketcherPrs_Mirror::updatePoints(double theStep) const
{
+ // Get axis of mirror
ObjectPtr aAxisObj = SketcherPrs_Tools::getResult(myConstraint, SketchPlugin_Constraint::ENTITY_A());
if (SketcherPrs_Tools::getShape(aAxisObj).get() == NULL)
return false;
std::shared_ptr<ModelAPI_Data> aData = myConstraint->data();
ObjectPtr aAxisObj = SketcherPrs_Tools::getResult(myConstraint, SketchPlugin_Constraint::ENTITY_A());
if (SketcherPrs_Tools::getShape(aAxisObj).get() == NULL)
return false;
std::shared_ptr<ModelAPI_Data> aData = myConstraint->data();
+ // Get source objects
std::shared_ptr<ModelAPI_AttributeRefList> anAttrB = aData->reflist(SketchPlugin_Constraint::ENTITY_B());
if (anAttrB.get() == NULL)
return false;
std::shared_ptr<ModelAPI_AttributeRefList> anAttrB = aData->reflist(SketchPlugin_Constraint::ENTITY_B());
if (anAttrB.get() == NULL)
return false;
+ // Get mirrored objects
std::shared_ptr<ModelAPI_AttributeRefList> anAttrC = aData->reflist(SketchPlugin_Constraint::ENTITY_C());
if (anAttrC.get() == NULL)
return false;
SketcherPrs_PositionMgr* aMgr = SketcherPrs_PositionMgr::get();
int aNb = anAttrB->size();
std::shared_ptr<ModelAPI_AttributeRefList> anAttrC = aData->reflist(SketchPlugin_Constraint::ENTITY_C());
if (anAttrC.get() == NULL)
return false;
SketcherPrs_PositionMgr* aMgr = SketcherPrs_PositionMgr::get();
int aNb = anAttrB->size();
+ // If size of source objects and mirrored ones is not equal then the constraint is not computed
if (aNb != anAttrC->size())
return false;
if (aNb != anAttrC->size())
return false;
@@
-52,11
+55,13
@@
bool SketcherPrs_Mirror::updatePoints(double theStep) const
int i;
ObjectPtr aObj;
gp_Pnt aP1;
int i;
ObjectPtr aObj;
gp_Pnt aP1;
+ // get position for each source object
for (i = 0; i < aNb; i++) {
aObj = anAttrB->object(i);
aP1 = aMgr->getPosition(aObj, this, theStep);
myPntArray->SetVertice(i + 1, aP1);
}
for (i = 0; i < aNb; i++) {
aObj = anAttrB->object(i);
aP1 = aMgr->getPosition(aObj, this, theStep);
myPntArray->SetVertice(i + 1, aP1);
}
+ // Get position of each mirrored object
for (i = 0; i < aNb; i++) {
aObj = anAttrC->object(i);
aP1 = aMgr->getPosition(aObj, this, theStep);
for (i = 0; i < aNb; i++) {
aObj = anAttrC->object(i);
aP1 = aMgr->getPosition(aObj, this, theStep);
@@
-76,34
+81,23
@@
void SketcherPrs_Mirror::drawLines(const Handle(Prs3d_Presentation)& thePrs, Qua
if (anAttrC.get() == NULL)
return;
if (anAttrC.get() == NULL)
return;
- SketcherPrs_PositionMgr* aMgr = SketcherPrs_PositionMgr::get();
int aNb = anAttrB->size();
if (aNb != anAttrC->size())
return;
Handle(Graphic3d_Group) aGroup = Prs3d_Root::NewGroup(thePrs);
int aNb = anAttrB->size();
if (aNb != anAttrC->size())
return;
Handle(Graphic3d_Group) aGroup = Prs3d_Root::NewGroup(thePrs);
- Handle(Graphic3d_AspectLine3d) aLineAspect = new Graphic3d_AspectLine3d(theColor, Aspect_TOL_SOLID, 2);
- aGroup->SetPrimitivesAspect(aLineAspect);
+ // drawListOfShapes uses myDrawer for attributes definition
+ Handle(Prs3d_LineAspect) aLnAspect = new Prs3d_LineAspect(theColor, Aspect_TOL_SOLID, 1);
+ myDrawer->SetLineAspect(aLnAspect);
// Draw axis line
addLine(aGroup, SketchPlugin_Constraint::ENTITY_A());
// Draw source objects
// Draw axis line
addLine(aGroup, SketchPlugin_Constraint::ENTITY_A());
// Draw source objects
- int i;
- ObjectPtr aObj;
- for (i = 0; i < aNb; i++) {
- aObj = anAttrB->object(i);
- std::shared_ptr<GeomAPI_Shape> aShape = SketcherPrs_Tools::getShape(aObj);
- if (aShape.get() != NULL)
- drawShape(aShape, thePrs);
- }
+ drawListOfShapes(anAttrB, thePrs);
+
// draw mirrored objects
// draw mirrored objects
- for (i = 0; i < aNb; i++) {
- aObj = anAttrC->object(i);
- std::shared_ptr<GeomAPI_Shape> aShape = SketcherPrs_Tools::getShape(aObj);
- if (aShape.get() != NULL)
- drawShape(aShape, thePrs);
- }
+ drawListOfShapes(anAttrC, thePrs);
}
}