From a3eed7026dfc524dc97883d11ae0fc071ba7a4e0 Mon Sep 17 00:00:00 2001
From: Sergey Linev <S.Linev@gsi.de>
Date: Mon, 10 Dec 2018 10:37:33 +0100
Subject: [PATCH] eve7: remove internal CSG methods from header file

Only one method and TBaseMesh class are used from outside
---
 graf3d/eve7/inc/ROOT/REveCsgOps.hxx  | 9 +++------
 graf3d/eve7/src/REveCsgOps.cxx       | 7 +++----
 graf3d/eve7/src/REveGeoPolyShape.cxx | 5 ++---
 3 files changed, 8 insertions(+), 13 deletions(-)

diff --git a/graf3d/eve7/inc/ROOT/REveCsgOps.hxx b/graf3d/eve7/inc/ROOT/REveCsgOps.hxx
index 7d781351e20..0ef47ab2d00 100644
--- a/graf3d/eve7/inc/ROOT/REveCsgOps.hxx
+++ b/graf3d/eve7/inc/ROOT/REveCsgOps.hxx
@@ -26,12 +26,9 @@ public:
    virtual Int_t GetVertexIndex(Int_t polyNum, Int_t vertNum) const = 0;
 };
 
-TBaseMesh *ConvertToMesh(const TBuffer3D &buff, TGeoMatrix *matr = nullptr);
-TBaseMesh *BuildUnion(const TBaseMesh *leftOperand, const TBaseMesh *rightOperand);
-TBaseMesh *BuildIntersection(const TBaseMesh *leftOperand, const TBaseMesh *rightOperand);
-TBaseMesh *BuildDifference(const TBaseMesh *leftOperand, const TBaseMesh *rightOperand);
-TBaseMesh *BuildFromCompositeShape(TGeoCompositeShape *cshape, Int_t n_seg);
-TBaseMesh *BuildFromCompositeShapeNew(TGeoCompositeShape *cshape, Int_t n_seg);
+// TBaseMesh *BuildFromCompositeShape(TGeoCompositeShape *cshape, Int_t n_seg);
+
+std::unique_ptr<TBaseMesh> BuildFromCompositeShapeNew(TGeoCompositeShape *cshape, Int_t n_seg);
 
 
 } // namespace EveCsg
diff --git a/graf3d/eve7/src/REveCsgOps.cxx b/graf3d/eve7/src/REveCsgOps.cxx
index 1f87aaf2cd4..9513f11b282 100644
--- a/graf3d/eve7/src/REveCsgOps.cxx
+++ b/graf3d/eve7/src/REveCsgOps.cxx
@@ -2820,7 +2820,7 @@ Int_t TCsgVV3D::AddObject(const TBuffer3D& buffer, Bool_t* addChildren)
 {
    if (fCompositeOpen)
    {
-      auto newMesh = ConvertToMesh(buffer);
+      auto newMesh = ConvertToMesh(buffer, nullptr);
       fCSTokens.push_back(std::make_pair(TBuffer3D::kCSNoOp, newMesh));
    }
 
@@ -2971,10 +2971,9 @@ std::unique_ptr<TBaseMesh> MakeMesh(TGeoMatrix *matr, TGeoShape *shape)
    return res;
 }
 
-TBaseMesh *BuildFromCompositeShapeNew(TGeoCompositeShape *cshape, Int_t n_seg)
+std::unique_ptr<TBaseMesh> BuildFromCompositeShapeNew(TGeoCompositeShape *cshape, Int_t n_seg)
 {
-   auto res = MakeMesh(nullptr, cshape);
-   return res.release();
+   return MakeMesh(nullptr, cshape);
 }
 
 
diff --git a/graf3d/eve7/src/REveGeoPolyShape.cxx b/graf3d/eve7/src/REveGeoPolyShape.cxx
index 26ecf7262b3..052b532d331 100644
--- a/graf3d/eve7/src/REveGeoPolyShape.cxx
+++ b/graf3d/eve7/src/REveGeoPolyShape.cxx
@@ -65,9 +65,8 @@ REveGeoPolyShape* REveGeoPolyShape::Construct(TGeoCompositeShape *cshape, Int_t
    egps->fDY = cshape->GetDY();
    egps->fDZ = cshape->GetDZ();
 
-   EveCsg::TBaseMesh *mesh = EveCsg::BuildFromCompositeShapeNew(cshape, n_seg);
-   egps->SetFromMesh(mesh);
-   delete mesh;
+   auto mesh = EveCsg::BuildFromCompositeShapeNew(cshape, n_seg);
+   egps->SetFromMesh(mesh.get());
 
    return egps;
 }
-- 
GitLab