View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0030949 | Open CASCADE | OCCT:Foundation Classes | public | 2019-09-06 09:56 | 2020-01-30 12:09 |
Reporter | nds | Assigned To | bugmaster | ||
Priority | normal | Severity | feature | ||
Status | closed | Resolution | fixed | ||
Target Version | 7.4.0 | Fixed in Version | 7.4.0 | ||
Summary | 0030949: Foundation Classes - Dump improvement for OCCT classes | ||||
Description | It's proposed to add Dump implementation in OCCT classed using the following template into stream: <class_name> <field_name><field_value> ... </class_name> and several methods to parse this dumped stream into container: <class name> to map of pairs <field_name>, <field_value>. It'll allow having table(tree of tables) interpretation of the stream somewhere. <class_name> is introduced here to perform dump/parsing of references fields of the current class (if the class has own Dump implementation). E.g. for class with references to another class, template of using the Dump will be: <class_name> <field_name><field_value> ... <field_name of the reference class><reference_class.Dump(OS)> ... </class_name> After this implementation we'll have: - possibility to have a tree of OCCT class parameters (with parsing for human output); - advantages of Dump using(at any time the class parameters might be dumped and investigated and we need not print it in custom application somehow, store the stream into some file) At the same time, as using of Dump requires additional memory, it should be used by some condition in the custom application. | ||||
Tags | No tags attached. | ||||
Test case number | bugs/modalg_7/bug30949, bugs/vis/bug30949 | ||||
|
Branch CR30949 has been created by nds. SHA-1: 115a31d1bc8ca4c1eb26bce14cc116ac6d9d3932 Detailed log of new commits: Author: nds Date: Fri Sep 6 09:54:26 2019 +0300 0030949: Foundation Classes - Dump improvement for occt classed |
|
Dear Kirill, Andrey could you please give your recommendations above the proposed patch. Thank you in advance, Natalia |
|
Some remarks: - the patch is not finalized yet, you may see some parameters commented in several classes (to be opened later). - parsing methods are placed in TCollection.hxx by reasons: 1. to be available in gp package, 2. there is work with TCollection_AsciiString for output values. What is your opinion, is there another better place for it? |
|
933 void Bnd_Box::Dump () const +void Bnd_Box::Dump (Standard_OStream& OS) const I would rather avoid making methods duplicating functionality. + //! Dumps the content of me on the stream <OS>. + Standard_EXPORT void Dump (Standard_OStream& OS) const; Please don't add new methods with ill-formed Doxygen syntax <OS> and with incorrect variable names "OS". +//======================================================================= + +void Graphic3d_Aspects::Dump (Standard_OStream& OS) const Please don't put empty lines like this. +const TCollection_AsciiString Graphic3d_Group_ClassName = "Graphic3d_Group"; What is the purpose of bloating OCCT binaries with useless constants? Either make it "const char*" (preferred) or move declarations as "static const TCollection_AsciiString" inside method using it, so that it will be created on first usage of this method and not on DLL load. + DUMP_VALUES (OS, "ExtensionSize", myExtensionSize); Such kind of dumps can be wrapped into macros automatically removing or adding "my" prefix: DUMP_FIELD_VALUES (OS, myExtensionSize); + DUMP_VALUES (OS, "ArrowsLength", myArrowsLength); + DUMP_VALUES (OS, "ArrowsSize", myArrowsSize); + DUMP_VALUES (OS, "ArrowsAngle", myArrowsAngle); ... and further improvement - declaring a macros/function taking a list of fields. DUMP_FIELDS (OS, myArrowsLength, myArrowsSize, myArrowsAngle); + DUMP_START_KEY (OS, Prs3d_DimensionAspect_ClassName); ... + DUMP_STOP_KEY (OS, Prs3d_DimensionAspect_ClassName); This should be a subject for Sentry tool. + Standard_SStream aTmpStream; + myArrowAspect->Dump (aTmpStream); + DUMP_VALUES (OS, "ArrowAspect", TCollection::ToDumpString (aTmpStream)); The wrapping of class field implementing Dump() should be also generalized to make it one-liner. + return GetPointerInfo(thePointer.operator->(), isShortInfo); thePointer.get() or *thePointer. +// ---------------------------------------------------------------------------- +// Join +// ---------------------------------------------------------------------------- + +TCollection_AsciiString TCollection::Join (const NCollection_List<TCollection_AsciiString>& theValues, Inconsistent header. +#include <TCollection_AsciiString.hxx> + +#include <TCollection_AsciiString.hxx> Artifact. +#define DUMP_VALUES(OS, Value1, Value2) \ +{ \ + OS << Value1 << TCollection::DumpSeparator() << Value2 << TCollection::DumpSeparator(); \ +} This is not acceptable name of macros for public header. +private: + //! Unites list of string into one string using the separator + Standard_EXPORT static void split (const TCollection_AsciiString& theValue, + const TCollection_AsciiString& theSeparator, + NCollection_List<TCollection_AsciiString>& theValues); +public: + //! Unites list of string into one string using the separator + Standard_EXPORT static Standard_Boolean SplitReal (const TCollection_AsciiString& theValue, private/public sections should not be interleaved like this. + static inline Standard_CString ClassNameSeparator() { return " ,"; } redundant 'inline'. + //! \param thePointer a pointer + //! \param isShortInfo if true, all '0' symbols in the beginning of the pointer are skipped + //! \return the string value @param doxygen syntax is preferred for new code. + //! Convert pointer to string value + //! \param thePointer a pointer + //! \param isShortInfo if true, all '0' symbols in the beginning of the pointer are skipped + //! \return the string value + Standard_EXPORT static TCollection_AsciiString GetPointerInfo (const void* thePointer, Example of the output of this method is expected within documentation. Even within source code it is unclear what method returns. |
|
dump_parsed_shading_aspect.png (5,342 bytes) |
|
An attached image is an example of parse using. The container of parsed stream is visualized in tree. Parsing is recursive. Each item in tree has container of the current class values and list of children (Dump string of reference classes). |
|
Dear Kirill, const TCollection_AsciiString Graphic3d_Group_ClassName = "Graphic3d_Group"; This constant is reserved to use it in further Init methods. Init() will parse the come stream and check that key of Dump on equality to this value, and only after, parsing to fill values of this class. |
|
> This constant is reserved to use it in further Init methods. > Init() will parse the come stream and check that key of Dump on equality > to this value, and only after, parsing to fill values of this class. My suggestion remains the same - either declare it as "const char*" or return via dedicated method allocating TCollection_AsciiString on first usage. |
|
Such kind of dumps can be wrapped into macros automatically removing or adding "my" prefix: DUMP_FIELD_VALUES (OS, myExtensionSize); it would be great, if you provide some row code how do this. |
|
It is also desired that some of these methods to be used within some Draw Harness commands for testing without Inspector. For instance, command vaspects can be extended with an argument printing aspect values instead of changing them. |
|
>> Such kind of dumps can be wrapped into macros automatically >> removing or adding "my" prefix: DUMP_FIELD_VALUES (OS, myExtensionSize); >it would be great, if you provide some row code how do this. Something like that: +#define DUMP_FIELD_VALUES(theOStream, theField) \ +{ \ + const char* aName = #theField; + if (aName[0] == 'm' && aName[1] == 'y') { aName = aName+2; } + theOStream << aName << TCollection::DumpSeparator() << theField << TCollection::DumpSeparator(); \ +} |
|
Thank you a lot. |
|
Hello Natalia, I have tried to check the results, but there are some compilation errors/warnings due to absence of some functionality in git: 1>TCollection.cxx(159): warning C4456: declaration of 'aKey' hides previous local declaration 1>TCollection.cxx(144): note: see declaration of 'aKey' 1>gp_Trsf.cxx(865): error C2039: 'TrsfFormToString': is not a member of 'gp' 1>SelectMgr_ViewClipRange.hxx(126): error C2039: 'ToString': is not a member of 'Bnd_Range' 1>Graphic3d_PolygonOffset.cxx(16): fatal error C1083: Cannot open include file: 'Aspect.hxx': No such file or directory 1>Graphic3d_Group.cxx(459): error C3861: 'DUMP_START_KEY': identifier not found 1>SelectMgr_BaseFrustum.cxx(19): fatal error C1083: Cannot open include file: 'Message_Alerts.hxx': No such file or directory 1>Prs3d_TextAspect.cxx(20): fatal error C1083: Cannot open include file: 'Graphic3d.hxx': No such file or directory 1>PrsMgr_PresentableObject.cxx(849): error C3861: 'DUMP_START_KEY': identifier not found 1>OpenGl_Group.cxx(350): error C3861: 'DUMP_START_KEY': identifier not found I also would like to suggest to avoid usage of string constants representing class names like: const TCollection_AsciiString Bnd_Box_ClassName = "Bnd_Box"; Instead of this, it is possible to add the following definition to TCollection.hxx: #define CLASS_NAME(x) #x This will enable the following approach to keep code a little bit clear: DUMP_START_KEY (OS, CLASS_NAME(Bnd_Box)); or DUMP_VALUES (OS, CLASS_NAME(SelectMgr_ViewClipRange), 2); Regards, Oleg. |
|
Dear Kirill, This should be a subject for Sentry tool. - here, you mean Sentry of Standard_Mutex? The solution, proposed by Oleg looks nice, isn't it? What is your opinion about it? At the same time, for inherited classes of Standard_Transient, it's possible to use here DynamicType(). |
|
>> This should be a subject for Sentry tool. > - here, you mean Sentry of Standard_Mutex? Sentry is a nickname within OCCT for tools capturing some resource in constructor and releasing it in destructor. In your context I suggest putting DUMP_STOP_KEY into destructor. |
|
> The solution, proposed by Oleg looks nice, isn't it? > What is your opinion about it? This is in-line with my suggestion about class field names. |
|
Branch CR30949_1 has been created by nds. SHA-1: 370f49fbb4ee8f574775306e4069803cce6f8e5a Detailed log of new commits: Author: nds Date: Mon Sep 16 16:22:51 2019 +0300 0030949: Foundation Classes - Dump improvement for occt classed #remarks correction |
|
Branch CR30949_1 has been updated by nds. SHA-1: 9623949c9ccec9c040ed7c2db26d864c36cee0ae Detailed log of new commits: Author: nds Date: Mon Sep 16 16:24:06 2019 +0300 0030949: Foundation Classes - Dump improvement for occt classed #Inspector specific corrections |
|
Branch CR30949_1 has been updated by nds. SHA-1: 8f7d69a5bd15455938c83841d230205ca5e41c73 Detailed log of new commits: Author: nds Date: Mon Sep 16 16:40:41 2019 +0300 0030949: Foundation Classes - Dump improvement for occt classed #hide not-used Init functionality |
|
Branch CR30949_2 has been created by nds. SHA-1: d1ace70ba1e6c19a89c70af6f7c69f8ad2ee3b0e Detailed log of new commits: Author: nds Date: Mon Sep 16 17:33:45 2019 +0300 0030949: Foundation Classes - Dump improvement for OCCT classes - Dump methods implementation for part of OCCT classes, - new Standard_Dump class to prepare/parse dump stream, - Bnd_Box constructor with parameters for BVH_Types conversion into Bnd_Box to have BVH_Tree dumped, |
|
Branch CR30949_2 has been updated by nds. SHA-1: a0b3454a8dce10b783c94de515a0768dd8ab0096 Detailed log of new commits: Author: nds Date: Mon Sep 16 17:48:23 2019 +0300 0030949: Foundation Classes - Dump improvement for OCCT classes # correct compilation |
|
Dear Kirill could you please check the latest branch for the issue. All remarks are corrected excepting the next: 1. DUMP_FIELDS (OS, myArrowsLength, myArrowsSize, myArrowsAngle); it is not clear how process the arguments of different types in this new macro, Using __VA_ARGS__ is difficult due to different types and necessity to extract the name of variable from parameter. 2. All dump parsing is moved into Standard_Dump class. Please review macros created there. 3. Test case for Prs3D_Drawer and OBB_Box are created. Result in DRAW is attached. The proposed text format for output is appropriate? (Prs3d_Drawer now has only ShadingAspect dumped) Thank you in advance, Natalia |
|
dump_bounding_dump.png - is new output dump_bounding_print.png - is previous output |
|
Branch CR30949_2 has been updated by nds. SHA-1: 72e00f414cc2f5237c43dc7812c7bb49b6ab9f52 Detailed log of new commits: Author: nds Date: Mon Sep 16 21:14:48 2019 +0300 0030949: Foundation Classes - Dump improvement for OCCT classes # warnings on Debian correction, test correction |
|
Branch CR30949_2 has been updated by nds. SHA-1: 3f4bd238fc17fa26990136c755544a5e50ffcc3d Detailed log of new commits: Author: nds Date: Mon Sep 16 23:32:33 2019 +0300 0030949: Foundation Classes - Dump improvement for OCCT classes # warnings on Debian correction |
|
Branch CR30949_2 has been updated by nds. SHA-1: 57ad03b4bb0359432587a66fc071bb6c79101b02 Detailed log of new commits: Author: nds Date: Tue Sep 17 00:55:34 2019 +0300 0030949: Foundation Classes - Dump improvement for OCCT classes # warnings on Debian correction # (the address of 'aBndBox' will always evaluate as 'true' [-Waddress]) |
|
Branch CR30949_2 has been updated by nds. SHA-1: cd3dcb5b731c8e48cd4ca9231179c43bc37a0a2b Detailed log of new commits: Author: nds Date: Tue Sep 17 02:00:11 2019 +0300 0030949: Foundation Classes - Dump improvement for OCCT classes # warnings on Debian correction # (the address of 'aBndBox' will never be NULL [-Waddress]) |
|
Branch CR30949_3 has been created by nds. SHA-1: c110ee326712dea4bf12fa03282b14d98fccadcc Detailed log of new commits: Author: nds Date: Tue Sep 17 07:00:15 2019 +0300 0030949: Foundation Classes - Dump improvement for OCCT classes |
|
Branch CR30949_3 has been updated by nds. SHA-1: df3d77e3a4890b02c13272f54fec216a624777df Detailed log of new commits: Author: nds Date: Tue Sep 17 07:04:54 2019 +0300 0030949: Foundation Classes - Dump improvement for OCCT classes #warning correction |
|
Branch CR30949_4 has been created by nds. SHA-1: a06b1beb8593fc61fbfbb6b4d6323a8a3bfff180 Detailed log of new commits: Author: nds Date: Tue Sep 17 07:00:15 2019 +0300 0030949: Foundation Classes - Dump improvement for OCCT classes |
|
Jenkins job is: http://jenkins-test-12.nnov.opencascade.com/view/CR30949-master-NDS/ |
|
+ DUMP_FIELD_VALUES (theOStream, IsValid()); + Bnd_Box aBndBox = BVH::ToBndBox (CornerMin(), CornerMax()); This looks broken creating Bnd_Box with invalid values. BVH::ToBndBox() should not be called for IsValid() case. + +void AIS_InteractiveObject::Dump (Standard_OStream& theOStream) const ... +void gp_Mat::Dump (Standard_OStream& theOStream) const +{ Header is missing. + Standard_EXPORT virtual void Dump (Standard_OStream& theOStream) const Standard_OVERRIDE + { Unexpected Standard_EXPORT. + for (Standard_Integer aNodeIdx = 0; aNodeIdx < Length(); ++aNodeIdx) + { + DumpNode (aNodeIdx, theOStream); + } Broken indentation. + template<class T> Bnd_Box ToBndBox (const NCollection_Vec3<T>& theType1, + const NCollection_Vec3<T>& theType2) Why "theType"? I would expect theMin/theMax instead. Description of these methods is missing. +Bnd_Box::Bnd_Box (const Standard_Real theXmin, const Standard_Real theYmin, const Standard_Real theZmin, + const Standard_Real theXmax, const Standard_Real theYmax, const Standard_Real theZmax) I don't think it is a good idea adding methods taking per-component arguments. Better adding gp_Pnt and NCollection_Vec3 constructors. + DUMP_FIELD_VALUES_SUBCLASS (theOStream, &XDirection()); + DUMP_FIELD_VALUES_SUBCLASS (theOStream, &YDirection()); + DUMP_FIELD_VALUES_SUBCLASS (theOStream, &ZDirection()); ... + DUMP_FIELD_VALUES (theOStream, XHSize()); + DUMP_FIELD_VALUES (theOStream, YHSize()); + DUMP_FIELD_VALUES (theOStream, ZHSize()); Please avoid using non-virtual methods instead of class fields. +TCollection_AsciiString getLevelIndent (const int theLevel) Unexpected global function. + TCollection_AsciiString aValue = aSplitValues.FindFromIndex (anIndex); + TCollection_AsciiString aKey = aSplitValues.FindKey (anIndex); const TCollection_AsciiString& ? + /** + * @brief Simple sentry class providing convenient interface to dump. + * + * Appends start and last rows in dump with class name key + * + * Create instance of that class in the first row of Dump. + */ + class Sentry Inconsistent doxygen style. + //! Returns separator symbol of Dump information + static Standard_Character DumpSeparator() { return '\\'; } Why \? + //! @return the string value + Standard_EXPORT static TCollection_AsciiString GetPointerInfo (const Handle(Standard_Transient)& thePointer, ... + //! @return the string value + Standard_EXPORT static TCollection_AsciiString GetPointerInfo (const void* thePointer, Example of the output is expected within method description. + //! Unites list of string into one string using the separator + Standard_EXPORT static TCollection_AsciiString Join (const NCollection_List<TCollection_AsciiString>& theValues, + const TCollection_AsciiString& theSeparator); Probably belongs to other place, like TCollection_AsciiString class. + +#define DUMP_FIELD_VALUES_PARENT(theOStream, theField) Macros description is missing. +#define DUMP_FIELD_VALUES_SUBCLASS(theOStream, theField) \ What "subclass" means here? +#define DUMP_FIELD_VALUES_PARENT(theOStream, theField) \ OCCT uses "base" in this context (for example: Standard_Transient::base_type). + //TopoDS_ListOfShape myShapes; There is a plenty of commented blocks in the patch. It is not a good idea keeping them, as they might be left unnoticed while changing class definition. CLASS_NAME (gp_Trsf) There is no rule, but within OCCT such macros are usually written without a space (like Handle(Standard_Transient)). +vinit View Unusual name... (View1 is default). +// ---------------------------------------------------------------------------- +// ToString +// ---------------------------------------------------------------------------- +TCollection_AsciiString Standard_Dump::ToDumpString (const Standard_SStream& theStream) Mismatch. |
|
Branch CR30949_4 has been updated by nds. SHA-1: 41b860c8c17e136320d1ab64d77e4b20e3b9fdcf Detailed log of new commits: Author: nds Date: Wed Sep 18 05:43:14 2019 +0300 0030949: Foundation Classes - Dump improvement for OCCT classes # json format using for output value of Dump # remarks correction |
|
Branch CR30949_5 has been created by nds. SHA-1: 246168bce1eb60be0cb0fafd5ea3f9530750b196 Detailed log of new commits: Author: nds Date: Wed Sep 18 05:44:52 2019 +0300 0030949: Foundation Classes - Dump improvement for OCCT classes # json format using for output value of Dump |
|
Dear Kirill, please review it. Remarks are corrected. Best regards, Natalia |
|
It's proposed also to correct: - additional parameter into Dump to manage the level of dump for internal objects - put digital values into massive without " symbol. (Following to format of JSON) - Standard_Dump class should be documented in more details (with examples) - Developer Guides -> Debugging tools and hints should be extended with the Dump using description. |
|
Dear Kirill, please do not review yet, wait for the last remarks correction. Best regards, Natalia |
|
initial_dump_bounding_print.png (9,267 bytes) |
|
Dear Natalia, Looking at Standard_Dump, I wonder whether it is possible to move implementation of DUMP_KEY_TO_FIELD, DUMP_KEY_TO_CLASS, etc., and, especially, long ones, like DUMP_FIELD_VALUES_SUBCLASS, out of preprocessor definitions to make them suitable for the purpose of debugging? For instance: void dumpFieldValues(Standard_OStream& theOStream, const char* theField); #define DUMP_FIELD_VALUES_SUBCLASS(theOStream, theField) dumpFieldValues(theOStream, CLASS_NAME(theField)) void dumpFieldValues(Standard_OStream& theOStream, const char* theField) { Standard_SStream aFieldStream; if (theField != NULL) (theField)->Dump (aFieldStream); const char* aName = NULL; Standard_Dump::DumpFieldToName (theField, aName); DUMP_KEY_TO_CLASS(theOStream, aName, Standard_Dump::ToDumpString (aFieldStream)) } Regards, Oleg. |
|
Branch CR30949_5 has been updated by nds. SHA-1: d2d2f613ef722ceb9324da1f2b4a4adf20b5d695 Detailed log of new commits: Author: nds Date: Wed Sep 18 14:14:29 2019 +0300 0030949: Foundation Classes - Dump improvement for OCCT classes # remarks correction |
|
Branch CR30949_5 has been updated by nds. SHA-1: 45aa99764fccffb271bf58103baa8e8ef07fd223 Detailed log of new commits: Author: nds Date: Wed Sep 18 14:14:48 2019 +0300 0030949: Foundation Classes - Dump improvement for OCCT classes # remarks correction |
|
Branch CR30949_6 has been created by nds. SHA-1: b8a70dc90feb06d87dd2d9877d905c57aaaa7808 Detailed log of new commits: Author: nds Date: Wed Sep 18 14:22:55 2019 +0300 0030949: Foundation Classes - Dump improvement for OCCT classes 1. new file Standard_Dump to prepare and parse Dump in JSON format for OCCT objects 2. some presentations cover the proposed dump functionality. |
|
Branch CR30949_6 has been updated by nds. SHA-1: 457f64d36f89e54271a2ed351d3f353b8d79059b Detailed log of new commits: Author: nds Date: Wed Sep 18 14:43:45 2019 +0300 0030949: Foundation Classes - Dump improvement for OCCT classes # compilation on Linux correction |
|
Dear Oleg, I'm afraid, it won't work, as conversion CLASS_NAME(theField) in #define DUMP_FIELD_VALUES_SUBCLASS(theOStream, theField) dumpFieldValues(theOStream, CLASS_NAME(theField)) losts the object itself, there only string stays, and it's not possible to call (theField)->Dump (aFieldStream); Thank you for participation. |
|
Have you tried to pass it explicitly? E.g.: #define DUMP_FIELD_VALUES_SUBCLASS(theOStream, theField) dumpFieldValues(theOStream, #theField) |
|
Yes |
|
>>losts the object itself Ok, I see your point now. I suppose it could be solved by passing the object right to the function or template function while calling CASS_NAME directly from that function where needed. |
|
Branch CR30949_6 has been updated by nds. SHA-1: dad61dd37230db2ec91f75744d2a13be16a5e4bc Detailed log of new commits: Author: nds Date: Wed Sep 18 19:53:52 2019 +0300 0030949: Foundation Classes - Dump improvement for OCCT classes #remarks correction |
|
Branch CR30949_6 has been updated by nds. SHA-1: b5b3b41b44586e17391f66cc9108adfc0ba7ad1b Detailed log of new commits: Author: nds Date: Wed Sep 18 19:54:10 2019 +0300 0030949: Foundation Classes - Dump improvement for OCCT classes #remarks correction |
|
Branch CR30949_6 has been updated by nds. SHA-1: fda61caf83e728abd8f98f773ecc74833c1fd832 Detailed log of new commits: Author: nds Date: Wed Sep 18 19:57:18 2019 +0300 0030949: Foundation Classes - Dump improvement for OCCT classes #remarks correction |
|
Branch CR30949_7 has been created by nds. SHA-1: 72644b93feb784839403cc49a865ae08970f01e2 Detailed log of new commits: Author: nds Date: Wed Sep 18 19:59:56 2019 +0300 0030949: Foundation Classes - Dump improvement for OCCT classes 1. new file Standard_Dump to prepare and parse Dump in JSON format for OCCT objects 2. some presentations cover the proposed dump functionality. |
|
Branch CR30949_6 has been updated by nds. SHA-1: 735581e6090652fba144a4e44dc3e2e7f4bac89b Detailed log of new commits: Author: nds Date: Wed Sep 18 20:02:55 2019 +0300 0030949: Foundation Classes - Dump improvement for OCCT classes #compilation correction |
|
Branch CR30949_7 has been updated by nds. SHA-1: 7c9f40bbaad72ead3a188bdbe9db35cc2e86b6aa Detailed log of new commits: Author: nds Date: Wed Sep 18 20:02:55 2019 +0300 0030949: Foundation Classes - Dump improvement for OCCT classes #compilation correction (cherry picked from commit 735581e6090652fba144a4e44dc3e2e7f4bac89b) |
|
Branch CR30949_6 has been updated by nds. SHA-1: 27688bf393a3d0c1fde5b766b5b9f3a858d6da53 Detailed log of new commits: Author: nds Date: Wed Sep 18 21:50:36 2019 +0300 0030949: Foundation Classes - Dump improvement for OCCT classes #compilation correction, test correction |
|
Branch CR30949_7 has been updated by nds. SHA-1: 73bc41cf5fc1945507aff7bfd1f4d304d352e04b Detailed log of new commits: Author: nds Date: Wed Sep 18 21:50:36 2019 +0300 0030949: Foundation Classes - Dump improvement for OCCT classes #compilation correction, test correction (cherry picked from commit 27688bf393a3d0c1fde5b766b5b9f3a858d6da53) |
|
Branch CR30949_6 has been updated by nds. SHA-1: c1e275c5872fdf5f0a4e3a8cdb4cda503fc7dfcb Detailed log of new commits: Author: nds Date: Thu Sep 19 07:30:29 2019 +0300 0030949: Foundation Classes - Dump improvement for OCCT classes #remarks correction |
|
Branch CR30949_8 has been created by nds. SHA-1: 5859be3886633bfcf829a6b1d8f3d47408b76e1d No new revisions were added by this update. |
|
Branch CR30949_8 has been updated by nds. SHA-1: da5973783ff7e3c7a402361b8d221b97f2bdca7d Detailed log of new commits: Author: nds Date: Thu Sep 19 07:35:43 2019 +0300 0030949: Foundation Classes - Dump improvement for OCCT classes 1. new file Standard_Dump to prepare and parse Dump in JSON format for OCCT objects 2. some presentations cover the proposed dump functionality. |
|
Branch CR30949_6 has been updated by nds. SHA-1: fd1dde6389351b3653b5e745a466dbb2bd9b7464 Detailed log of new commits: Author: nds Date: Thu Sep 19 09:37:00 2019 +0300 0030949: Foundation Classes - Dump improvement for OCCT classes 1. DRAW test correction |
|
Branch CR30949_7 has been updated by nds. SHA-1: cd06eb135cfcbbb69eb8ecabbd5e0e5fe4fec618 Detailed log of new commits: Author: nds Date: Thu Sep 19 12:30:33 2019 +0300 0030949: Foundation Classes - Dump improvement for OCCT classes #remarks correction |
|
json_dump_bounding_print.png (8,420 bytes) |
|
Branch CR30949_7 has been updated by nds. SHA-1: 6d2984401ea6535dc4cf26e6c25ac0ccc69ad2f0 Detailed log of new commits: Author: nds Date: Thu Sep 19 14:48:50 2019 +0300 0030949: Foundation Classes - Dump improvement for OCCT classes #remarks correction |
|
Branch CR30949_7 has been updated by nds. SHA-1: 9eb86f19e4a9abf61814446e84b8fdb35b4867ff Detailed log of new commits: Author: nds Date: Thu Sep 19 15:05:15 2019 +0300 0030949: Foundation Classes - Dump improvement for OCCT classes #remarks correction |
|
Branch CR30949_9 has been created by nds. SHA-1: 16e8541df7fcf3bcfd646c32fd5a98adfd04e48c Detailed log of new commits: Author: nds Date: Thu Sep 19 15:13:42 2019 +0300 0030949: Foundation Classes - Dump improvement for OCCT classes 1. new file Standard_Dump to prepare and parse Dump in JSON format for OCCT objects 2. some presentations cover the proposed dump functionality. 3. 'bounding', 'vaspects' has '-dumpJson' field to see the DumpJson result 4. Bnd_Box constructor with min/max points is implemented to use Dump of this class in Dump BVH_Box 5. Limitation (some classes of Graphic3d, Prs3d has not full filling for DumpJson) |
|
json_dump_vaspect_dump_compact.png (17,407 bytes) |
|
json_dump_vaspect_dump.png (21,806 bytes) |
|
json_dump_vaspect_dump_depth_2.png (9,066 bytes) |
|
Combination - OCCT branch : WEEK-38 master SHA - 3561f506c83b672cc3e06b77029aafca8d91d5d9 5f5b1aed1c6e139bbd34314eca77ae7abcd8895c Products branch : WEEK-38 SHA - 408582119deba96d291df52766ca720a3059ce71 was compiled on Linux, MacOS and Windows platforms and tested in optimize mode. Number of compiler warnings: No new/fixed warnings Regressions/Differences/Improvements: No regressions/differences CPU differences: Debian80-64: OCCT Total CPU difference: 16813.57000000016 / 16822.810000000067 [-0.05%] Products Total CPU difference: 10542.720000000027 / 10555.120000000048 [-0.12%] Windows-64-VC14: OCCT Total CPU difference: 18271.390625 / 18222.765625 [+0.27%] Products Total CPU difference: 12493.84375 / 12438.984375 [+0.44%] Image differences : No differences that require special attention Memory differences : No differences that require special attention |
|
Branch CR30949 has been deleted by inv. SHA-1: 115a31d1bc8ca4c1eb26bce14cc116ac6d9d3932 |
|
Branch CR30949_1 has been deleted by inv. SHA-1: 8f7d69a5bd15455938c83841d230205ca5e41c73 |
|
Branch CR30949_2 has been deleted by inv. SHA-1: cd3dcb5b731c8e48cd4ca9231179c43bc37a0a2b |
|
Branch CR30949_3 has been deleted by inv. SHA-1: df3d77e3a4890b02c13272f54fec216a624777df |
|
Branch CR30949_4 has been deleted by inv. SHA-1: 41b860c8c17e136320d1ab64d77e4b20e3b9fdcf |
|
Branch CR30949_5 has been deleted by inv. SHA-1: 45aa99764fccffb271bf58103baa8e8ef07fd223 |
|
Branch CR30949_6 has been deleted by inv. SHA-1: fd1dde6389351b3653b5e745a466dbb2bd9b7464 |
|
Branch CR30949_8 has been deleted by inv. SHA-1: da5973783ff7e3c7a402361b8d221b97f2bdca7d |
|
Branch CR30949_7 has been deleted by inv. SHA-1: 9eb86f19e4a9abf61814446e84b8fdb35b4867ff |
|
Branch CR30949_9 has been deleted by inv. SHA-1: 16e8541df7fcf3bcfd646c32fd5a98adfd04e48c |
occt: master 0904aa63 2019-09-19 12:13:42 Committer: bugmaster Details Diff |
0030949: Foundation Classes - Dump improvement for OCCT classes 1. new file Standard_Dump to prepare and parse Dump in JSON format for OCCT objects 2. some presentations cover the proposed dump functionality. 3. 'bounding', 'vaspects' has '-dumpJson' field to see the DumpJson result 4. Bnd_Box constructor with min/max points is implemented to use Dump of this class in Dump BVH_Box 5. Limitation (some classes of Graphic3d, Prs3d has not full filling for DumpJson) |
Affected Issues 0030949 |
|
mod - dox/dev_guides/debug/debug.md | Diff File | ||
mod - src/AIS/AIS_InteractiveObject.cxx | Diff File | ||
mod - src/AIS/AIS_InteractiveObject.hxx | Diff File | ||
mod - src/Bnd/Bnd_Box.cxx | Diff File | ||
mod - src/Bnd/Bnd_Box.hxx | Diff File | ||
mod - src/Bnd/Bnd_OBB.cxx | Diff File | ||
mod - src/Bnd/Bnd_OBB.hxx | Diff File | ||
mod - src/Bnd/Bnd_Range.cxx | Diff File | ||
mod - src/Bnd/Bnd_Range.hxx | Diff File | ||
mod - src/BRepTest/BRepTest_BasicCommands.cxx | Diff File | ||
mod - src/BVH/BVH_Box.hxx | Diff File | ||
mod - src/BVH/BVH_Tree.hxx | Diff File | ||
mod - src/BVH/BVH_Types.hxx | Diff File | ||
mod - src/gp/gp_Mat.cxx | Diff File | ||
mod - src/gp/gp_Mat.hxx | Diff File | ||
mod - src/gp/gp_Trsf.cxx | Diff File | ||
mod - src/gp/gp_Trsf.hxx | Diff File | ||
mod - src/gp/gp_XYZ.cxx | Diff File | ||
mod - src/gp/gp_XYZ.hxx | Diff File | ||
mod - src/Graphic3d/FILES | Diff File | ||
mod - src/Graphic3d/Graphic3d_Aspects.cxx | Diff File | ||
mod - src/Graphic3d/Graphic3d_Aspects.hxx | Diff File | ||
mod - src/Graphic3d/Graphic3d_Group.cxx | Diff File | ||
mod - src/Graphic3d/Graphic3d_Group.hxx | Diff File | ||
add - src/Graphic3d/Graphic3d_PolygonOffset.cxx | Diff File | ||
mod - src/Graphic3d/Graphic3d_PolygonOffset.hxx | Diff File | ||
mod - src/OpenGl/OpenGl_Aspects.cxx | Diff File | ||
mod - src/OpenGl/OpenGl_Aspects.hxx | Diff File | ||
mod - src/OpenGl/OpenGl_Group.cxx | Diff File | ||
mod - src/OpenGl/OpenGl_Group.hxx | Diff File | ||
mod - src/Prs3d/Prs3d_ArrowAspect.cxx | Diff File | ||
mod - src/Prs3d/Prs3d_ArrowAspect.hxx | Diff File | ||
mod - src/Prs3d/Prs3d_BasicAspect.hxx | Diff File | ||
mod - src/Prs3d/Prs3d_DatumAspect.cxx | Diff File | ||
mod - src/Prs3d/Prs3d_DatumAspect.hxx | Diff File | ||
mod - src/Prs3d/Prs3d_DimensionAspect.cxx | Diff File | ||
mod - src/Prs3d/Prs3d_DimensionAspect.hxx | Diff File | ||
mod - src/Prs3d/Prs3d_Drawer.cxx | Diff File | ||
mod - src/Prs3d/Prs3d_Drawer.hxx | Diff File | ||
mod - src/Prs3d/Prs3d_LineAspect.cxx | Diff File | ||
mod - src/Prs3d/Prs3d_LineAspect.hxx | Diff File | ||
mod - src/Prs3d/Prs3d_PlaneAspect.cxx | Diff File | ||
mod - src/Prs3d/Prs3d_PlaneAspect.hxx | Diff File | ||
mod - src/Prs3d/Prs3d_PointAspect.cxx | Diff File | ||
mod - src/Prs3d/Prs3d_PointAspect.hxx | Diff File | ||
mod - src/Prs3d/Prs3d_ShadingAspect.cxx | Diff File | ||
mod - src/Prs3d/Prs3d_ShadingAspect.hxx | Diff File | ||
mod - src/Prs3d/Prs3d_TextAspect.cxx | Diff File | ||
mod - src/Prs3d/Prs3d_TextAspect.hxx | Diff File | ||
mod - src/PrsMgr/PrsMgr_PresentableObject.cxx | Diff File | ||
mod - src/PrsMgr/PrsMgr_PresentableObject.hxx | Diff File | ||
mod - src/Quantity/Quantity_Color.cxx | Diff File | ||
mod - src/Quantity/Quantity_Color.hxx | Diff File | ||
mod - src/Quantity/Quantity_ColorRGBA.cxx | Diff File | ||
mod - src/Quantity/Quantity_ColorRGBA.hxx | Diff File | ||
mod - src/SelectMgr/SelectMgr_BaseFrustum.cxx | Diff File | ||
mod - src/SelectMgr/SelectMgr_BaseFrustum.hxx | Diff File | ||
mod - src/SelectMgr/SelectMgr_EntityOwner.cxx | Diff File | ||
mod - src/SelectMgr/SelectMgr_EntityOwner.hxx | Diff File | ||
mod - src/SelectMgr/SelectMgr_SelectableObject.cxx | Diff File | ||
mod - src/SelectMgr/SelectMgr_SelectableObject.hxx | Diff File | ||
mod - src/SelectMgr/SelectMgr_ViewClipRange.cxx | Diff File | ||
mod - src/SelectMgr/SelectMgr_ViewClipRange.hxx | Diff File | ||
mod - src/SelectMgr/SelectMgr_ViewerSelector.cxx | Diff File | ||
mod - src/SelectMgr/SelectMgr_ViewerSelector.hxx | Diff File | ||
mod - src/Standard/FILES | Diff File | ||
add - src/Standard/Standard_Dump.cxx | Diff File | ||
add - src/Standard/Standard_Dump.hxx | Diff File | ||
mod - src/TopLoc/TopLoc_Datum3D.cxx | Diff File | ||
mod - src/TopLoc/TopLoc_Datum3D.hxx | Diff File | ||
mod - src/TopLoc/TopLoc_ItemLocation.cxx | Diff File | ||
mod - src/TopLoc/TopLoc_ItemLocation.hxx | Diff File | ||
mod - src/TopLoc/TopLoc_Location.cxx | Diff File | ||
mod - src/TopLoc/TopLoc_Location.hxx | Diff File | ||
mod - src/TopoDS/TopoDS_Shape.cxx | Diff File | ||
mod - src/TopoDS/TopoDS_Shape.hxx | Diff File | ||
mod - src/TopoDS/TopoDS_TShape.cxx | Diff File | ||
mod - src/TopoDS/TopoDS_TShape.hxx | Diff File | ||
mod - src/ViewerTest/ViewerTest.cxx | Diff File | ||
mod - src/XCAFPrs/XCAFPrs_Style.cxx | Diff File | ||
mod - src/XCAFPrs/XCAFPrs_Style.hxx | Diff File | ||
add - tests/bugs/modalg_7/bug30949 | Diff File | ||
add - tests/bugs/vis/bug30949 | Diff File |
Date Modified | Username | Field | Change |
---|---|---|---|
2019-09-06 09:56 | nds | New Issue | |
2019-09-06 09:56 | nds | Assigned To | => abv |
2019-09-06 09:57 | git | Note Added: 0086841 | |
2019-09-06 09:58 | nds | Note Added: 0086842 | |
2019-09-06 09:58 | nds | Assigned To | abv => kgv |
2019-09-06 09:59 | nds | Summary | Foundation Classes - Dump improvement for occt classed => Foundation Classes - Dump improvement for OCCT classed |
2019-09-06 10:02 | nds | Note Added: 0086843 | |
2019-09-06 10:03 | nds | Note Edited: 0086842 | |
2019-09-06 10:19 | nds | Summary | Foundation Classes - Dump improvement for OCCT classed => Foundation Classes - Dump improvement for OCCT classes |
2019-09-06 10:22 | kgv | Note Added: 0086846 | |
2019-09-06 10:24 | kgv | Note Edited: 0086846 | |
2019-09-06 10:25 | kgv | Note Edited: 0086846 | |
2019-09-06 10:28 | kgv | Note Edited: 0086846 | |
2019-09-06 10:29 | nds | File Added: dump_parsed_shading_aspect.png | |
2019-09-06 10:33 | nds | Note Added: 0086847 | |
2019-09-06 10:36 | nds | Note Added: 0086848 | |
2019-09-06 10:37 | kgv | Note Edited: 0086846 | |
2019-09-06 10:38 | kgv | Note Edited: 0086846 | |
2019-09-06 10:39 | kgv | Note Edited: 0086846 | |
2019-09-06 10:41 | kgv | Note Edited: 0086846 | |
2019-09-06 10:43 | kgv | Note Edited: 0086846 | |
2019-09-06 10:46 | kgv | Note Edited: 0086846 | |
2019-09-06 10:49 | kgv | Note Edited: 0086846 | |
2019-09-06 10:52 | kgv | Note Edited: 0086846 | |
2019-09-06 10:53 | kgv | Note Edited: 0086846 | |
2019-09-06 10:54 | kgv | Note Edited: 0086846 | |
2019-09-06 10:55 | kgv | Note Edited: 0086846 | |
2019-09-06 10:56 | kgv | Note Edited: 0086846 | |
2019-09-06 10:59 | kgv | Note Added: 0086849 | |
2019-09-06 10:59 | nds | Note Added: 0086850 | |
2019-09-06 11:00 | kgv | Note Added: 0086851 | |
2019-09-06 11:06 | kgv | Note Added: 0086852 | |
2019-09-06 11:06 | kgv | Note Edited: 0086852 | |
2019-09-06 11:08 | nds | Note Added: 0086853 | |
2019-09-06 11:13 | oan | Note Added: 0086855 | |
2019-09-06 11:13 | oan | Assigned To | kgv => nds |
2019-09-06 11:13 | oan | Status | new => feedback |
2019-09-06 11:31 | nds | Note Added: 0086856 | |
2019-09-06 11:31 | nds | Assigned To | nds => kgv |
2019-09-06 12:08 | kgv | Note Added: 0086858 | |
2019-09-06 12:09 | kgv | Note Added: 0086859 | |
2019-09-06 12:09 | kgv | Assigned To | kgv => nds |
2019-09-06 12:09 | kgv | Status | feedback => assigned |
2019-09-16 16:26 | git | Note Added: 0087149 | |
2019-09-16 16:27 | git | Note Added: 0087150 | |
2019-09-16 16:44 | git | Note Added: 0087155 | |
2019-09-16 17:37 | git | Note Added: 0087161 | |
2019-09-16 17:41 | nds | File Added: dump_vaspect_dump.png | |
2019-09-16 17:42 | nds | File Added: dump_bounding_dump.png | |
2019-09-16 17:42 | nds | File Added: dump_bounding_print.png | |
2019-09-16 17:43 | nds | File Deleted: dump_bounding_print.png | |
2019-09-16 17:43 | nds | File Added: dump_bounding_print.png | |
2019-09-16 17:51 | git | Note Added: 0087162 | |
2019-09-16 17:55 | nds | Note Added: 0087163 | |
2019-09-16 17:55 | nds | Assigned To | nds => kgv |
2019-09-16 17:55 | nds | Status | assigned => resolved |
2019-09-16 17:57 | nds | Note Added: 0087164 | |
2019-09-16 21:18 | git | Note Added: 0087169 | |
2019-09-16 23:35 | git | Note Added: 0087171 | |
2019-09-17 00:58 | git | Note Added: 0087173 | |
2019-09-17 02:03 | git | Note Added: 0087174 | |
2019-09-17 07:03 | git | Note Added: 0087178 | |
2019-09-17 07:08 | git | Note Added: 0087179 | |
2019-09-17 09:47 | git | Note Added: 0087186 | |
2019-09-17 09:51 | nds | Note Added: 0087187 | |
2019-09-17 10:47 | kgv | Note Added: 0087188 | |
2019-09-17 10:47 | kgv | Assigned To | kgv => nds |
2019-09-17 10:47 | kgv | Status | resolved => assigned |
2019-09-17 12:42 | kgv | Target Version | 7.4.0 => 7.5.0 |
2019-09-17 14:25 | nds | Target Version | 7.5.0 => 7.4.0 |
2019-09-18 05:46 | git | Note Added: 0087233 | |
2019-09-18 05:48 | git | Note Added: 0087234 | |
2019-09-18 09:42 | nds | File Added: json_dump_bounding_print_not_arranged.png | |
2019-09-18 09:43 | nds | File Added: json_dump_bounding_print.png | |
2019-09-18 09:43 | nds | File Added: json_dump_vaspect_dump_not_arranged.png | |
2019-09-18 09:43 | nds | File Added: json_dump_vaspect_dump.png | |
2019-09-18 09:44 | nds | Note Added: 0087242 | |
2019-09-18 09:44 | nds | Assigned To | nds => kgv |
2019-09-18 09:44 | nds | Status | assigned => resolved |
2019-09-18 10:22 | nds | Note Added: 0087243 | |
2019-09-18 10:23 | nds | Note Added: 0087244 | |
2019-09-18 10:23 | nds | Assigned To | kgv => nds |
2019-09-18 10:23 | nds | Status | resolved => assigned |
2019-09-18 13:23 | nds | File Deleted: json_dump_bounding_print.png | |
2019-09-18 13:23 | nds | File Deleted: dump_bounding_dump.png | |
2019-09-18 13:23 | nds | File Deleted: dump_bounding_print.png | |
2019-09-18 13:24 | nds | File Deleted: dump_vaspect_dump.png | |
2019-09-18 13:24 | nds | File Deleted: json_dump_bounding_print_not_arranged.png | |
2019-09-18 13:24 | nds | File Deleted: json_dump_vaspect_dump_not_arranged.png | |
2019-09-18 13:24 | nds | File Deleted: json_dump_vaspect_dump.png | |
2019-09-18 13:29 | nds | File Added: initial_dump_bounding_print.png | |
2019-09-18 13:31 | nds | File Added: json_dump_vaspect_dump_not_arranged.png | |
2019-09-18 13:32 | nds | File Deleted: json_dump_vaspect_dump_not_arranged.png | |
2019-09-18 13:32 | nds | File Added: json_dump_bounding_print.png | |
2019-09-18 13:33 | nds | File Added: json_dump_vaspect_dump_not_arranged.png | |
2019-09-18 13:33 | nds | File Added: json_dump_vaspect_dump.png | |
2019-09-18 13:33 | nds | File Added: json_dump_vaspect_dump_not_arranged_deep_2.png | |
2019-09-18 13:34 | nds | File Added: json_dump_vaspect_dump_deep_2.png | |
2019-09-18 13:45 | oan | Note Added: 0087250 | |
2019-09-18 13:45 | oan | Status | assigned => feedback |
2019-09-18 13:46 | oan | Note Edited: 0087250 | |
2019-09-18 14:17 | git | Note Added: 0087253 | |
2019-09-18 14:18 | git | Note Added: 0087254 | |
2019-09-18 14:26 | git | Note Added: 0087255 | |
2019-09-18 14:28 | nds | Assigned To | nds => kgv |
2019-09-18 14:28 | nds | Status | feedback => resolved |
2019-09-18 14:47 | git | Note Added: 0087256 | |
2019-09-18 15:25 | nds | Note Added: 0087258 | |
2019-09-18 15:25 | nds | Note Edited: 0087258 | |
2019-09-18 18:22 | oan | Note Added: 0087265 | |
2019-09-18 18:25 | nds | Note Added: 0087266 | |
2019-09-18 18:27 | oan | Note Added: 0087267 | |
2019-09-18 19:57 | git | Note Added: 0087271 | |
2019-09-18 19:57 | git | Note Added: 0087272 | |
2019-09-18 20:00 | git | Note Added: 0087274 | |
2019-09-18 20:03 | git | Note Added: 0087276 | |
2019-09-18 20:06 | git | Note Added: 0087277 | |
2019-09-18 20:06 | git | Note Added: 0087278 | |
2019-09-18 21:54 | git | Note Added: 0087279 | |
2019-09-18 21:55 | git | Note Added: 0087280 | |
2019-09-19 07:33 | git | Note Added: 0087286 | |
2019-09-19 07:37 | git | Note Added: 0087287 | |
2019-09-19 07:39 | git | Note Added: 0087288 | |
2019-09-19 09:40 | git | Note Added: 0087290 | |
2019-09-19 12:33 | git | Note Added: 0087297 | |
2019-09-19 14:45 | nds | File Deleted: json_dump_bounding_print.png | |
2019-09-19 14:46 | nds | File Added: json_dump_bounding_print.png | |
2019-09-19 14:52 | git | Note Added: 0087307 | |
2019-09-19 15:08 | git | Note Added: 0087309 | |
2019-09-19 15:17 | git | Note Added: 0087310 | |
2019-09-19 15:20 | nds | File Deleted: json_dump_vaspect_dump_not_arranged.png | |
2019-09-19 15:20 | nds | File Deleted: json_dump_vaspect_dump.png | |
2019-09-19 15:20 | nds | File Deleted: json_dump_vaspect_dump_not_arranged_deep_2.png | |
2019-09-19 15:20 | nds | File Deleted: json_dump_vaspect_dump_deep_2.png | |
2019-09-19 15:20 | nds | File Added: json_dump_vaspect_dump_compact.png | |
2019-09-19 15:21 | nds | File Added: json_dump_vaspect_dump.png | |
2019-09-19 15:21 | nds | File Added: json_dump_vaspect_dump_depth_2.png | |
2019-09-19 15:31 | kgv | Assigned To | kgv => bugmaster |
2019-09-19 15:31 | kgv | Severity | minor => feature |
2019-09-19 15:31 | kgv | Status | resolved => reviewed |
2019-09-19 18:50 | bugmaster | Test case number | => bugs/modalg_7/bug30949, bugs/vis/bug30949 |
2019-09-20 07:54 | bugmaster | Note Added: 0087340 | |
2019-09-20 07:54 | bugmaster | Status | reviewed => tested |
2019-09-21 18:13 | bugmaster | Changeset attached | => occt master 0904aa63 |
2019-09-21 18:13 | bugmaster | Status | tested => verified |
2019-09-21 18:13 | bugmaster | Resolution | open => fixed |
2019-09-22 11:40 | git | Note Added: 0087413 | |
2019-09-22 11:40 | git | Note Added: 0087414 | |
2019-09-22 11:40 | git | Note Added: 0087415 | |
2019-09-22 11:40 | git | Note Added: 0087416 | |
2019-09-22 11:40 | git | Note Added: 0087417 | |
2019-09-22 11:40 | git | Note Added: 0087418 | |
2019-09-22 11:40 | git | Note Added: 0087419 | |
2019-09-22 11:40 | git | Note Added: 0087420 | |
2019-09-25 10:30 | kgv | Relationship added | parent of 0030997 |
2019-09-29 12:36 | git | Note Added: 0087620 | |
2019-09-29 12:36 | git | Note Added: 0087621 | |
2020-01-28 10:21 | nds | Relationship added | related to 0031313 |
2020-01-30 12:09 | kgv | Relationship replaced | parent of 0031313 |
2020-01-30 12:09 | kgv | Relationship added | parent of 0031326 |