// This code implementation is the intellectual property of
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4LogicalSurface.icc,v 1.3 2000/04/20 16:49:46 gcosmo Exp $
// GEANT4 tag $Name: geant4-02-00 $
//
////////////////////////////////////////////////////////////////////////
// Surface Class Inline Methods
////////////////////////////////////////////////////////////////////////
//
// File:        G4LogicalSurface.icc
// Description: A Surface class 
// Version:     1.0
// Created:     1997-06-26
// Author:      John Apostolakis
//
////////////////////////////////////////////////////////////////////////

/////////////////////////
// Class Inline Methods
/////////////////////////

inline G4OpticalSurface*
G4LogicalSurface::GetOpticalSurface() const
{
	return theOpticalSurface;
} 

inline void
G4LogicalSurface::SetOpticalSurface(G4OpticalSurface* ptrOpticalSurface) 
{
	theOpticalSurface = ptrOpticalSurface;
} 

inline G4String
G4LogicalSurface::GetName() const
{
	return theName;
}

inline void
G4LogicalSurface::SetName(const G4String& name)
{
	theName = name;
}

inline G4TransitionRadiationSurface*
G4LogicalSurface::GetTransitionRadiationSurface() const
{
	return theTransRadSurface;
} 

inline void
G4LogicalSurface::SetTransitionRadiationSurface(G4TransitionRadiationSurface*
                                                transRadSurf )
{
	theTransRadSurface= transRadSurf;
} 


  //////////////
  // Operators
  //////////////

inline const G4LogicalSurface &
G4LogicalSurface::operator=(const G4LogicalSurface &right)
{
	return right;
}

inline G4int
G4LogicalSurface::operator==(const G4LogicalSurface &right) const
{
	return (this == (G4LogicalSurface *) &right);
}

inline G4int
G4LogicalSurface::operator!=(const G4LogicalSurface &right) const
{
	return (this != (G4LogicalSurface *) &right);
}

  /////////////////
  // Constructors 
  /////////////////

inline G4LogicalSurface::G4LogicalSurface(const G4String&         name,
					 G4OpticalSurface* opticalSurface) 
		: theName(name),
		  theOpticalSurface(opticalSurface)
{
}

inline G4LogicalSurface::G4LogicalSurface(const G4LogicalSurface &right)
{
	*this = right;
}

inline G4LogicalSurface::~G4LogicalSurface()
{
}
