VGM Version 5.3
Loading...
Searching...
No Matches
IMedium.h
Go to the documentation of this file.
1// $Id$
2
3// -----------------------------------------------------------------------
4// The VGM package of the Virtual Geometry Model
5// Copyright (C) 2007, Ivana Hrivnacova
6// All rights reserved.
7//
8// For the licensing terms see vgm/LICENSE.
9// Contact: ivana@ipno.in2p3.fr
10// -----------------------------------------------------------------------
11
13//
19
20#ifndef VGM_I_MEDIUM_H
21#define VGM_I_MEDIUM_H
22
23#include <iostream>
24#include <string>
25
26namespace VGM {
27
28class IMaterial;
29
31{
32 public:
33 virtual ~IMedium() {}
34
35 // metods
38 virtual std::string Name() const = 0;
41 virtual IMaterial* Material() const = 0;
44 virtual int Id() const = 0;
47 virtual int NofParameters() const = 0;
50 virtual double Parameter(int i) const = 0;
51};
52} // namespace VGM
53
54std::ostream& operator<<(std::ostream& out, const VGM::IMedium& medium);
55
56#endif // VGM_I_MEDIUM_H
std::ostream & operator<<(std::ostream &out, const VGM::IMedium &medium)
Definition VMedium.cxx:26
The VGM interface to materials.
Definition IMaterial.h:44
The VGM interface to tracking medium.
Definition IMedium.h:31
virtual IMaterial * Material() const =0
Return its associated material.
virtual int NofParameters() const =0
Return the number of defined parameters.
virtual double Parameter(int i) const =0
Return the i-th parameter.
virtual int Id() const =0
Return its unique identifier.
virtual ~IMedium()
Definition IMedium.h:33
virtual std::string Name() const =0
Return its name.
VGM interfaces.
Definition VMedium.h:28