// @(#)root/g3d:$Name: $:$Id: TShape.h,v 1.6 2005/03/11 11:44:25 brun Exp $
// Author: Nenad Buncic 17/09/95
/*************************************************************************
* Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
* All rights reserved. *
* *
* For the licensing terms see $ROOTSYS/LICENSE. *
* For the list of contributors see $ROOTSYS/README/CREDITS. *
*************************************************************************/
#ifndef ROOT_TShape
#define ROOT_TShape
//////////////////////////////////////////////////////////////////////////
// //
// TShape //
// //
// Basic shape class //
// //
// //
//////////////////////////////////////////////////////////////////////////
#ifndef ROOT_TNamed
#include "TNamed.h"
#endif
#ifndef ROOT_TMaterial
#include "TMaterial.h"
#endif
#ifndef ROOT_TAttLine
#include "TAttLine.h"
#endif
#ifndef ROOT_TAttFill
#include "TAttFill.h"
#endif
#ifndef ROOT_TAtt3D
#include "TAtt3D.h"
#endif
#ifndef ROOT_X3DBuffer
#include "X3DBuffer.h"
#endif
class TBuffer3D;
class TNode;
class TShape : public TNamed, public TAttLine, public TAttFill, public TAtt3D {
protected:
Int_t fNumber; //Shape number
Int_t fVisibility; //Visibility flag
TMaterial *fMaterial; //Pointer to material
virtual void FillBuffer3D(TBuffer3D & buffer, Int_t reqSections) const;
Int_t GetBasicColor() const;
Int_t ShapeDistancetoPrimitive(Int_t numPoints, Int_t px, Int_t py);
public:
TShape();
TShape(const char *name, const char *title, const char *material);
virtual ~TShape();
virtual const TBuffer3D &GetBuffer3D(Int_t reqSections) const;
TMaterial *GetMaterial() const {return fMaterial;}
virtual Int_t GetNumber() const {return fNumber;}
Int_t GetVisibility() const {return fVisibility;}
virtual void Paint(Option_t *option="");
virtual void SetName(const char *name);
virtual void SetPoints(Double_t *points) const ;
virtual void SetVisibility(Int_t vis) {fVisibility = vis;} // *MENU*
void TransformPoints(Double_t *points, UInt_t NbPnts) const;
ClassDef(TShape,2) //Basic shape
};
R__EXTERN TNode *gNode;
inline void TShape::SetName(const char *) { }
#endif
syntax highlighted by Code2HTML, v. 0.9.1