VGM
Version 5.5
Toggle main menu visibility
Loading...
Searching...
No Matches
packages
VGM
include
VGM
solids
IBooleanSolid.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
19
20
#ifndef VGM_I_BOOLEAN_SOLID_H
21
#define VGM_I_BOOLEAN_SOLID_H
22
23
#include "
VGM/common/Transform.h
"
24
#include "
VGM/solids/ISolid.h
"
25
26
#include <iostream>
27
28
namespace
VGM
{
29
30
enum
BooleanType
31
{
32
kIntersection
,
33
kSubtraction
,
34
kUnion
,
35
kUnknownBoolean
36
};
37
38
std::string
BooleanTypeName
(
BooleanType
typeId);
39
40
class
IBooleanSolid
:
public
virtual
ISolid
41
{
42
public
:
43
virtual
~IBooleanSolid
() {}
44
45
// methods
46
47
virtual
SolidType
Type
()
const
= 0;
48
virtual
std::string
Name
()
const
= 0;
49
52
virtual
BooleanType
BoolType
()
const
= 0;
55
virtual
ISolid
*
ConstituentSolidA
()
const
= 0;
58
virtual
ISolid
*
ConstituentSolidB
()
const
= 0;
62
virtual
Transform
Displacement
()
const
= 0;
66
virtual
bool
ToBeReflected
()
const
= 0;
67
68
// streaming
69
virtual
std::ostream&
Put
(std::ostream& out)
const
= 0;
70
};
71
72
}
// namespace VGM
73
74
std::ostream&
operator<<
(std::ostream& out,
const
VGM::IBooleanSolid
& solid);
75
76
#endif
// VGM_I_BOOLEAN_SOLID_H
operator<<
std::ostream & operator<<(std::ostream &out, const VGM::IBooleanSolid &solid)
Definition
VBooleanSolid.cxx:25
ISolid.h
Transform.h
VGM::IBooleanSolid
The VGM interface to Boolean solids.
Definition
IBooleanSolid.h:41
VGM::IBooleanSolid::Name
virtual std::string Name() const =0
Return the name of this solid.
VGM::IBooleanSolid::ConstituentSolidB
virtual ISolid * ConstituentSolidB() const =0
Return the second constituent solid.
VGM::IBooleanSolid::ToBeReflected
virtual bool ToBeReflected() const =0
Return true if the solid has to be first reflected before being placed.
VGM::IBooleanSolid::Put
virtual std::ostream & Put(std::ostream &out) const =0
Put the printing of the solid parameters in the out stream.
VGM::IBooleanSolid::~IBooleanSolid
virtual ~IBooleanSolid()
Definition
IBooleanSolid.h:43
VGM::IBooleanSolid::ConstituentSolidA
virtual ISolid * ConstituentSolidA() const =0
Return the first constituent solid.
VGM::IBooleanSolid::Type
virtual SolidType Type() const =0
Return the type of this solid.
VGM::IBooleanSolid::BoolType
virtual BooleanType BoolType() const =0
Return the Boolean type of this solid.
VGM::IBooleanSolid::Displacement
virtual Transform Displacement() const =0
Return the 3D displacement of the second constituent solid with respect to the first one.
VGM::ISolid
The VGM interface to solids.
Definition
ISolid.h:58
VGM
VGM interfaces.
Definition
VMedium.h:28
VGM::Transform
std::vector< double > Transform
Definition
Transform.h:40
VGM::BooleanType
BooleanType
Definition
IBooleanSolid.h:31
VGM::kUnknownBoolean
@ kUnknownBoolean
Definition
IBooleanSolid.h:35
VGM::kIntersection
@ kIntersection
Definition
IBooleanSolid.h:32
VGM::kSubtraction
@ kSubtraction
Definition
IBooleanSolid.h:33
VGM::kUnion
@ kUnion
Definition
IBooleanSolid.h:34
VGM::BooleanTypeName
std::string BooleanTypeName(BooleanType typeId)
Definition
VBooleanSolid.cxx:33
VGM::SolidType
SolidType
Definition
ISolid.h:29
Generated on
for VGM by
1.17.0