Reason of bug: at the end of writing indices the "buf" was written double times.
Fix: At the end of operation skip one WriteLine.
Test case for issue CR25740
1) Version of VRML format is added to VrmlAPI_Writer::Write() and VrmlAPI::Write() to allow use the both versions of the VRML by one writer.
2) Unification of the command to write VRML of both versions. Now "writevrml" command can write VRLM files of v1.0 and v2.0, with wireframe/shaded/both representations. Parameter "Deflection" was removed (next commit will remove meshing, so parameter will be useless).
3) Meshing is removed from writers of both (v1.0 and v2.0) versions. Shaded representation is skipped in case when a mesh does not exist.
Wireframe representation checks the existence of a mesh before. If the mesh exists, a deflected edges are taken from the mesh, otherwise - are generated with the default deflection.
4) Drawing of redundant edges is removed in wireframe representation of VRML version 1.0 (a grid on non-plane surfaces does not match a real edges of TopoDS_Shape and does not match representation in version 2.0).
Test case for issue CR25279
Cause of bug is that the IGESData_BasicEditor is created before an initialization of IGESControl_Controller::Init(). IGESData_BasicEditor cannot find template "iges", so the model is still empty after creation.
1) Added a default constructor to the IGESData_BasicEditor. Can be initialized via Init() method.
2) Added some null checks in the places, where are provided access to the model (IGESData_BasicEditor's member).
3) Initialization of the IGESData_BasicEditor was placed after initialization if the IGESControl_Controller.
StlTransfer.cxx, function StlTransfer::BuildIncrementalMesh(...) fills the StlMesh_Mesh. Before this fix the StlTransfer always force meshing of the passed shape.
Now meshing is completely removed from the StlTransfer. StlWriter can return error status now, for example, if a mesh of the passed shape is empty. In this case file will be not created.
Added test case bugs/xde/bug25357
Avoid the warning on gcc compiler.
Test scripts were modified according to the fix.
1) bug23192, bug22670, bug23193: removed "isParallel" flag from the command
arguments. Manually meshing of the shape (as far as meshing was removed
from STL writer).
2) bug22898: before the fix writestl always remeshes the shape with a
deflection, related to the boundery box of the shape. For "hammer" shape
there is a 38.9076 deflection for mesh. Differences between before writing
and after reading are dedicated to fact that stl writes triangulation as
an elements of the spahe (like faces, edges etc.)
New features:
1. class NCollection_BaseVector
method:
void SetIncrement(const Standard_Integer aIncrement)
has been added.
The method allows to set the size of increment dynamically
[ not in constructor ].
2 class BOPCol_Array1
has been removed.
Changes:
1. classes
BOPDS_DS
BOPDS_InterfFF
BOPDS_Iterator
BOPDS_VectorOfCurve
BOPDS_VectorOfFaceInfo
BOPDS_VectorOfIndexRange
BOPDS_VectorOfInterfEE
BOPDS_VectorOfInterfEF
BOPDS_VectorOfInterfEZ
BOPDS_VectorOfInterfFF
BOPDS_VectorOfInterfFZ
BOPDS_VectorOfInterfVE
BOPDS_VectorOfInterfVF
BOPDS_VectorOfInterfVV
BOPDS_VectorOfInterfVZ
BOPDS_VectorOfInterfZZ
BOPDS_VectorOfListOfPassKeyBoolean
BOPDS_VectorOfListOfPaveBlock
BOPDS_VectorOfPoint
BOPDS_VectorOfShapeInfo
BOPAlgo_PaveFiller
QANewModTopOpe_Tools
have been modified to take into account New features: 1 and 2
2. class BOPTest_Chronometer
has been modified to use the driver of the type
OSD_Timer instead OSD_Chronometer
It is possible now to save log information of test command in specified file.
Print information on count of found test cases before tests start
Sound signal at the end of the test
Used meminfo -h to control memory
Titles of differences in images produced by testdiff command were changed.
Changes:
class BRepCheck_Solid
method:
void BRepCheck_Solid::Minimum()
has been changed. The treatment of shells with INTERNAL faces has been added.
Added test case bugs/modalg_5/bug25735
Added TODOs in test cases according to issue 25735.
If-else blocks "scale" and "scaleOrientation" was swapped. Now the comparing and interpretation of these key-words is correct.
Added test case bugs/xde/bug23328
1. Curve boundaries were more precised.
2. Some test cases were changed in accordance of their new behavior.
3. Code fragment for WLines joining was moved to higher level (for more universal using in the future).
Code was changed in accordance with the last remark.
Added test cases bugs/modalg_5/bug25715_1 bug25715_2 bug25715_3
Fix for bug 23640.
Merging the rest of Technical Overview content into User's Guides.
-Correct UG sections concerning Sewing.
-Correct comments in the code referring to old location of sewing algorithm.
Function perf_sprint_all_meters added in OSD_PerfMeter.h to allow printing to string buffer rather than stdout. Macro PERF_PRINT_ALL converted to functional form.
Command dperf added in DRAW to print and conditionally reset all meters.
Description of these tools is added in Debug Hints.
Modified output of command QANTestNCollectionPerformance.
Added test case perf/ncollection/A1
Modified ratio of performance to check all platforms
Small correction of test-case for Windows platform
1. Eliminated exception after conversion non-rational B-spline to rational
2. Implemented DRAW command setweight to change weights of B-spline
3. Test cases were added
Method IntPolyh_MaillageAffinage::TriContact() improved so that local objects for detailed analysis are not created if algorithm exits by simple conditions checked at the beginning.
1. Using of the "Closed" flag was unified:
a) this flag is applicable for TopoDS_Wire and TopoDS_Shell only, because these entities may hedge an area in 2D space or a volume in 3D space correspondingly;
b) other types of TopoDS shapes are passing over this flag;
c) changing of this flag should be controlled by high-level algorithms (not BRep_Builder).
2. Implemented verification of the closedness of edges. An edge is closed if and only if its first and last vertices are the same.
3. Test cases were changed according to new behavior.
Move OpenGl_Structure::myZLayer to base class Graphic3d_CStructure.
Graphic3d_ZLayerId - introduce new pre-defined ZLayers.
Do not clear Depth buffer twice for default ZLayer.
AIS_InteractiveContext::Display() - add new argument AIS_DisplayStatus to specify displaying status.
Drop unused Graphic3d_CPick and related methods.
Drop OpenGl_Structure::myNamedStatus - use flags from parent class Graphic3d_CStructure directly.
OpenGl_LayerList ::ChangeLayer(), ::ChangePriority - fix structure remove from unexpected layer.
Merge class OpenGl_PriorityList into OpenGl_Layer.
PrsMgr_PresentationManager::mySelectionColor - store selection color as field of Presentation Manager.
PrsMgr_Presentation class - do not declare private methods as virtual.
PrsMgr_Presentation::Highlight() - extend method syntax and drop methods ::Color() and ::BoundBox().
PrsMgr_PresentableObject - store ZLayer in presentable object
to display object presentations in required layer directly
(without displaying it in wrong layer first).
test/mesh/end - force re-displaying the shape to compute mesh anew
Test-case for issue
Changes:
class BOPTools_Set
method:
void BOPTools_Set::Add(const TopoDS_Shape& theS,
const TopAbs_ShapeEnum theType)
has been changed. The treatment of INTERNAL edges has been added.
Added test case bugs/modalg_5/bug25721
Interface of bopcurves DDRAW-command were extended. Now it is possible to obtain
a) only 3D-curves;
b) 3D-curves and 2D-curves on one of surfaces intersected (surface can be selected);
c) 3D-curves and 2D-curves on every surface intersected.
Use "help bopcurves" to see detail information.
Added test cases bugs/modalg_5/bug25697_1 bug25697_2
Small changes in test case bugs/modalg_5/bug25697_2
1. The tool of computing the max distance between 3D curve and its 2d representation on the face
has been moved from static methods in BOPTools_AlgoTools class to BRepLib_CheckCurveOnSurface class.
2. The tools has been applied to 2d curves built during Boolean Operation
and to some intersection curves.
3. The functions
Standard_Boolean BOPTools_AlgoTools::ComputeTolerance
(const TopoDS_Face& theFace,
const TopoDS_Edge& theEdge,
Standard_Real& theMaxDist,
Standard_Real& theMaxPar)
and
Standard_Boolean IntTools_Tools::ComputeTolerance
(const Handle(Geom_Curve)& theCurve3D,
const Handle(Geom2d_Curve)& theCurve2D,
const Handle(Geom_Surface)& theSurf,
const Standard_Real theFirst,
const Standard_Real theLast,
Standard_Real& theMaxDist,
Standard_Real& theMaxPar)
have been developed for easy access to BRepLib_CheckCurveOnSurface functionality.
class IntTools_FaceFace
method void IntTools_FaceFace::ComputeTolReached3d()
Case for Plane/BSpline intersection added for treatment.
Test case for issue CR25597
Fix for regression boolean bsection N7.
class BOPAlgo_PaveFiller
method
void BOPAlgo_PaveFiller::UpdateFaceInfo
(BOPDS_DataMapOfPaveBlockListOfPaveBlock& theDME,
const BOPCol_DataMapOfIntegerInteger& theDMV)
Updating Face Info information with new vertices created in PostTreatFF.
Correction boolean/bsection/N2
Updated test cases.
This patch eliminates 3 samplers used in ray-tracing mode:
//! Texture buffer of data records of bottom-level BVH nodes.
Handle(OpenGl_TextureBufferArb) myObjectNodeInfoTexture;
//! Texture buffer of minimum points of bottom-level BVH nodes.
Handle(OpenGl_TextureBufferArb) myObjectMinPointTexture;
//! Texture buffer of maximum points of bottom-level BVH nodes.
Handle(OpenGl_TextureBufferArb) myObjectMaxPointTexture;
Serialized data contained in corresponding texture buffers were added to global scene buffers:
//! Texture buffer of data records of high-level BVH nodes.
Handle(OpenGl_TextureBufferArb) mySceneNodeInfoTexture;
//! Texture buffer of minimum points of high-level BVH nodes.
Handle(OpenGl_TextureBufferArb) mySceneMinPointTexture;
//! Texture buffer of maximum points of high-level BVH nodes.
Handle(OpenGl_TextureBufferArb) mySceneMaxPointTexture;
This modifications leads also to small performance improvement (~2%) due to higher texture cache efficiency. Some modifications in traversal function (GLSL code) also improve performance (~3%).
The constructors of classes from following files have been fixed to ensure that all non-static fields are initialized:
Adaptor2d_Line2d.cxx
Adaptor3d_IsoCurve.cxx
Adaptor3d_OffsetCurve.cxx
AdvApp2Var_ApproxAFunc2Var.cxx
AIS_Dimension.cxx
AIS_InteractiveContext.cxx
Aspect_DisplayConnection.cxx
BiTgte_CurveOnEdge.cxx
BiTgte_CurveOnVertex.cxx
BRepAdaptor_CompCurve.cxx
BRepMesh_Circle.hxx
BRepMesh_Delaun.cxx
BRepToIGES_BREntity.cxx
ChFi2d_AnaFilletAlgo.cxx
ChFi2d_ChamferAPI.cxx
ChFi2d_FilletAlgo.cxx
ChFi2d_FilletAlgo.hxx
Extrema_ExtPExtS.cxx
Font_FTFont.cxx
GccEnt_QualifiedCirc.cxx
Geom2dAdaptor_Curve.cxx
IGESData_IGESEntity.cxx
IGESData_DefSwitch.cxx
IGESToBRep_CurveAndSurface.cxx
LDOM_XmlReader.cxx
math_TrigonometricFunctionRoots.cxx
NCollection_ListNode.hxx
ProjLib_CompProjectedCurve.cxx
ProjLib_ComputeApproxOnPolarSurface.cxx
Select3D_Box2d.hxx
Select3D_PointData.hxx