1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-09-08 14:17:06 +03:00

Compare commits

..

2 Commits

Author SHA1 Message Date
drochalo
11fb8e63f6 0026072: Visualization - more realistic display of face edges
Code tweaks.
2024-04-09 18:15:46 +01:00
drochalo
b63fe6e31f 0026072: Visualization - more realistic display of face edges
Added calculation of normals to boundary edges.
Extended draw harness commands.
Added new test case.
2024-03-15 15:27:02 +00:00
83 changed files with 438 additions and 601 deletions

View File

@@ -475,7 +475,7 @@ Modify this parameter with:
if(!Interface_Static::SetIVal("read.step.tessellated",1))
.. error ..
~~~~
Default value is 1 (On).
Default value is 0 (On).
@subsubsection occt_step_2_3_4 Performing the STEP file translation

View File

@@ -636,12 +636,22 @@ void AIS_ColoredShape::addShapesWithCustomProps (const Handle(Prs3d_Presentation
{
if (Handle(Graphic3d_ArrayOfSegments) aBndSegments = StdPrs_ShadedShape::FillFaceBoundaries (aShapeDraw, aDrawer->FaceBoundaryUpperContinuity()))
{
if (anEdgesGroup.IsNull())
Handle(Graphic3d_AspectLine3d) aLineAspect = Handle(Graphic3d_AspectLine3d)(aDrawer->FaceBoundaryAspect()->Aspect());
if (aDrawer->FaceBoundaryShadingOverride())
{
Quantity_Color aColor = aDrawer->Color();
if (aDrawer->HasOwnShadingAspect())
{
aColor = aDrawer->ShadingAspect()->Color();
}
aLineAspect->SetColor (aColor);
anEdgesGroup = thePrs->NewGroup();
}
else if (anEdgesGroup.IsNull())
{
anEdgesGroup = thePrs->NewGroup();
}
anEdgesGroup->SetPrimitivesAspect (aDrawer->FaceBoundaryAspect()->Aspect());
anEdgesGroup->SetGroupPrimitivesAspect (aLineAspect);
anEdgesGroup->AddPrimitiveArray (aBndSegments);
}
}

View File

@@ -103,7 +103,7 @@ static Standard_Boolean ChangePCurve (TopoDS_Edge& E,
//purpose :
//=======================================================================
static bool ProjCurve3d (TopoDS_Edge& E,
static void ProjCurve3d (TopoDS_Edge& E,
const Handle(Geom_Surface)& S,
TopLoc_Location& L)
{
@@ -111,10 +111,6 @@ static bool ProjCurve3d (TopoDS_Edge& E,
TopLoc_Location LE;
Standard_Real f,l;
Handle(Geom_Curve) C = BRep_Tool::Curve(E,LE,f,l);
if (C.IsNull())
{
return false;
}
Handle(Geom_TrimmedCurve) CT = new Geom_TrimmedCurve(C,f,l);
TopLoc_Location LL = L.Inverted().Multiplied(LE);
@@ -122,7 +118,6 @@ static bool ProjCurve3d (TopoDS_Edge& E,
Handle(Geom2d_Curve) C2 = GeomProjLib::Curve2d (CT,S);
BB.UpdateEdge(E,C2,S,L,Precision::Confusion());
return true;
}
//=======================================================================
@@ -170,19 +165,13 @@ void BRepAlgo_FaceRestrictor::Perform()
// no pcurve on the reference surface.
if (modeProj) {
// Projection of the 3D curve on surface.
if (!ProjCurve3d(E, S, L))
{
return;
}
ProjCurve3d ( E, S, L);
}
else {
// return the first pcurve glued on <S>
Standard_Boolean YaPCurve = ChangePCurve (E, S, L);
if (!YaPCurve) {
if (!ProjCurve3d(E, S, L))
{
return;
}
ProjCurve3d (E, S, L);
}
}
}

View File

@@ -333,7 +333,7 @@ void BRepAlgo_NormalProjection::SetDefaultParams()
Only2d = Standard_True;
if(Only2d && Only3d) {
BRepLib_MakeEdge MKed(GeomAdaptor::MakeCurve(*hcur),
BRepLib_MakeEdge MKed(GeomAdaptor::MakeCurve(hcur->Curve()),
Udeb, Ufin);
prj = MKed.Edge();
BB.UpdateEdge(TopoDS::Edge(prj),
@@ -369,7 +369,7 @@ void BRepAlgo_NormalProjection::SetDefaultParams()
if(!Only3d) PCur2d = appr.Curve2d();
if(Only2d) {
BRepLib_MakeEdge MKed(GeomAdaptor::MakeCurve(*hcur),
BRepLib_MakeEdge MKed(GeomAdaptor::MakeCurve(hcur->Curve()),
Udeb, Ufin);
prj = MKed.Edge();
}

View File

@@ -1292,10 +1292,11 @@ void BRepOffset_Inter3d::ContextIntByArc(const TopTools_IndexedMapOfShape& Conte
for ( ;exp2.More(); exp2.Next()) {
LOE.Append(exp2.Current());
}
BRepOffset_Tool::TryProject(CF,OF1,LOE,LInt1,LInt2,mySide,myTol);
//-------------------------------------------------------
// If no trace try intersection.
//-------------------------------------------------------
if (!BRepOffset_Tool::TryProject(CF, OF1, LOE, LInt1, LInt2, mySide, myTol) || LInt1.IsEmpty()) {
if (LInt1.IsEmpty()) {
BRepOffset_Tool::Inter3D (CF,OF1,LInt1,LInt2,mySide,NullEdge,NullFace,NullFace);
}
Store (CF,OF1,LInt1,LInt2);

View File

@@ -1175,16 +1175,12 @@ void BRepOffset_MakeOffset::MakeThickSolid(const Message_ProgressRange& theRange
{
NbOF++;
}
if (NbOF < NbF)
if (NbOF <= NbF)
{
myDone = Standard_False;
myError = BRepOffset_UnknownError;
return;
}
if (NbOF == NbF)
{
myOffset = 0;
}
}
if (myOffset > 0 ) myOffsetShape.Reverse();

View File

@@ -1881,10 +1881,6 @@ Standard_Boolean BRepOffset_Tool::TryProject
if (C.IsNull()) {
BRepLib::BuildCurve3d(CurE,BRep_Tool::Tolerance(CurE));
C = BRep_Tool::Curve(CurE,L,f,l);
if (C.IsNull())
{
return Standard_False;
}
}
C = new Geom_TrimmedCurve(C,f,l);
if ( !L.IsIdentity()) C->Transform(L);
@@ -3523,8 +3519,9 @@ void BRepOffset_Tool::ExtentFace (const TopoDS_Face& F,
if (ToBuild.IsBound(E)) {
TopTools_ListOfShape LOE;
LOE.Append(E);
if (BRepOffset_Tool::TryProject(TopoDS::Face(ToBuild(E)), EF, LOE, LInt2, LInt1, Side, TolConf)
&& !LInt1.IsEmpty())
BRepOffset_Tool::TryProject (TopoDS::Face(ToBuild(E)),
EF,LOE,LInt2,LInt1,Side,TolConf);
if (!LInt1.IsEmpty())
ToBuild.UnBind(E);
}
}

View File

@@ -54,11 +54,16 @@ public:
//! @param theMaxVertexs defines the maximum allowed vertex number in the array
//! @param theMaxEdges defines the maximum allowed edge number in the array
//! @param theHasVColors when TRUE, AddVertex(Point,Color) should be used for specifying vertex color
//! @param theHasVNormals when TRUE, AddVertex(Point,Normal) or AddVertex(Point,Normal,Color) should be used to specify vertex normal;
//! vertex normals should be specified coherent to the edge's neighbour triangle face's orientation
//! (defined by order of vertexes within triangle) for proper rendering
Graphic3d_ArrayOfSegments (Standard_Integer theMaxVertexs,
Standard_Integer theMaxEdges = 0,
Standard_Boolean theHasVColors = Standard_False)
: Graphic3d_ArrayOfPrimitives (Graphic3d_TOPA_SEGMENTS, theMaxVertexs, 0, theMaxEdges, theHasVColors ? Graphic3d_ArrayFlags_VertexColor : Graphic3d_ArrayFlags_None) {}
Standard_Integer theMaxEdges = 0,
Standard_Boolean theHasVColors = Standard_False,
Standard_Boolean theHasVNormals = Standard_False)
: Graphic3d_ArrayOfPrimitives (Graphic3d_TOPA_SEGMENTS, theMaxVertexs, 0, theMaxEdges,
(theHasVNormals ? Graphic3d_ArrayFlags_VertexNormal : Graphic3d_ArrayFlags_None)
| (theHasVColors ? Graphic3d_ArrayFlags_VertexColor : Graphic3d_ArrayFlags_None)) {}
};

View File

@@ -772,6 +772,17 @@ public:
myFaceBoundaryDraw = false;
}
//! Return flag value for boundary shading edge color override
Standard_Boolean FaceBoundaryShadingOverride() const
{
return myHasOwnFaceBoundaryDraw || myLink.IsNull()
? myFaceBoundaryShadingOverride
: myLink->FaceBoundaryShadingOverride();
}
//! Return flag value for boundary shading edge color override
void SetFaceBoundaryShadingOverride (Standard_Boolean theFlag) { myFaceBoundaryShadingOverride = theFlag; }
//! Returns true if the drawer has its own attribute for face boundaries upper edge continuity class that overrides the one in the link.
Standard_Boolean HasOwnFaceBoundaryUpperContinuity() const { return myFaceBoundaryUpperContinuity != -1; }
@@ -1008,6 +1019,7 @@ protected:
Standard_Integer myFaceBoundaryUpperContinuity; //!< the most edge continuity class (GeomAbs_Shape) to be included to face boundaries presentation, or -1 if undefined
Standard_Boolean myFaceBoundaryDraw;
Standard_Boolean myHasOwnFaceBoundaryDraw;
Standard_Boolean myFaceBoundaryShadingOverride;
Handle(Prs3d_DimensionAspect) myDimensionAspect;
Prs3d_DimensionUnits myDimensionModelUnits;

View File

@@ -327,7 +327,6 @@
#include <RWStepRepr_RWMaterialDesignation.hxx>
#include <RWStepRepr_RWMaterialProperty.hxx>
#include <RWStepRepr_RWMaterialPropertyRepresentation.hxx>
#include <RWStepRepr_RWMechanicalDesignAndDraughtingRelationship.hxx>
#include <RWStepRepr_RWMeasureRepresentationItem.hxx>
#include <RWStepRepr_RWProductConcept.hxx>
#include <RWStepRepr_RWProductDefinitionShape.hxx>
@@ -790,7 +789,6 @@
#include <StepRepr_ConfigurationEffectivity.hxx>
#include <StepRepr_ConstructiveGeometryRepresentation.hxx>
#include <StepRepr_ConstructiveGeometryRepresentationRelationship.hxx>
#include <StepRepr_MechanicalDesignAndDraughtingRelationship.hxx>
#include <StepRepr_DataEnvironment.hxx>
#include <StepRepr_DescriptiveRepresentationItem.hxx>
#include <StepRepr_Extension.hxx>
@@ -5898,13 +5896,6 @@ void RWStepAP214_GeneralModule::FillSharedCase(const Standard_Integer CN,
aTool.Share(anEnt, iter);
}
break;
case 824:
{
DeclareAndCast(StepRepr_MechanicalDesignAndDraughtingRelationship, anEnt, ent);
RWStepRepr_RWMechanicalDesignAndDraughtingRelationship aTool;
aTool.Share(anEnt, iter);
}
break;
default : break;
}
}
@@ -8226,9 +8217,6 @@ Standard_Boolean RWStepAP214_GeneralModule::NewVoid
case 823:
ent = new StepRepr_RealRepresentationItem;
break;
case 824:
ent = new StepRepr_MechanicalDesignAndDraughtingRelationship;
break;
default:
return Standard_False;

View File

@@ -641,7 +641,6 @@ IMPLEMENT_STANDARD_RTTIEXT(RWStepAP214_ReadWriteModule,StepData_ReadWriteModule)
#include <RWStepShape_RWManifoldSurfaceShapeRepresentation.hxx>
#include <RWStepRepr_RWMappedItem.hxx>
#include <RWStepBasic_RWMeasureWithUnit.hxx>
#include <RWStepRepr_RWMechanicalDesignAndDraughtingRelationship.hxx>
#include <RWStepVisual_RWMechanicalDesignGeometricPresentationArea.hxx>
#include <RWStepVisual_RWMechanicalDesignGeometricPresentationRepresentation.hxx>
// Removed from Rev2 to Rev4 : <RWStepVisual_RWMechanicalDesignPresentationArea.hxx>
@@ -1432,7 +1431,6 @@ IMPLEMENT_STANDARD_RTTIEXT(RWStepAP214_ReadWriteModule,StepData_ReadWriteModule)
#include <StepRepr_CharacterizedRepresentation.hxx>
#include <StepRepr_ConstructiveGeometryRepresentation.hxx>
#include <StepRepr_ConstructiveGeometryRepresentationRelationship.hxx>
#include <StepRepr_MechanicalDesignAndDraughtingRelationship.hxx>
#include <RWStepVisual_RWTessellatedAnnotationOccurrence.hxx>
#include <RWStepVisual_RWTessellatedItem.hxx>
@@ -2366,7 +2364,6 @@ static TCollection_AsciiString Reco_GeneralPropertyAssociation("GENERAL_PROPERTY
static TCollection_AsciiString Reco_GeneralPropertyRelationship("GENERAL_PROPERTY_RELATIONSHIP");
static TCollection_AsciiString Reco_BooleanRepresentationItem("BOOLEAN_REPRESENTATION_ITEM");
static TCollection_AsciiString Reco_RealRepresentationItem("REAL_REPRESENTATION_ITEM");
static TCollection_AsciiString Reco_MechanicalDesignAndDraughtingRelationship("MECHANICAL_DESIGN_AND_DRAUGHTING_RELATIONSHIP");
// -- Definition of the libraries --
@@ -3128,7 +3125,6 @@ RWStepAP214_ReadWriteModule::RWStepAP214_ReadWriteModule ()
typenums.Bind(Reco_GeneralPropertyRelationship, 821);
typenums.Bind(Reco_BooleanRepresentationItem, 822);
typenums.Bind(Reco_RealRepresentationItem, 823);
typenums.Bind(Reco_MechanicalDesignAndDraughtingRelationship, 824);
// SHORT NAMES
@@ -5121,7 +5117,6 @@ const TCollection_AsciiString& RWStepAP214_ReadWriteModule::StepType
case 821: return Reco_GeneralPropertyRelationship;
case 822: return Reco_BooleanRepresentationItem;
case 823: return Reco_RealRepresentationItem;
case 824: return Reco_MechanicalDesignAndDraughtingRelationship;
default : return PasReco;
}
}
@@ -10759,13 +10754,6 @@ void RWStepAP214_ReadWriteModule::ReadStep(const Standard_Integer CN,
aTool.ReadStep(data, num, ach, anent);
}
break;
case 824:
{
DeclareAndCast(StepRepr_MechanicalDesignAndDraughtingRelationship, anent, ent);
RWStepRepr_RWMechanicalDesignAndDraughtingRelationship aTool;
aTool.ReadStep(data, num, ach, anent);
}
break;
default:
ach->AddFail("Type Mismatch when reading - Entity");
}
@@ -16345,13 +16333,6 @@ void RWStepAP214_ReadWriteModule::WriteStep(const Standard_Integer CN,
aTool.WriteStep(SW, anent);
}
break;
case 824:
{
DeclareAndCast(StepRepr_MechanicalDesignAndDraughtingRelationship, anent, ent);
RWStepRepr_RWMechanicalDesignAndDraughtingRelationship aTool;
aTool.WriteStep(SW, anent);
}
break;
default:
return;
}

View File

@@ -12,7 +12,7 @@
// commercial license or contractual agreement.
#ifndef _RWStepBasic_RWGeneralPropertyRelationship_HeaderFile
#define _RWStepBasic_RWGeneralPropertyRelationship_HeaderFile
#define _RWStepBasic_RWGeneralPropertyAssociation_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>

View File

@@ -72,8 +72,6 @@ RWStepRepr_RWMaterialPropertyRepresentation.cxx
RWStepRepr_RWMaterialPropertyRepresentation.hxx
RWStepRepr_RWMeasureRepresentationItem.cxx
RWStepRepr_RWMeasureRepresentationItem.hxx
RWStepRepr_RWMechanicalDesignAndDraughtingRelationship.cxx
RWStepRepr_RWMechanicalDesignAndDraughtingRelationship.hxx
RWStepRepr_RWParallelOffset.cxx
RWStepRepr_RWParallelOffset.hxx
RWStepRepr_RWParametricRepresentationContext.cxx

View File

@@ -1,78 +0,0 @@
// Copyright (c) 2024 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <Standard_Type.hxx>
#include <Interface_EntityIterator.hxx>
#include <RWStepRepr_RWMechanicalDesignAndDraughtingRelationship.hxx>
#include <StepData_StepReaderData.hxx>
#include <StepData_StepWriter.hxx>
#include <StepRepr_Representation.hxx>
#include <StepRepr_MechanicalDesignAndDraughtingRelationship.hxx>
RWStepRepr_RWMechanicalDesignAndDraughtingRelationship::
RWStepRepr_RWMechanicalDesignAndDraughtingRelationship() {}
void RWStepRepr_RWMechanicalDesignAndDraughtingRelationship::ReadStep
(const Handle(StepData_StepReaderData)& theData,
const Standard_Integer theNum,
Handle(Interface_Check)& theAch,
const Handle(StepRepr_MechanicalDesignAndDraughtingRelationship)& theEnt) const
{
// Number of Parameter Control
if (!theData->CheckNbParams(theNum, 4, theAch, "mechanical_design_and_draughting_relationship")) return;
// Inherited field : name
Handle(TCollection_HAsciiString) aName;
theData->ReadString (theNum, 1, "name", theAch, aName);
// Inherited field : description
Handle(TCollection_HAsciiString) aDescription;
if (theData->IsParamDefined (theNum, 2)) {
theData->ReadString (theNum, 2, "description", theAch, aDescription);
}
// Inherited field : rep_1
Handle(StepRepr_Representation) aRep1;
theData->ReadEntity(theNum, 3, "rep_1", theAch, STANDARD_TYPE(StepRepr_Representation), aRep1);
// Inherited field : rep_2
Handle(StepRepr_Representation) aRep2;
theData->ReadEntity(theNum, 4, "rep_2", theAch, STANDARD_TYPE(StepRepr_Representation), aRep2);
// Initialisation of the read entity
theEnt->Init(aName, aDescription, aRep1, aRep2);
}
void RWStepRepr_RWMechanicalDesignAndDraughtingRelationship::WriteStep
(StepData_StepWriter& theSW,
const Handle(StepRepr_MechanicalDesignAndDraughtingRelationship)& theEnt) const
{
// Inherited field : name
theSW.Send(theEnt->Name());
// Inherited field : description
theSW.Send(theEnt->Description());
// Inherited field : rep_1
theSW.Send(theEnt->Rep1());
// Inherited field : rep_2
theSW.Send(theEnt->Rep2());
}
void RWStepRepr_RWMechanicalDesignAndDraughtingRelationship::Share
(const Handle(StepRepr_MechanicalDesignAndDraughtingRelationship)& theEnt,
Interface_EntityIterator& theIter) const
{
theIter.GetOneItem(theEnt->Rep1());
theIter.GetOneItem(theEnt->Rep2());
}

View File

@@ -1,50 +0,0 @@
// Copyright (c) 2024 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#ifndef _RWStepRepr_RWMechanicalDesignAndDraughtingRelationship_HeaderFile
#define _RWStepRepr_RWMechanicalDesignAndDraughtingRelationship_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <Standard_Integer.hxx>
class StepData_StepReaderData;
class Interface_Check;
class StepRepr_MechanicalDesignAndDraughtingRelationship;
class StepData_StepWriter;
class Interface_EntityIterator;
//! Read & Write Module for MechanicalDesignAndDraughtingRelationship
class RWStepRepr_RWMechanicalDesignAndDraughtingRelationship
{
public:
DEFINE_STANDARD_ALLOC
Standard_EXPORT RWStepRepr_RWMechanicalDesignAndDraughtingRelationship();
Standard_EXPORT void ReadStep(const Handle(StepData_StepReaderData)& theData,
const Standard_Integer theNum,
Handle(Interface_Check)& theAch,
const Handle(StepRepr_MechanicalDesignAndDraughtingRelationship)& theEnt) const;
Standard_EXPORT void WriteStep(StepData_StepWriter& theSW,
const Handle(StepRepr_MechanicalDesignAndDraughtingRelationship)& theEnt) const;
Standard_EXPORT void Share(const Handle(StepRepr_MechanicalDesignAndDraughtingRelationship)& theEnt,
Interface_EntityIterator& theIter) const;
};
#endif // _RWStepRepr_RWMechanicalDesignAndDraughtingRelationship_HeaderFile

View File

@@ -374,7 +374,7 @@ TCollection_AsciiString STEPCAFControl_ConfigurationNode::Save() const
aResult += "!\n";
aResult += "!Setting up the read.metadata parameter which is used to indicate read Metadata or not\n";
aResult += "!Default value: 1(\"ON\"). Available values: 0(\"OFF\"), 1(\"ON\")\n";
aResult += "!Default value: 0(\"OFF\"). Available values: 0(\"OFF\"), 1(\"ON\")\n";
aResult += aScope + "read.metadata :\t " + InternalParameters.ReadMetadata + "\n";
aResult += "!\n";

View File

@@ -291,7 +291,7 @@ STEPCAFControl_Reader::STEPCAFControl_Reader()
myNameMode(Standard_True),
myLayerMode(Standard_True),
myPropsMode(Standard_True),
myMetaMode(Standard_True),
myMetaMode(Standard_False),
mySHUOMode(Standard_False),
myGDTMode(Standard_True),
myMatMode(Standard_True),
@@ -316,7 +316,7 @@ STEPCAFControl_Reader::STEPCAFControl_Reader(const Handle(XSControl_WorkSession)
myNameMode(Standard_True),
myLayerMode(Standard_True),
myPropsMode(Standard_True),
myMetaMode(Standard_True),
myMetaMode(Standard_False),
mySHUOMode(Standard_False),
myGDTMode(Standard_True),
myMatMode(Standard_True),
@@ -2018,7 +2018,7 @@ Handle(Poly_Triangulation) createMesh(const Handle(StepVisual_ComplexTriangulate
const Standard_Integer aNbNormals = theTriangulatedSufaceSet->NbNormals();
// Number of pairs (Point, Normal). It is possible for one point to have multiple normals. This is
// useful when the underlying surface is not C1 continuous.
const Standard_Integer aNbPairs = aNbNormals > 1 ? theTriangulatedSufaceSet->Pnmax() : aNodes->Length();
const Standard_Integer aNbPairs = aNbNormals > 1 ? theTriangulatedSufaceSet->NbPnindex() : aNodes->Length();
const Standard_Boolean aHasNormals = aNbNormals > 0;
// Counting number of triangles in the triangle strips list.
@@ -2043,7 +2043,7 @@ Handle(Poly_Triangulation) createMesh(const Handle(StepVisual_ComplexTriangulate
for (Standard_Integer j = 1; j <= aNbPairs; ++j)
{
const gp_XYZ& aPoint = aNodes->Value((aNbNormals > 1 && theTriangulatedSufaceSet->NbPnindex() > 0) ? theTriangulatedSufaceSet->PnindexValue(j) : j);
const gp_XYZ& aPoint = aNodes->Value(aNbNormals > 1 ? theTriangulatedSufaceSet->PnindexValue(j) : j);
aMesh->SetNode(j, theFact * aPoint);
}

View File

@@ -983,7 +983,7 @@ static Standard_Integer FindEntities(const Handle(Transfer_FinderProcess)& theFP
//Handle(Transfer_TransientListBinder)::DownCast( bnd->Next(Standard_True) );
Handle(Transfer_TransientListBinder)::DownCast(aBinder);
Standard_Integer aResCount = 0;
if (aTransientListBinder.IsNull())
if (aTransientListBinder.IsNull() && theShape.ShapeType() == TopAbs_COMPOUND)
{
for (TopoDS_Iterator anIter(theShape); anIter.More(); anIter.Next())
{

View File

@@ -122,7 +122,6 @@
#include <XSAlgo_AlgoContainer.hxx>
#include <StepRepr_ConstructiveGeometryRepresentationRelationship.hxx>
#include <StepRepr_ConstructiveGeometryRepresentation.hxx>
#include <StepRepr_MechanicalDesignAndDraughtingRelationship.hxx>
#include <Geom_Plane.hxx>
IMPLEMENT_STANDARD_RTTIEXT(STEPControl_ActorRead,Transfer_ActorOfTransientProcess)
@@ -1225,72 +1224,6 @@ Handle(TransferBRep_ShapeBinder) STEPControl_ActorRead::TransferEntity(
}
//=======================================================================
//function : TransferEntity
//purpose :
//=======================================================================
Handle(TransferBRep_ShapeBinder) STEPControl_ActorRead::TransferEntity(
const Handle(StepRepr_MechanicalDesignAndDraughtingRelationship)& theMDADR,
const Handle(Transfer_TransientProcess)& theTP,
const StepData_Factors& theLocalFactors,
const Message_ProgressRange& theProgress)
{
Handle(TransferBRep_ShapeBinder) aShBinder;
if (theMDADR.IsNull())
return aShBinder;
Standard_Boolean aResetUnits = Standard_False;
Handle(StepRepr_Representation) anOldSRContext = mySRContext;
StepData_Factors aLocalFactors = theLocalFactors;
TopoDS_Compound aComp;
BRep_Builder aBuilder;
aBuilder.MakeCompound(aComp);
Message_ProgressScope aPS(theProgress, NULL, 2);
for (Standard_Integer anIndex = 1; anIndex <= 2; anIndex++)
{
Message_ProgressRange aRange = aPS.Next();
Handle(StepRepr_Representation) aRepr = (anIndex == 1) ? theMDADR->Rep1() : theMDADR->Rep2();
if (aRepr.IsNull())
continue;
if (mySRContext.IsNull() || aRepr->ContextOfItems() != mySRContext->ContextOfItems())
{
PrepareUnits(aRepr, theTP, aLocalFactors);
aResetUnits = Standard_True;
}
Handle(Transfer_Binder) aBinder;
if (aRepr->IsKind(STANDARD_TYPE(StepShape_ShapeRepresentation)))
{
Handle(StepShape_ShapeRepresentation) aShapeRepr = Handle(StepShape_ShapeRepresentation)::DownCast(aRepr);
Standard_Boolean isBound = Standard_False;
if (!theTP->IsBound(aShapeRepr))
{
aBinder = TransferEntity(aShapeRepr, theTP, theLocalFactors, isBound, false, aRange);
}
else
{
aBinder = theTP->Find(aShapeRepr);
}
}
TopoDS_Shape aResult = TransferBRep::ShapeResult(aBinder);
if (!aResult.IsNull())
{
aBuilder.Add(aComp, aResult);
}
}
aShBinder = new TransferBRep_ShapeBinder(aComp);
mySRContext = anOldSRContext;
if (anOldSRContext.IsNull() || aResetUnits)
{
PrepareUnits(anOldSRContext, theTP, aLocalFactors);
}
theTP->Bind(theMDADR, aShBinder);
return aShBinder;
}
//=======================================================================
//function : IsNeedRepresentation
//purpose :
@@ -2189,12 +2122,6 @@ TopoDS_Shape STEPControl_ActorRead::TransferRelatedSRR(const Handle(Transfer_Tra
Standard_Integer aNbRep = (theRep == aSRR->Rep1() ? 2 : 1);
aBinder = TransferEntity(aSRR, theTP, theLocalFactors, aNbRep, theUseTrsf, thePS.Next());
}
else if (anItem->DynamicType() == STANDARD_TYPE(StepRepr_MechanicalDesignAndDraughtingRelationship))
{
Handle(StepRepr_MechanicalDesignAndDraughtingRelationship) aMDADR =
Handle(StepRepr_MechanicalDesignAndDraughtingRelationship)::DownCast(anItem);
aBinder = TransferEntity(aMDADR, theTP, theLocalFactors, thePS.Next());
}
else if (theReadConstructiveGeomRR &&
anItem->DynamicType() == STANDARD_TYPE(StepRepr_ConstructiveGeometryRepresentationRelationship))
{

View File

@@ -48,7 +48,6 @@ class StepShape_FaceSurface;
class TopoDS_Shell;
class TopoDS_Compound;
class StepRepr_ConstructiveGeometryRepresentationRelationship;
class StepRepr_MechanicalDesignAndDraughtingRelationship;
class StepData_StepModel;
@@ -192,12 +191,6 @@ protected:
const Handle(Transfer_TransientProcess)& theTP,
const StepData_Factors& theLocalFactors = StepData_Factors());
//! Transfers MechanicalDesignAndDraughtingRelationship entity
Handle(TransferBRep_ShapeBinder) TransferEntity(const Handle(StepRepr_MechanicalDesignAndDraughtingRelationship)& theMDADR,
const Handle(Transfer_TransientProcess)& theTP,
const StepData_Factors& theLocalFactors,
const Message_ProgressRange& theProgress);
//! Translates file by old way when CDSR are roots . Acts only if "read.step.product_mode" is equal Off.
Standard_EXPORT Handle(TransferBRep_ShapeBinder) OldWay
(const Handle(Standard_Transient)& start,

View File

@@ -14,10 +14,8 @@
#include <Standard_Type.hxx>
#include <Standard_Assert.hxx>
#include <Standard_CStringHasher.hxx>
#include <Standard_Mutex.hxx>
#include <Standard_Assert.hxx>
#include <unordered_map>
@@ -25,23 +23,12 @@ IMPLEMENT_STANDARD_RTTIEXT(Standard_Type,Standard_Transient)
//============================================================================
namespace
{
static Standard_CString copy_string (const char* theString)
{
size_t aLength = strlen (theString);
char* aResult = static_cast<char*> (Standard::Allocate (aLength + 1));
strncpy (aResult, theString, aLength + 1); //including null-character
return aResult;
}
}
Standard_Type::Standard_Type (const std::type_info& theInfo,
const char* theName,
Standard_Size theSize,
const Handle(Standard_Type)& theParent) :
myInfo(theInfo),
myName(copy_string (theName)),
myName(theName),
mySize(theSize),
myParent(theParent)
{
@@ -75,7 +62,7 @@ void Standard_Type::Print (Standard_OStream& AStream) const
namespace {
// Map of string to type
typedef std::unordered_map<Standard_CString, Standard_Type*, Standard_CStringHasher, Standard_CStringHasher> registry_type;
typedef std::unordered_map<std::type_index, Standard_Type*> registry_type;
// Registry is made static in the function to ensure that it gets
// initialized by the time of first access
@@ -100,7 +87,7 @@ Standard_Type* Standard_Type::Register (const std::type_info& theInfo, const cha
// return existing descriptor if already in the registry
registry_type& aRegistry = GetRegistry();
Standard_Type* aType = 0;
auto anIter = aRegistry.find(theName);
auto anIter = aRegistry.find(theInfo);
if (anIter != aRegistry.end())
return anIter->second;
@@ -108,7 +95,7 @@ Standard_Type* Standard_Type::Register (const std::type_info& theInfo, const cha
aType = new Standard_Type (theInfo, theName, theSize, theParent);
// then add it to registry and return (the reference to the handle stored in the registry)
aRegistry.emplace(theName, aType);
aRegistry.emplace(theInfo, aType);
return aType;
}
@@ -116,6 +103,5 @@ Standard_Type::~Standard_Type ()
{
// remove descriptor from the registry
registry_type& aRegistry = GetRegistry();
Standard_ASSERT(aRegistry.erase(myName) > 0, "Standard_Type::~Standard_Type() cannot find itself in registry",);
Standard::Free (myName);
Standard_ASSERT(aRegistry.erase(myInfo) > 0, "Standard_Type::~Standard_Type() cannot find itself in registry",);
}

View File

@@ -299,9 +299,7 @@ namespace
// for computing boundaries presentation
Standard_Integer aNodeNumber = 0;
Standard_Integer aNbPolylines = 0;
TopLoc_Location aTrsf;
TopLoc_Location aLoc;
Handle(NCollection_Shared<TColgp_SequenceOfPnt>) aSeqPntsExtra;
for (TopExp_Explorer aFaceIter (theShape, TopAbs_FACE); aFaceIter.More(); aFaceIter.Next())
{
@@ -331,7 +329,7 @@ namespace
// take one of the shared edges and get edge triangulation
const TopoDS_Face& aFace = TopoDS::Face (anEdgeIter.Value().First());
Handle(Poly_Triangulation) aTriangulation = BRep_Tool::Triangulation (aFace, aTrsf);
Handle(Poly_Triangulation) aTriangulation = BRep_Tool::Triangulation (aFace, aLoc);
if (aTriangulation.IsNull())
{
continue;
@@ -345,7 +343,7 @@ namespace
continue;
}
Handle(Poly_PolygonOnTriangulation) anEdgePoly = BRep_Tool::PolygonOnTriangulation (anEdge, aTriangulation, aTrsf);
Handle(Poly_PolygonOnTriangulation) anEdgePoly = BRep_Tool::PolygonOnTriangulation (anEdge, aTriangulation, aLoc);
if (!anEdgePoly.IsNull()
&& anEdgePoly->Nodes().Length() >= 2)
{
@@ -371,7 +369,8 @@ namespace
// create indexed segments array to pack polylines from different edges into single array
const Standard_Integer aSegmentEdgeNb = (aNodeNumber - aNbPolylines) * 2;
Handle(Graphic3d_ArrayOfSegments) aSegments = new Graphic3d_ArrayOfSegments (aNodeNumber + aNbExtra, aSegmentEdgeNb + aNbExtra);
Handle(Graphic3d_ArrayOfSegments) aSegments = new Graphic3d_ArrayOfSegments (aNodeNumber + aNbExtra, aSegmentEdgeNb + aNbExtra,
Standard_False, Standard_True);
for (TopTools_IndexedDataMapOfShapeListOfShape::Iterator anEdgeIter (anEdgesMap); anEdgeIter.More(); anEdgeIter.Next())
{
if (anEdgeIter.Value().Extent() == 0)
@@ -379,50 +378,77 @@ namespace
continue;
}
const TopoDS_Face& aFace = TopoDS::Face (anEdgeIter.Value().First());
Handle(Poly_Triangulation) aTriangulation = BRep_Tool::Triangulation (aFace, aTrsf);
if (aTriangulation.IsNull())
{
continue;
}
const TopoDS_Edge& anEdge = TopoDS::Edge (anEdgeIter.Key());
if (theUpperContinuity < GeomAbs_CN
&& anEdgeIter.Value().Extent() >= 2
&& BRep_Tool::MaxContinuity (anEdge) > theUpperContinuity)
&& anEdgeIter.Value().Extent() >= 2
&& BRep_Tool::MaxContinuity (anEdge) > theUpperContinuity)
{
continue;
}
Handle(Poly_PolygonOnTriangulation) anEdgePoly = BRep_Tool::PolygonOnTriangulation (anEdge, aTriangulation, aTrsf);
if (anEdgePoly.IsNull()
|| anEdgePoly->Nodes().Length () < 2)
Standard_Integer aFaceIndex = 0;
const Standard_Integer aFirstNodeInFace = aSegments->VertexNumber() + 1;
for (TopTools_ListOfShape::Iterator aFaceIter (anEdgeIter.Value()); aFaceIter.More(); aFaceIter.Next())
{
continue;
}
// get edge nodes indexes from face triangulation
const TColStd_Array1OfInteger& anEdgeNodes = anEdgePoly->Nodes();
// collect the edge nodes
Standard_Integer aSegmentEdge = aSegments->VertexNumber() + 1;
for (Standard_Integer aNodeIdx = anEdgeNodes.Lower(); aNodeIdx <= anEdgeNodes.Upper(); ++aNodeIdx)
{
// node index in face triangulation
// get node and apply location transformation to the node
const Standard_Integer aTriIndex = anEdgeNodes.Value (aNodeIdx);
gp_Pnt aTriNode = aTriangulation->Node (aTriIndex);
if (!aTrsf.IsIdentity())
const TopoDS_Face& aFace = TopoDS::Face (aFaceIter.Value());
Handle(Poly_Triangulation) aTriangulation = BRep_Tool::Triangulation (aFace, aLoc);
if (aTriangulation.IsNull())
{
aTriNode.Transform (aTrsf);
continue;
}
aSegments->AddVertex (aTriNode);
if (aNodeIdx != anEdgeNodes.Lower())
Standard_Boolean aHasNormals = aTriangulation->HasNormals();
Handle(Poly_PolygonOnTriangulation) anEdgePoly = BRep_Tool::PolygonOnTriangulation (anEdge, aTriangulation, aLoc);
if (anEdgePoly.IsNull()
|| anEdgePoly->Nodes().Length () < 2)
{
aSegments->AddEdge ( aSegmentEdge);
aSegments->AddEdge (++aSegmentEdge);
continue;
}
// get edge nodes indexes from face triangulation
const TColStd_Array1OfInteger& anEdgeNodes = anEdgePoly->Nodes();
const gp_Trsf& aTrsf = aLoc.Transformation();
// collect the edge nodes
Standard_Integer aSegmentEdge = aFirstNodeInFace;
for (Standard_Integer aNodeIdx = anEdgeNodes.Lower(); aNodeIdx <= anEdgeNodes.Upper(); ++aNodeIdx)
{
// node index in face triangulation
// get node and apply location transformation to the node
const Standard_Integer aTriIndex = anEdgeNodes.Value (aNodeIdx);
gp_Pnt aTriNode = aTriangulation->Node (aTriIndex);
gp_Dir aNorm = aHasNormals ? aTriangulation->Normal (aTriIndex) : gp_Dir();
if (aFace.Orientation() == TopAbs_REVERSED)
{
aNorm.Reverse();
}
if (!aLoc.IsIdentity())
{
aTriNode.Transform (aTrsf);
aNorm.Transform (aTrsf);
}
if (aFaceIndex == 0)
{
aSegments->AddVertex (aTriNode, aNorm);
if (aNodeIdx != anEdgeNodes.Lower())
{
aSegments->AddEdge (aSegmentEdge);
aSegments->AddEdge (++aSegmentEdge);
}
}
else
{
gp_XYZ aNormSum;
aSegments->VertexNormal (aSegmentEdge, aNormSum.ChangeCoord (1), aNormSum.ChangeCoord (2), aNormSum.ChangeCoord (3));
aNormSum += aNorm.XYZ();
aNormSum.Normalize();
aSegments->SetVertexNormal (aSegmentEdge, aNormSum.ChangeCoord (1), aNormSum.ChangeCoord (2), aNormSum.ChangeCoord (3));
++aSegmentEdge;
}
}
++aFaceIndex;
}
}
@@ -588,7 +614,13 @@ void StdPrs_ShadedShape::Add (const Handle (Prs3d_Presentation)& thePrs,
if (Handle(Graphic3d_ArrayOfSegments) aBndSegments = fillFaceBoundaries (theShape, theDrawer->FaceBoundaryUpperContinuity()))
{
Handle(Graphic3d_Group) aPrsGrp = !theGroup.IsNull() ? theGroup : thePrs->NewGroup();
aPrsGrp->SetGroupPrimitivesAspect (theDrawer->FaceBoundaryAspect()->Aspect());
Handle(Graphic3d_AspectLine3d) aLineAspect = Handle(Graphic3d_AspectLine3d)(theDrawer->FaceBoundaryAspect()->Aspect());
if (theDrawer->FaceBoundaryShadingOverride())
{
Quantity_Color aColor = theDrawer->ShadingAspect()->Color();
aLineAspect->SetColor (aColor);
}
aPrsGrp->SetGroupPrimitivesAspect (aLineAspect);
aPrsGrp->AddPrimitiveArray (aBndSegments);
}
}

View File

@@ -661,7 +661,6 @@ static Standard_CString schemaAP242DIS = "AP242_MANAGED_MODEL_BASED_3D_ENGINEERI
#include <StepRepr_CharacterizedRepresentation.hxx>
#include <StepRepr_ConstructiveGeometryRepresentation.hxx>
#include <StepRepr_ConstructiveGeometryRepresentationRelationship.hxx>
#include <StepRepr_MechanicalDesignAndDraughtingRelationship.hxx>
#include <StepVisual_CharacterizedObjAndRepresentationAndDraughtingModel.hxx>
#include <StepVisual_AnnotationFillArea.hxx>
#include <StepVisual_AnnotationFillAreaOccurrence.hxx>
@@ -1569,7 +1568,6 @@ StepAP214_Protocol::StepAP214_Protocol ()
types.Bind(STANDARD_TYPE(StepBasic_GeneralPropertyRelationship), 821);
types.Bind(STANDARD_TYPE(StepRepr_BooleanRepresentationItem), 822);
types.Bind(STANDARD_TYPE(StepRepr_RealRepresentationItem), 823);
types.Bind(STANDARD_TYPE(StepRepr_MechanicalDesignAndDraughtingRelationship), 824);
}

View File

@@ -166,7 +166,7 @@ public:
bool ReadName = true; //<! NameMode is used to indicate read Name or not
bool ReadLayer = true; //<! LayerMode is used to indicate read Layers or not
bool ReadProps = true; //<! PropsMode is used to indicate read Validation properties or not
bool ReadMetadata = true; //! Parameter for metadata reading
bool ReadMetadata = false; //! Parameter for metadata reading
// Write
WriteMode_PrecisionMode WritePrecisionMode = WriteMode_PrecisionMode_Average; //<! Specifies the mode of writing the resolution value into the STEP file

View File

@@ -299,7 +299,7 @@ void StepData_StepReaderData::cleanText(const Handle(TCollection_HAsciiString)&
}
}
}
if (aChar == '\n' || aChar == '\r')
if (aChar == '\n')
{
aResString.SetValue(aSetCharInd, aResString.ToExtString() + aStringInd);
aResStringSize--;

View File

@@ -88,8 +88,6 @@ StepRepr_MaterialPropertyRepresentation.cxx
StepRepr_MaterialPropertyRepresentation.hxx
StepRepr_MeasureRepresentationItem.cxx
StepRepr_MeasureRepresentationItem.hxx
StepRepr_MechanicalDesignAndDraughtingRelationship.cxx
StepRepr_MechanicalDesignAndDraughtingRelationship.hxx
StepRepr_NextAssemblyUsageOccurrence.cxx
StepRepr_NextAssemblyUsageOccurrence.hxx
StepRepr_ParallelOffset.cxx

View File

@@ -1,20 +0,0 @@
// Copyright (c) 2024 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <Standard_Type.hxx>
#include <StepRepr_MechanicalDesignAndDraughtingRelationship.hxx>
IMPLEMENT_STANDARD_RTTIEXT(StepRepr_MechanicalDesignAndDraughtingRelationship, StepRepr_RepresentationRelationship)
StepRepr_MechanicalDesignAndDraughtingRelationship::StepRepr_MechanicalDesignAndDraughtingRelationship() {}

View File

@@ -1,37 +0,0 @@
// Copyright (c) 2024 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#ifndef _StepRepr_MechanicalDesignAndDraughtingRelationship_HeaderFile
#define _StepRepr_MechanicalDesignAndDraughtingRelationship_HeaderFile
#include <Standard.hxx>
#include <Standard_Type.hxx>
#include <StepRepr_RepresentationRelationship.hxx>
class StepRepr_MechanicalDesignAndDraughtingRelationship;
DEFINE_STANDARD_HANDLE(StepRepr_MechanicalDesignAndDraughtingRelationship, StepRepr_RepresentationRelationship)
class StepRepr_MechanicalDesignAndDraughtingRelationship : public StepRepr_RepresentationRelationship
{
public:
//! Returns a MechanicalDesignAndDraughtingRelationship
Standard_EXPORT StepRepr_MechanicalDesignAndDraughtingRelationship();
DEFINE_STANDARD_RTTIEXT(StepRepr_MechanicalDesignAndDraughtingRelationship, StepRepr_RepresentationRelationship)
};
#endif // _StepRepr_MechanicalDesignAndDraughtingRelationship_HeaderFile

View File

@@ -1008,7 +1008,7 @@ Handle(Geom_BSplineSurface) StepToGeom::MakeBSplineSurface (const Handle(StepGeo
Handle(Geom_CartesianPoint) StepToGeom::MakeCartesianPoint (const Handle(StepGeom_CartesianPoint)& SP,
const StepData_Factors& theLocalFactors)
{
if (!SP.IsNull() && SP->NbCoordinates() == 3)
if (SP->NbCoordinates() == 3)
{
const Standard_Real LF = theLocalFactors.LengthFactor();
const Standard_Real X = SP->CoordinatesValue(1) * LF;

View File

@@ -408,24 +408,7 @@ void StepToTopoDS_TranslateEdge::MakeFromCurve3D
temp1 = pU1.Distance ( pv1 );
temp2 = pU2.Distance ( pv2 );
if ( temp1 > preci || temp2 > preci ) {
// #25415: handling of special case found on some STEP files produced by FPX Expert 2013 (PCB design system):
// edge curve is line displaced from its true position but with correct direction;
// we can shift the line in this case so that it passes through vertices correcty
if (Abs (temp1 - temp2) < preci && Abs (U2 - U1 - pnt1.Distance(pnt2)) < Precision::Confusion() &&
C1->IsKind(STANDARD_TYPE(Geom_Line)))
{
Handle(Geom_Line) aLine = Handle(Geom_Line)::DownCast (C1);
gp_Lin aLin = aLine->Lin();
gp_Pnt anOrigin = pnt1.XYZ() - aLin.Position().Direction().XYZ() * U1;
aLin.SetLocation (anOrigin);
C1 = new Geom_Line (aLin);
TP->AddWarning (C3D,"Poor result from projection vertex / line 3d, line shifted");
}
else
{
TP->AddWarning (C3D,"Poor result from projection vertex / curve 3d");
}
TP->AddWarning (C3D,"Poor result from projection vertex / curve 3d");
}
B.UpdateVertex ( V1, 1.000001*temp1 ); //:h6 abv 14 Jul 98: PRO8845 #2746: *=1.0001
B.UpdateVertex ( V2, 1.000001*temp2 ); //:h6

View File

@@ -105,13 +105,12 @@ namespace {
// ============================================================================
static void SetNodes(const Handle(Poly_Triangulation)& theMesh,
Handle(TColgp_HArray1OfXYZ)& theNodes,
const Standard_Integer theNumPnindex,
Handle(TColStd_HArray1OfInteger)& thePnindices,
const Standard_Real theLengthFactor)
{
for (Standard_Integer aPnIndex = 1; aPnIndex <= theMesh->NbNodes(); ++aPnIndex)
{
const gp_XYZ& aPoint = theNodes->Value((theNumPnindex > 0) ? thePnindices->Value(aPnIndex) : aPnIndex);
const gp_XYZ& aPoint = theNodes->Value(thePnindices->Value(aPnIndex));
theMesh->SetNode(aPnIndex, theLengthFactor * aPoint);
}
}
@@ -327,11 +326,10 @@ namespace {
const Standard_Boolean aHasUVNodes = Standard_False;
const Standard_Boolean aHasNormals = (aNormNum > 0);
const Standard_Integer aNbNodes = (aNumPnindex > 0) ? aNumPnindex : aNodes->Length();
if (aTrianStripsNum == 0 && aTrianFansNum == 0)
{
aMesh = new Poly_Triangulation(aNbNodes, aTrianNum, aHasUVNodes, aHasNormals);
aMesh = new Poly_Triangulation(aNumPnindex, aTrianNum, aHasUVNodes, aHasNormals);
}
else
{
@@ -361,14 +359,14 @@ namespace {
aNbTriaFans += aTriangleFan->Length() - 2;
}
aMesh = new Poly_Triangulation(aNbNodes, aNbTriaStrips + aNbTriaFans, aHasUVNodes, aHasNormals);
aMesh = new Poly_Triangulation(aNumPnindex, aNbTriaStrips + aNbTriaFans, aHasUVNodes, aHasNormals);
}
SetNodes(aMesh, aNodes, aNumPnindex, aPnindices, theLocalFactors.LengthFactor());
SetNodes(aMesh, aNodes, aPnindices, theLocalFactors.LengthFactor());
if (aHasNormals)
{
SetNormals(aMesh, aNormals, aNormNum, aNbNodes);
SetNormals(aMesh, aNormals, aNormNum, aNumPnindex);
}
SetTriangles(aMesh, aTriangles, aTrianStripsNum, aTriaStrips, aTrianFansNum, aTriaFans);
@@ -763,8 +761,6 @@ void StepToTopoDS_TranslateFace::Init(const Handle(StepVisual_TessellatedFace)&
if (theNMTool.IsActive())
theNMTool.Bind(theTF, aF);
aTP->Bind(theTF, new TransferBRep_ShapeBinder(aF));
myResult = aF;
myError = StepToTopoDS_TranslateFaceDone;
done = Standard_True;

View File

@@ -96,11 +96,6 @@ void StepToTopoDS_TranslateVertex::Init(const Handle(StepShape_Vertex)& aVertex,
//:S4136 Standard_Real preci = BRepAPI::Precision();
const Handle(StepShape_VertexPoint) VP = Handle(StepShape_VertexPoint)::DownCast(aVertex);
const Handle(StepGeom_Point) P = VP->VertexGeometry();
if (P.IsNull()) {
myError = StepToTopoDS_TranslateVertexOther;
done = Standard_False;
return;
}
const Handle(StepGeom_CartesianPoint) P1 = Handle(StepGeom_CartesianPoint)::DownCast(P);
Handle(Geom_CartesianPoint) P2 = StepToGeom::MakeCartesianPoint (P1, theLocalFactors);
BRep_Builder B;

View File

@@ -1713,6 +1713,11 @@ struct ViewerTest_AspectsChangeSet
Standard_Integer ToSetTypeOfFaceBoundaryLine;
Aspect_TypeOfLine TypeOfFaceBoundaryLine;
Standard_Integer ToSetFaceBoundaryShading;
Standard_Integer ToFaceBoundaryEdgeColorOverride;
Graphic3d_TypeOfShadingModel FaceBoundaryShading;
TCollection_AsciiString FaceBoundaryShadingModelName;
Standard_Integer ToSetMaxParamValue;
Standard_Real MaxParamValue;
@@ -1787,6 +1792,9 @@ struct ViewerTest_AspectsChangeSet
FaceBoundaryWidth (1.0f),
ToSetTypeOfFaceBoundaryLine(0),
TypeOfFaceBoundaryLine (Aspect_TOL_SOLID),
ToSetFaceBoundaryShading (0),
ToFaceBoundaryEdgeColorOverride (0),
FaceBoundaryShading (Graphic3d_TypeOfShadingModel_DEFAULT),
//
ToSetMaxParamValue (0),
MaxParamValue (500000),
@@ -1828,6 +1836,7 @@ struct ViewerTest_AspectsChangeSet
&& ToSetFaceBoundaryUpperContinuity == 0
&& ToSetFaceBoundaryColor == 0
&& ToSetFaceBoundaryWidth == 0
&& ToSetFaceBoundaryShading == 0
&& ToSetTypeOfFaceBoundaryLine == 0
&& ToSetMaxParamValue == 0
&& ToSetSensitivity == 0
@@ -1875,6 +1884,12 @@ struct ViewerTest_AspectsChangeSet
Message::SendFail() << "Error: the free boundary width should be within [1; 10] range (specified " << FreeBoundaryWidth << ")";
isOk = Standard_False;
}
if (ToSetFaceBoundaryShading == 1
&& (FaceBoundaryShading < Graphic3d_TypeOfShadingModel_DEFAULT || FaceBoundaryShading > Graphic3d_TypeOfShadingModel_PbrFacet))
{
Message::SendFail() << "Error: unknown face boundary shading model " << FaceBoundaryShadingModelName << ".";
isOk = Standard_False;
}
if (MaxParamValue < 0.0)
{
Message::SendFail() << "Error: the max parameter value should be greater than zero (specified " << MaxParamValue << ")";
@@ -2034,6 +2049,16 @@ struct ViewerTest_AspectsChangeSet
theDrawer->FaceBoundaryAspect()->SetWidth (FaceBoundaryWidth);
}
}
if (ToSetFaceBoundaryShading != 0)
{
if (ToSetFaceBoundaryShading != -1
|| theDrawer->HasOwnFaceBoundaryAspect())
{
toRecompute = theDrawer->SetupOwnFaceBoundaryAspect (aDefDrawer) || toRecompute;
theDrawer->FaceBoundaryAspect()->Aspect()->SetShadingModel (FaceBoundaryShading);
theDrawer->SetFaceBoundaryShadingOverride (ToFaceBoundaryEdgeColorOverride);
}
}
if (ToSetTypeOfFaceBoundaryLine != 0)
{
if (ToSetTypeOfFaceBoundaryLine != -1
@@ -2389,6 +2414,17 @@ static Standard_Integer VAspects (Draw_Interpretor& theDI,
if (aNames.Size() >= 2
&& aNames.Value (2).IsIntegerValue())
{
if (aNames.Size() == 9 && aNames.Value (9).IsIntegerValue())
{
if (ViewerTest::ParseShadingModel (aNames.Value (8).ToCString(), aChangeSet->FaceBoundaryShading)
&& (aNames.Value (9).IsIntegerValue() == 0 || aNames.Value (9).IsIntegerValue() == 1))
{
aChangeSet->ToSetFaceBoundaryShading = 1;
aChangeSet->ToFaceBoundaryEdgeColorOverride = aNames.Value (9).IsIntegerValue();
aNames.Remove (9);
aNames.Remove (8);
}
}
if (aNames.Size() == 7)
{
if (ViewerTest::ParseLineType (aNames.Value (7).ToCString(), aChangeSet->TypeOfFaceBoundaryLine))
@@ -3148,6 +3184,29 @@ static Standard_Integer VAspects (Draw_Interpretor& theDI,
aChangeSet->ToSetShadingModel = -1;
aChangeSet->ShadingModel = Graphic3d_TypeOfShadingModel_DEFAULT;
}
else if (anArg == "-setboundaryshading")
{
aChangeSet->ToSetFaceBoundaryShading = 1;
aChangeSet->FaceBoundaryShadingModelName = theArgVec[++anArgIter];
if (!ViewerTest::ParseShadingModel (theArgVec[anArgIter], aChangeSet->FaceBoundaryShading))
{
Message::SendFail() << "Error: wrong syntax at " << anArg;
return 1;
}
Standard_Integer anOverrideFlag = Draw::Atoi (theArgVec[++anArgIter]);
if (!(anOverrideFlag == 0 || anOverrideFlag == 1))
{
Message::SendFail() << "Error: wrong syntax at " << anArg;
return 1;
}
aChangeSet->ToFaceBoundaryEdgeColorOverride = anOverrideFlag;
}
else if (anArg == "-unsetboundaryshading")
{
aChangeSet->ToSetFaceBoundaryShading = -1;
aChangeSet->ToFaceBoundaryEdgeColorOverride = 0;
aChangeSet->FaceBoundaryShading = Graphic3d_TypeOfShadingModel_Unlit;
}
else if (anArg == "-setinterior"
|| anArg == "-setinteriorstyle"
|| anArg == "-interior"
@@ -3272,6 +3331,8 @@ static Standard_Integer VAspects (Draw_Interpretor& theDI,
aChangeSet->FaceBoundaryWidth = 1.0f;
aChangeSet->ToSetTypeOfFaceBoundaryLine = -1;
aChangeSet->TypeOfFaceBoundaryLine = Aspect_TOL_SOLID;
aChangeSet->ToSetFaceBoundaryShading = -1;
aChangeSet->FaceBoundaryShading = Graphic3d_TypeOfShadingModel_DEFAULT;
//
aChangeSet->ToSetHatch = -1;
aChangeSet->StdHatchStyle = -1;
@@ -6804,6 +6865,8 @@ vaspects [-noupdate|-update] [name1 [name2 [...]] | -defaults] [-subshapes subna
[-sensitivity {selection_mode} {value}]
[-shadingModel {unlit|flat|gouraud|phong|pbr|pbr_facet}]
[-unsetShadingModel]
[-setboundaryshading {unlit|flat|gouraud|phong|pbr|pbr_facet}]
[-unsetboundaryshading]
[-interior {solid|hatch|hidenline|point}] [-setHatch HatchStyle]
[-unsetInterior]
[-faceBoundaryDraw {0|1}] [-mostContinuity {c0|g1|c1|g2|c2|c3|cn}]

View File

@@ -1197,10 +1197,10 @@ static Standard_Integer XShowFaceBoundary (Draw_Interpretor& di,
Standard_Integer argc,
const char ** argv)
{
if (( argc != 4 && argc < 7 ) || argc > 9)
if (( argc != 4 && argc < 7 ) || argc > 11)
{
di << "Usage :\n " << argv[0]
<< " Doc Label IsOn [R G B [LineWidth [LineStyle]]]\n"
<< " Doc Label IsOn [R G B [LineWidth [LineStyle]]] Model Shading\n"
<< " Doc - is the document name. \n"
<< " Label - is the shape label. \n"
<< " IsOn - flag indicating whether the boundaries\n"
@@ -1216,7 +1216,12 @@ static Standard_Integer XShowFaceBoundary (Draw_Interpretor& di,
<< " 1 - dashed \n"
<< " 2 - dot \n"
<< " 3 - dashdot\n"
<< " (default is solid)";
<< " (default is solid)\n"
<< " Model - shading model [unlit|phong|pbr|gouraud]\n"
<< " Shading - flag indicating if the boundaries\n"
<< " should be shaded:"
<< " 0 - no override edge color"
<< " 1 - override edge color";
return 1;
}
@@ -1310,6 +1315,17 @@ static Standard_Integer XShowFaceBoundary (Draw_Interpretor& di,
aDrawer->SetFaceBoundaryAspect (aBoundaryAspect);
// set shading properties for face boundaries
if (argc == 11)
{
Graphic3d_TypeOfShadingModel aShadingModel;
if (ViewerTest::ParseShadingModel (argv[9], aShadingModel))
{
aDrawer->FaceBoundaryAspect()->Aspect()->SetShadingModel (aShadingModel);
aDrawer->SetFaceBoundaryShadingOverride (Draw::Atoi (argv[10]) == 1 ? Standard_True : Standard_False);
}
}
aContext->Redisplay (anInteractive, Standard_True);
return 0;

View File

@@ -1,3 +1,8 @@
puts "TODO OCC23068 ALL: ERROR. offsetperform operation not done."
puts "TODO OCC23068 ALL: result is not a topological shape!!!"
puts "TODO OCC23068 ALL: Error: The command cannot be built"
puts "TODO OCC23068 ALL: TEST INCOMPLETE"
puts "========================"
puts " OCC427 "
puts "(case 6)"

View File

@@ -1,4 +1,8 @@
puts "TODO OCC25925 ALL: Error : The area of result shape is"
puts "TODO OCC25925 ALL: ERROR. offsetperform operation not done."
puts "TODO OCC25925 ALL: Error: The command cannot be built"
puts "TODO OCC25925 ALL: Faulty OCC5805 : result is not Closed shape"
puts "TODO OCC25925 ALL: TEST INCOMPLETE"
puts "TODO OCC25925 ALL: Tcl Exception: Error : command \\\"nbshapes result\\\" gives an empty result"
puts "============"
puts "OCC5805"
@@ -48,6 +52,6 @@ if {$index == -1} {
}
checknbshapes result -t -wire 3 -face 3 -shell 1 -solid 1
checknbshapes result -t -wire 5 -face 5 -shell 2 -solid 1
checkview -display result -2d -path ${imagedir}/${test_image}.png

View File

@@ -1,4 +1,8 @@
puts "TODO OCC25925 ALL: Error : The area of result shape is"
puts "TODO OCC25925 ALL: Faulty OCC5805 : result is not Closed shape"
puts "TODO OCC25925 ALL: ERROR. offsetperform operation not done."
puts "TODO OCC25925 ALL: Tcl Exception: Error : command \\\"nbshapes result\\\" gives an empty result"
puts "TODO OCC25925 ALL: Error: The command cannot be built"
puts "TODO OCC25925 ALL: TEST INCOMPLETE"
puts "============"
puts "OCC5805"
@@ -49,6 +53,6 @@ if {$index == -1} {
}
checknbshapes result -vertex 1 -edge 2 -wire 3 -face 3 -shell 1 -solid 1 -compsolid 0 -compound 0 -shape 11
checknbshapes result -vertex 2 -edge 3 -wire 3 -face 3 -shell 1 -solid 1 -compsolid 0 -compound 0 -shape 13
checkview -display result -2d -path ${imagedir}/${test_image}.png

View File

@@ -1,4 +1,8 @@
puts "TODO OCC25925 ALL: Error : The area of result shape is"
puts "TODO OCC25925 ALL: Faulty OCC5805 : result is not Closed shape"
puts "TODO OCC25925 ALL: ERROR. offsetperform operation not done."
puts "TODO OCC25925 ALL: Tcl Exception: Error : command \\\"nbshapes result\\\" gives an empty result"
puts "TODO OCC25925 ALL: Error: The command cannot be built"
puts "TODO OCC25925 ALL: TEST INCOMPLETE"
puts "============"
puts "OCC5805"
@@ -49,6 +53,6 @@ if {$index == -1} {
}
checknbshapes result -vertex 1 -edge 2 -wire 3 -face 3 -shell 1 -solid 1 -compsolid 0 -compound 0 -shape 11
checknbshapes result -vertex 2 -edge 3 -wire 3 -face 3 -shell 1 -solid 1 -compsolid 0 -compound 0 -shape 13
checkview -display result -2d -path ${imagedir}/${test_image}.png

View File

@@ -1,4 +1,6 @@
puts "TODO OCC25925 ALL: Error : The area of result shape is"
puts "TODO OCC25925 ALL: Faulty OCC5805 : result is not Closed shape"
puts "TODO OCC25925 ALL: ERROR. offsetperform operation not done."
puts "TODO OCC25925 ALL: Error: The command cannot be built"
puts "============"
puts "OCC5805"

View File

@@ -1,4 +1,7 @@
puts "TODO OCC25925 ALL: Error : The area of result shape is"
puts "TODO OCC23068 ALL: ERROR. offsetperform operation not done."
puts "TODO OCC25925 ALL: Error: The command cannot be built"
puts "TODO OCC25925 ALL: Tcl Exception: result is not a topological shape"
puts "TODO OCC25925 ALL: TEST INCOMPLETE"
puts "============"
puts "OCC5805"

View File

@@ -1,4 +1,8 @@
puts "TODO OCC25925 ALL: Error : The area of result shape is"
puts "TODO OCC25925 ALL: Faulty OCC5805 : result is not Closed shape"
puts "TODO OCC25925 ALL: ERROR. offsetperform operation not done."
puts "TODO OCC25925 ALL: Tcl Exception: Error : command \\\"nbshapes result\\\" gives an empty result"
puts "TODO OCC25925 ALL: Error: The command cannot be built"
puts "TODO OCC25925 ALL: TEST INCOMPLETE"
puts "============"
puts "OCC5805"

View File

@@ -1,3 +1,5 @@
puts "TODO OCC25395 ALL: ERROR. offsetperform operation not done."
puts "========"
puts "OCC25395"
puts "========"

View File

@@ -1,3 +1,5 @@
puts "TODO OCC25939 ALL: An exception was caught"
puts "============"
puts "0025939: S I G S E G V in MakeThickSolid"
puts "============"

View File

@@ -1,3 +1,5 @@
puts "TODO OCC31845 All: ERROR. offsetperform operation not done."
puts "============================================"
puts "OCC31845: BRepOffsetAPI_MakeThickSolid fails"
puts "============================================"

View File

@@ -1,3 +1,5 @@
puts "TODO OCC31845 All: ERROR. offsetperform operation not done."
puts "============================================"
puts "OCC31845: BRepOffsetAPI_MakeThickSolid fails"
puts "============================================"

View File

@@ -1,15 +0,0 @@
puts "================================================================="
puts "0031601: Modeling Algorithms - BRepOffset_Tool Segmentation Fault"
puts "================================================================="
puts ""
pload MODELING
box b 50 50 10
explode b E
compound b_1 b_2 b_3 b_4 b_5 b_6 b_7 b_8 b_9 b_10 b_11 b_12 c
fillet s b 4 c
explode s F
offsetparameter 1.e-7 c a
offsetload s 1 s_11
offsetperform r
checkview -display r -2d -path ${imagedir}/${test_image}.png

View File

@@ -1,17 +0,0 @@
puts "==============================================================="
puts "0033367: Modeling Algorithms - Normal projection or BOP problem"
puts "==============================================================="
puts ""
pload MODELING
restore [locate_data_file bug33367_1.brep] sou
restore [locate_data_file bug33367_2.brep] des
checkshape sou
checkshape des
nproject prj sou des
checknbshapes prj -vertex 2 -edge 2 -compound 1 -shape 5
baddobjects des
baddtools prj
bfillds
bbuild res
checkshape res

View File

@@ -1,14 +0,0 @@
puts "========================================================="
puts "0033383: Modeling Algorithms - Wire/Face creation problem"
puts "========================================================="
puts ""
pload MODELING
restore [locate_data_file bug33383.brep] a
connectedges res a 1e-07 0
explode res
mkplane pln1 res_1 1
if ![catch { buildfaces rebf pln1 res_2 }] then {
puts "Error: buildfaces command should be failed"
}

View File

@@ -1,11 +0,0 @@
puts "========"
puts "OCC25415"
puts "========"
puts ""
##########################################################################
# Invalid result of loading a STEP file
##########################################################################
stepread [locate_data_file bug25415_part_of_hdrv8w64p254_4x2_1016x502h838p.stp] a *
checkshape a_1

View File

@@ -1,12 +0,0 @@
puts "========================"
puts "0033410: Data Exchange, Step Import - TRIANGULATED_FACE from STEP where there are no pnval entries"
puts "========================"
pload OCAF
# Read file
ReadStep D [locate_data_file bug33410.step]
XGetOneShape sh D
checktrinfo sh -face 1 -nod 81 -tri 128
Close D

View File

@@ -1,17 +0,0 @@
puts "===================================="
puts "0033638: Data Exchange, Step Import - Style for tessellated object missed"
puts "===================================="
puts ""
pload OCAF
ReadStep D [locate_data_file bug33638.stp]
if { [ XFindColor D 0 0 1 ] == "" } {
puts "Error: Color not found"
}
if { [ XFindColor D 1 0 0 ] == "" } {
puts "Error: Color not found"
}
Close D

View File

@@ -1,22 +0,0 @@
# !!!! This file is generated automatically, do not edit manually! See end script
puts "TODO CR23096 ALL: TPSTAT : Faulty"
puts "TODO CR23096 ALL: LABELS : Faulty"
set filename bug29241.stp
set ref_data {
DATA : Faulties = 0 ( 22 ) Warnings = 0 ( 22 ) Summary = 0 ( 44 )
TPSTAT : Faulties = 0 ( 0 ) Warnings = 2 ( 1 ) Summary = 2 ( 1 )
CHECKSHAPE : Wires = 0 ( 0 ) Faces = 0 ( 0 ) Shells = 0 ( 0 ) Solids = 0 ( 0 )
NBSHAPES : Solid = 1 ( 1 ) Shell = 2 ( 2 ) Face = 205 ( 205 )
STATSHAPE : Solid = 1 ( 1 ) Shell = 2 ( 2 ) Face = 205 ( 205 ) FreeWire = 0 ( 1 )
TOLERANCE : MaxTol = 0.000584860357 ( 0.0009118447559 ) AvgTol = 2.354671626e-005 ( 3.258060117e-005 )
LABELS : N0Labels = 1 ( 1 ) N1Labels = 3 ( 18 ) N2Labels = 0 ( 0 ) TotalLabels = 4 ( 19 ) NameLabels = 1 ( 1 ) ColorLabels = 3 ( 3 ) LayerLabels = 0 ( 0 )
PROPS : Centroid = 0 ( 0 ) Volume = 0 ( 0 ) Area = 0 ( 0 )
NCOLORS : NColors = 3 ( 3 )
COLORS : Colors = LIGHTSTEELBLUE1 PALEGOLDENROD WHITE ( LIGHTSTEELBLUE1 PALEGOLDENROD WHITE )
NLAYERS : NLayers = 0 ( 0 )
LAYERS : Layers = ( )
}

View File

@@ -44,7 +44,7 @@ provider.STEP.OCC.read.color : 1
provider.STEP.OCC.read.name : 1
provider.STEP.OCC.read.layer : 1
provider.STEP.OCC.read.props : 1
provider.STEP.OCC.read.metadata : 1
provider.STEP.OCC.read.metadata : 0
provider.STEP.OCC.write.precision.mode : 0
provider.STEP.OCC.write.precision.val : 0.0001
provider.STEP.OCC.write.assembly : 0

View File

@@ -44,7 +44,7 @@ provider.STEP.OCC.read.color : 1
provider.STEP.OCC.read.name : 1
provider.STEP.OCC.read.layer : 1
provider.STEP.OCC.read.props : 1
provider.STEP.OCC.read.metadata : 1
provider.STEP.OCC.read.metadata : 0
provider.STEP.OCC.write.precision.mode : 0
provider.STEP.OCC.write.precision.val : 0.0001
provider.STEP.OCC.write.assembly : 0

View File

@@ -11,7 +11,7 @@ set end_line "\" \n"
# Read original file
if { [string length $filename] > 1} {
set path_file [locate_data_file $filename]
if { [catch { ReadFile D $path_file } catch_result] } {
if { [catch { ReadFile D $path_file -conf $conf} catch_result] } {
set err_msg "Error: file was not read - exception "
puts $err_msg
append todo_msg $todo_mask $err_msg $end_line

View File

@@ -0,0 +1,2 @@
set conf "provider.STEP.OCC.read.metadata : 1"

View File

@@ -1,3 +1,6 @@
puts "TODO OCC23068 ALL: ERROR. offsetperform operation not done."
puts "TODO OCC23068 ALL: Error : The volume of result shape "
## ======================================
## Grid : CCV002
## Test : A1
@@ -9,4 +12,4 @@ explode s F
offsetcompshape result s -10 s_1
#real volume of result shape is unknown yet
checkprops result -v 1.01e+06
checkprops result -v 0

View File

@@ -4,6 +4,7 @@
## Comment : From CV tests serie page 60
## ======================================
puts "TODO OCC26556 ALL: ERROR. offsetperform operation not done."
restore [locate_data_file CCV_2_d1_gsw.rle] s
explode s F
catch {offsetcompshape result s -2 s_17}

View File

@@ -1,9 +1,9 @@
puts "TODO CR23530 ALL: Faulty shapes in variables faulty_1 to faulty_"
puts "TODO OCC23068 ALL: Error : The area of face "
puts "TODO OCC23748 ALL: ERROR. offsetperform operation not done."
puts "TODO OCC23748 ALL: Error: The command cannot be built"
puts "TODO OCC26556 ALL: Error : The offset cannot be built."
pcone s 5 0 12 90
trotate s 0 0 0 0 0 1 90
OFFSETSHAPE 1 {s_4} $calcul $type
checkprops result -v 78.53988
checkprops result -v 0

View File

@@ -1,5 +1,9 @@
puts "TODO OCC23748 ALL: ERROR. offsetperform operation not done."
puts "TODO OCC23748 ALL: Error: The command cannot be built"
puts "TODO OCC26556 ALL: Error : The offset cannot be built."
pcone s 5 0 12 270
OFFSETSHAPE -1 {s_4} $calcul $type
checkprops result -v 235.619
checkprops result -v 0

View File

@@ -1,5 +1,9 @@
puts "TODO OCC23748 ALL: ERROR. offsetperform operation not done."
puts "TODO OCC23748 ALL: Error: The command cannot be built"
puts "TODO OCC26556 ALL: Error : The offset cannot be built."
pcone s 5 0 12 270
OFFSETSHAPE 1 {s_3 s_4} $calcul $type
checkprops result -v 235.619
checkprops result -v 0

View File

@@ -1,9 +1,10 @@
puts "TODO OCC23068 ALL: Error : The area of face "
puts "TODO CR23530 ALL: Faulty shapes in variables faulty_1 to faulty_"
puts "TODO OCC23748 ALL: ERROR. offsetperform operation not done."
puts "TODO OCC23748 ALL: Error: The command cannot be built"
puts "TODO OCC26556 ALL: Error : The offset cannot be built."
psphere s 15 -90 60 90
trotate s 0 0 0 0 0 1 90
OFFSETSHAPE 1 {s_4} $calcul $type
checkprops result -v 3488.84
checkprops result -v 0

View File

@@ -1,8 +1,9 @@
puts "TODO OCC23068 ALL: Error : The area of face "
puts "TODO CR23530 ALL: Faulty shapes in variables faulty_1 to faulty_"
puts "TODO OCC23748 ALL: ERROR. offsetperform operation not done."
puts "TODO OCC23748 ALL: Error: The command cannot be built"
puts "TODO OCC26556 ALL: Error : The offset cannot be built."
psphere s 15 -90 60 270
OFFSETSHAPE 1 {s_4} $calcul $type
checkprops result -v 10466.5
checkprops result -v 0

View File

@@ -1,5 +1,9 @@
puts "TODO OCC23748 ALL: ERROR. offsetperform operation not done."
puts "TODO OCC23748 ALL: Error: The command cannot be built"
puts "TODO OCC26556 ALL: Error : The offset cannot be built."
psphere s 15 -90 60 270
OFFSETSHAPE -1 {s_4} $calcul $type
checkprops result -v 10466.5
checkprops result -v 0

View File

@@ -1,8 +1,10 @@
puts "TODO OCC23068 ALL: Error : The area of face "
puts "TODO OCC23068 ALL: ERROR. offsetperform operation not done."
puts "TODO OCC23068 ALL: Error : The offset cannot be built."
puts "TODO OCC23068 ALL: Error: The command cannot be built"
psphere s 15 90
trotate s 0 0 0 0 0 1 90
OFFSETSHAPE 1 {s_3} $calcul $type
checkprops result -v 3534.29
checkprops result -v 0

View File

@@ -1,4 +1,5 @@
puts "TODO OCC23068 ALL: Error : The area of face "
puts "TODO OCC23748 ALL: ERROR. offsetperform operation not done."
puts "TODO OCC23748 ALL: Error : The offset cannot be built."
psphere s 15 270

View File

@@ -1,5 +1,9 @@
puts "TODO OCC23748 ALL: ERROR. offsetperform operation not done."
puts "TODO OCC23748 ALL: Error: The command cannot be built"
puts "TODO OCC26556 ALL: Error : The offset cannot be built."
psphere s 15 270
OFFSETSHAPE -1 {s_2} $calcul $type
checkprops result -v 10602.9
checkprops result -v 0

View File

@@ -1,5 +1,8 @@
puts "TODO CR23530 ALL: Faulty shapes in variables faulty_1 to faulty_"
puts "TODO OCC23068 ALL: Error : The area of face "
puts "TODO OCC24156 MacOS: An exception was caught"
puts "TODO OCC24156 MacOS: TEST INCOMPLETE"
puts "TODO OCC23748 ALL: ERROR. offsetperform operation not done."
puts "TODO OCC23748 ALL: Error: The command cannot be built"
puts "TODO OCC26556 ALL: Error : The offset cannot be built."
ellipse w1 0 0 0 15 10
mkedge w1 w1 0 pi/2
@@ -11,4 +14,4 @@ revol s w 0 0 0 0 0 1 90
OFFSETSHAPE 1 {s_4} $calcul $type
checkprops result -v 4385.14
checkprops result -v 0

View File

@@ -1,3 +1,9 @@
puts "TODO OCC24156 MacOS: An exception was caught"
puts "TODO OCC24156 MacOS: TEST INCOMPLETE"
puts "TODO OCC23748 ALL: ERROR. offsetperform operation not done."
puts "TODO OCC23748 ALL: Error: The command cannot be built"
puts "TODO OCC26556 ALL: Error : The offset cannot be built."
ellipse w1 0 0 0 15 10
mkedge w1 w1 0 pi/2
trotate w1 0 0 0 1 0 0 90
@@ -8,4 +14,4 @@ revol s w 0 0 0 0 0 1 90
OFFSETSHAPE -1 {s_4} $calcul $type
checkprops result -v 4385.14
checkprops result -v 0

View File

@@ -1,3 +1,9 @@
puts "TODO OCC24156 MacOS: An exception was caught"
puts "TODO OCC24156 MacOS: TEST INCOMPLETE"
puts "TODO OCC23748 ALL: ERROR. offsetperform operation not done."
puts "TODO OCC23748 ALL: Error: The command cannot be built"
puts "TODO OCC26556 ALL: Error : The offset cannot be built."
ellipse w1 0 0 0 15 10
mkedge w1 w1 0 pi/2
trotate w1 0 0 0 1 0 0 90
@@ -8,4 +14,4 @@ revol s w 0 0 0 0 0 1 90
OFFSETSHAPE 1 {s_4 s_5} $calcul $type
checkprops result -v 4385.14
checkprops result -v 0

View File

@@ -1,3 +1,7 @@
puts "TODO OCC23748 ALL: ERROR. offsetperform operation not done."
puts "TODO OCC23748 ALL: Error: The command cannot be built"
puts "TODO OCC26556 ALL: Error : The offset cannot be built."
ellipse w1 0 0 0 15 10
mkedge w1 w1 0 pi/2
trotate w1 0 0 0 1 0 0 90
@@ -8,4 +12,4 @@ revol s w 0 0 0 0 0 1 90
OFFSETSHAPE -1 {s_4 s_5} $calcul $type
checkprops result -v 4385.14
checkprops result -v 0

View File

@@ -1,5 +1,8 @@
puts "TODO CR23530 ALL: Faulty shapes in variables faulty_1 to faulty_"
puts "TODO OCC23068 ALL: Error : The area of face "
puts "TODO OCC24156 MacOS: An exception was caught"
puts "TODO OCC24156 MacOS: TEST INCOMPLETE"
puts "TODO OCC23748 ALL: ERROR. offsetperform operation not done."
puts "TODO OCC23748 ALL: Error: The command cannot be built"
puts "TODO OCC26556 ALL: Error : The offset cannot be built."
ellipse w1 0 0 0 15 10
mkedge w1 w1 0 pi/2
@@ -11,4 +14,4 @@ revol s w 0 0 0 0 0 1 270
OFFSETSHAPE 1 {s_4} $calcul $type
checkprops result -v 13155.2
checkprops result -v 0

View File

@@ -1,3 +1,9 @@
puts "TODO OCC24156 MacOS: An exception was caught"
puts "TODO OCC24156 MacOS: TEST INCOMPLETE"
puts "TODO OCC23748 ALL: ERROR. offsetperform operation not done."
puts "TODO OCC23748 ALL: Error: The command cannot be built"
puts "TODO OCC26556 ALL: Error : The offset cannot be built."
cpulimit 400
ellipse w1 0 0 0 15 10
@@ -10,4 +16,4 @@ revol s w 0 0 0 0 0 1 270
OFFSETSHAPE -1 {s_4} $calcul $type
checkprops result -v 13155.2
checkprops result -v 0

View File

@@ -1,3 +1,9 @@
puts "TODO OCC24156 MacOS: An exception was caught"
puts "TODO OCC24156 MacOS: TEST INCOMPLETE"
puts "TODO OCC23748 ALL: ERROR. offsetperform operation not done."
puts "TODO OCC23748 ALL: Error: The command cannot be built"
puts "TODO OCC26556 ALL: Error : The offset cannot be built."
ellipse w1 0 0 0 15 10
mkedge w1 w1 0 pi/2
trotate w1 0 0 0 1 0 0 90
@@ -8,4 +14,4 @@ revol s w 0 0 0 0 0 1 270
OFFSETSHAPE 1 {s_4 s_5} $calcul $type
checkprops result -v 13155.2
checkprops result -v 0

View File

@@ -1,3 +1,9 @@
puts "TODO OCC24156 MacOS: An exception was caught"
puts "TODO OCC24156 MacOS: TEST INCOMPLETE"
puts "TODO OCC23748 ALL: ERROR. offsetperform operation not done."
puts "TODO OCC23748 ALL: Error: The command cannot be built"
puts "TODO OCC26556 ALL: Error : The offset cannot be built."
# 17.01.2010
cpulimit 600
# 17.01.2010
@@ -12,4 +18,4 @@ revol s w 0 0 0 0 0 1 270
OFFSETSHAPE -1 {s_4 s_5} $calcul $type
checkprops result -v 13155.2
checkprops result -v 0

View File

@@ -1,5 +1,9 @@
puts "TODO OCC23748 ALL: ERROR. offsetperform operation not done."
puts "TODO OCC23748 ALL: Error: The command cannot be built"
puts "TODO OCC26556 ALL: Error : The offset cannot be built."
pcylinder s 5 10 270
OFFSETSHAPE -1 {s_5} $calcul $type
checkprops result -v 589.049
checkprops result -v 0

View File

@@ -1,5 +1,9 @@
puts "TODO OCC23748 ALL: ERROR. offsetperform operation not done."
puts "TODO OCC23748 ALL: Error: The command cannot be built"
puts "TODO OCC26556 ALL: Error : The offset cannot be built."
pcone s 9 4 15 270
OFFSETSHAPE -1 {s_5} $calcul $type
checkprops result -v 1566.87
checkprops result -v 0

View File

@@ -1,5 +1,9 @@
puts "TODO OCC23748 ALL: ERROR. offsetperform operation not done."
puts "TODO OCC23748 ALL: Error: The command cannot be built"
puts "TODO OCC26556 ALL: Error : The offset cannot be built."
ptorus s 10 10 0 45 270
OFFSETSHAPE -1 {s_4} $calcul $type
checkprops result -v 6083.13
checkprops result -v 0

View File

@@ -1,3 +1,7 @@
puts "TODO OCC23748 ALL: ERROR. offsetperform operation not done."
puts "TODO OCC23748 ALL: Error: The command cannot be built"
puts "TODO OCC26556 ALL: Error : The offset cannot be built."
circle w -20 0 0 20
mkedge w w 0 pi*2/5
wire w w
@@ -7,4 +11,4 @@ pipe s w profile
OFFSETSHAPE 1 {s_2 s_3} $calcul $type
checkprops result -v 785.398
checkprops result -v 0

View File

@@ -1,3 +1,7 @@
puts "TODO OCC23748 ALL: ERROR. offsetperform operation not done."
puts "TODO OCC23748 ALL: Error: The command cannot be built"
puts "TODO OCC26556 ALL: Error : The offset cannot be built."
circle w -20 0 0 20
mkedge w w 0 pi*2/5
wire w w
@@ -7,4 +11,4 @@ pipe s w profile
OFFSETSHAPE 1 {s_4 s_5} $calcul $type
checkprops result -v 785.398
checkprops result -v 0

View File

@@ -1,5 +1,8 @@
puts "TODO CR23530 ALL: Faulty shapes in variables faulty_1 to faulty_"
puts "TODO OCC23068 ALL: Error : The area of face "
puts "TODO OCC24156 MacOS: An exception was caught"
puts "TODO OCC24156 MacOS: TEST INCOMPLETE"
puts "TODO OCC23748 ALL: ERROR. offsetperform operation not done."
puts "TODO OCC23748 ALL: Error: The command cannot be built"
puts "TODO OCC26556 ALL: Error : The offset cannot be built."
beziersurf c 3 2 \
0 0 0 0 5 5 2 14 3 \
@@ -9,4 +12,4 @@ prism s c 0 0 20
OFFSETSHAPE 1 {s_5 s_6} $calcul $type
checkprops result -v 3340
checkprops result -v 0

View File

@@ -1,3 +1,5 @@
puts "TODO OCC23068 All: ERROR. offsetperform operation not done."
puts "TODO OCC23068 All: Error : The volume of result shape is"
# Original bug : hkg60144
# Date : 17Juillet98
@@ -7,5 +9,5 @@ explode s f
offsetshape result s -5 s_1
checkprops result -v 2.80312e+07
checkprops result -v 2.12817e+006

40
tests/v3d/bugs/bug26072 Normal file
View File

@@ -0,0 +1,40 @@
puts "========"
puts "0026072: Visualization - more realistic display of face edges"
puts "========"
pload MODELING VISUALIZATION XDE
testreadstep [locate_data_file as1-oc-214-mat.stp] s
vclear
vinit
vdisplay s -dispmode 1
vfit
vshowfaceboundary s -setboundaryshading phong 1 -boundarycolor 50 250 50
vviewparams -scale 4.0 -proj 1.0 1.0 1.0 -up -1.0 -1.0 0.0 -at 20.0 0.0 -20.0
vdump $::imagedir/${::casename}_shading_1.png
vviewparams -scale 4.0 -proj 2.0 -1.5 3.0 -up 0.0 1.0 1.0 -at 20.0 130.0 -50.0
vdump $::imagedir/${::casename}_shading_2.png
vshowfaceboundary s -setboundaryshading phong 0 -boundarycolor 50 250 50
vviewparams -scale 4.0 -proj 1.0 1.0 1.0 -up -1.0 -1.0 0.0 -at 20.0 0.0 -20.0
vdump $::imagedir/${::casename}_noshading_1.png
vviewparams -scale 4.0 -proj 2.0 -1.5 3.0 -up 0.0 1.0 1.0 -at 20.0 130.0 -50.0
vdump $::imagedir/${::casename}_noshading_2.png
vclear
vclose
ReadStep D [locate_data_file as1-oc-214-mat.stp]
XShow D
vfit
vsetdispmode 1
XShowFaceBoundary D 0:1:1:1 1 156 156 156 1 0 phong 1
vviewparams -scale 4.0 -proj 1.0 1.0 1.0 -up -1.0 -1.0 0.0 -at 20.0 0.0 -20.0
vdump $::imagedir/${::casename}_xview_shading_1.png
vviewparams -scale 4.0 -proj 2.0 -1.5 3.0 -up 0.0 1.0 1.0 -at 20.0 130.0 -50.0
vdump $::imagedir/${::casename}_xview_shading_2.png
XShowFaceBoundary D 0:1:1:1 1 156 156 156 1 0 phong 0
vviewparams -scale 4.0 -proj 1.0 1.0 1.0 -up -1.0 -1.0 0.0 -at 20.0 0.0 -20.0
vdump $::imagedir/${::casename}_xview_noshading_1.png
vviewparams -scale 4.0 -proj 2.0 -1.5 3.0 -up 0.0 1.0 1.0 -at 20.0 130.0 -50.0
vdump $::imagedir/${::casename}_xview_noshading_2.png