From 11a9370d8aec780a03f09a4f38aec6dff110282b Mon Sep 17 00:00:00 2001 From: Sergey Linev <S.Linev@gsi.de> Date: Tue, 5 Sep 2017 14:26:38 +0200 Subject: [PATCH] g3d-io: equip TPolyLine3D custom streamer Allows to use JSON and XML storage of such objects. Does not affect binary I/O --- graf3d/g3d/src/TPolyLine3D.cxx | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/graf3d/g3d/src/TPolyLine3D.cxx b/graf3d/g3d/src/TPolyLine3D.cxx index 420aaf5a306..84b5f991f16 100644 --- a/graf3d/g3d/src/TPolyLine3D.cxx +++ b/graf3d/g3d/src/TPolyLine3D.cxx @@ -723,24 +723,40 @@ void TPolyLine3D::Streamer(TBuffer &b) UInt_t R__s, R__c; if (b.IsReading()) { b.ReadVersion(&R__s, &R__c); + b.ClassBegin(TPolyLine3D::IsA()); + b.ClassMember("TObject"); TObject::Streamer(b); + b.ClassMember("TAttLine"); TAttLine::Streamer(b); + b.ClassMember("fN", "Int_t"); b >> fN; if (fN) { fP = new Float_t[3*fN]; + b.ClassMember("fP", "Float_t", 3*fN); b.ReadFastArray(fP,3*fN); } + b.ClassMember("fOption","TString"); fOption.Streamer(b); fLastPoint = fN-1; + b.ClassEnd(TPolyLine3D::IsA()); b.CheckByteCount(R__s, R__c, TPolyLine3D::IsA()); } else { R__c = b.WriteVersion(TPolyLine3D::IsA(), kTRUE); + b.ClassBegin(TPolyLine3D::IsA()); + b.ClassMember("TObject"); TObject::Streamer(b); + b.ClassMember("TAttLine"); TAttLine::Streamer(b); + b.ClassMember("fN", "Int_t"); Int_t size = Size(); b << size; - if (size) b.WriteFastArray(fP, 3*size); + if (size) { + b.ClassMember("fP", "Float_t", 3*size); + b.WriteFastArray(fP, 3*size); + } + b.ClassMember("fOption","TString"); fOption.Streamer(b); + b.ClassEnd(TPolyLine3D::IsA()); b.SetByteCount(R__c, kTRUE); } } -- GitLab