0030828: Data Exchange - The commands getting shapes from XCAF document should be available in C++ Added two new overloaded methods XCAFDoc_ShapeTool::GetOneShape: one returns TopoDS_Shape from TDF_LabelSequence and the other from a sequence of all top-level shapes which are free
0030773: Application Framework - To allow to inherit existing attributes to reuse persistence mechanisms Added possibility to inherit existing attributes if the same persistent fields are used. All methods that allow controlling the data model changes or getting some callbacks may be overridden in successor. They may have same GUIDs as a base class or new ones. Special macros IMPLEMENT_DERIVED_ATTRIBUTE and IMPLEMENT_DERIVED_ATTRIBUTE_WITH_TYPE must be used instead of standard Handle macro definition IMPLEMENT_STANDARD_RTTIEXT to register new derived attributes. Using this improvement several existing attributes from TDataStd, TDataXtd and XCAFDoc packages become inherited from other base attribute-classes. XML and Bin drivers of these attributes are removed. New base attribute classes are added: TDataStd_GenericEmpty and TDataStd_GenericExtString. This improvement does not change both present formats Bin and XML documents. The obsolete Standard scheme is not changed at all.
0031313: Foundation Classes - Dump improvement for classes - Provide DumpJson for geometrical, ocaf and visualization classes; - Change depth parameter of DumpJson (constant is not obligate here) - Introduce a new macro for transient objects to be called as the first row in DumpJson: OCCT_DUMP_TRANSIENT_CLASS_BEGIN. We need not put the class name in the macro, using get_type_name of Standard_Transient for it. - change implementation of OCCT_DUMP_CLASS_BEGIN and OCCT_DUMP_TRANSIENT_CLASS_BEGIN. It is not an sentry more and it does not create a new hierarchy level. It appends a new row into the output stream: "className": <className> - OCCT_DUMP_* does not require semicolon - class header is included first in source files of TDataStd, TDocStd, TCAFDoc
0030895: Coding Rules - specify std namespace explicitly for std::cout and streams "endl" manipulator for Message_Messenger is renamed to "Message_EndLine". The following entities from std namespace are now used with std:: explicitly specified (from Standard_Stream.hxx): std::istream,std::ostream,std::ofstream,std::ifstream,std::fstream, std::filebuf,std::streambuf,std::streampos,std::ios,std::cout,std::cerr, std::cin,std::endl,std::ends,std::flush,std::setw,std::setprecision, std::hex,std::dec.
0030779: Data Exchange - Problems with located subshapes in expand compounds Protect Expand compounds against problems with located subshapes. Add method XCAFDoc_ShapeTool::AddSubShape() with Boolean output parameter. Speed up XCAFDoc_ShapeTool::Expand(). Speed up XCAFDoc_ShapeTool::FindSubShape().
0030727: Data Exchange - Problems in Shape Tool Add protection from return of not top-level shape by FindShape method. Add protection against located roots into FindMainShape method. Add new Draw command for FindMainShape. Add flag findInstance to Draw command FindShape
0029830: STEPCAFControl_Reader poor performance - quadratic dependence Various performance improvements in STEP read/write algorithms: - Search for the label of a shape or component shape is improved using map mechanism instead of brute force iteration. - Invariant FindEntities() is moved out of the loop in the method getStyledItem in STEPCAFControl/STEPCAFControl_Writer.cxx. - A pointer to the end of binders chain is added in Transfer_Binder class to speed up adding a binder to the chain. - Small fixes are added to eliminate excess copying of handles, calls of handle DownCasts and so on. Stack overflow is removed during destruction of STEP model with long chains of Transfer_Binder. It is possible to use the Draw commands ReadStep and WriteStep to read/write from the session without accessing the disk file (use '.' for the file name). Performance test cases for STEP reading/writing have been added.
0028055: Add UpdateAssemblies() method for top-down update of assembly compounds - Implement top-down update for assemblies in XCAFDoc_ShapeTool - Get rid of UpdateAssembly() method used for partial (parent-only) update - Adjust STEP and IGES translators to use the top-down update after filling OCAF - Implement XUpdateAssemblies Draw command - Add test cases bug28055_1 and bug28055_2 for component removal and part update - Update XDE documentation to mention the new UpdateAssemblies() method Correction for issue CR28055 Adjusting of test case bugs/fclasses/bug28217
0025076: Hidden overloaded virtual functions Implementation of virtual functions is made more consistent in places where warning was issued: - Missing implementation of virtual method Closed() added in classes inheriting Intf_Polygon2d - Empty implementation of virtual method Read() accepting stream is moved from PCDM_RetrievalDriver to StdLDrivers_DocumentRetrievalDriver - Method BRepFill::Delete() is renamed to DeleteProfile() to avoid confusion with method Delete() inherited from MMgt_TShared - Virtual method AIS_Dimenaion::ComputePlane() is removed from base class; each dimension defines and uses its own method with the same name (but different arguments) - Inherited virtual method Dump() with single argument in class XCAFDoc_ShapeTool is now defined as short-cut to own method Dump(), also calling parent's one - Inherited virtual method BoundingBox(void) is made visible in AIS_Shape - Inherited virtual method Box(void) is made visible in classes inheriting BVH_PrimitiveSet