Back to home page

EIC code displayed by LXR

 
 

    


Warning, file /include/Geant4/G4PolyhedronArbitrary.hh was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 //
0002 // ********************************************************************
0003 // * License and Disclaimer                                           *
0004 // *                                                                  *
0005 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
0006 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
0007 // * conditions of the Geant4 Software License,  included in the file *
0008 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
0009 // * include a list of copyright holders.                             *
0010 // *                                                                  *
0011 // * Neither the authors of this software system, nor their employing *
0012 // * institutes,nor the agencies providing financial support for this *
0013 // * work  make  any representation or  warranty, express or implied, *
0014 // * regarding  this  software system or assume any liability for its *
0015 // * use.  Please see the license in the file  LICENSE  and URL above *
0016 // * for the full disclaimer and the limitation of liability.         *
0017 // *                                                                  *
0018 // * This  code  implementation is the result of  the  scientific and *
0019 // * technical work of the GEANT4 collaboration and of QinetiQ Ltd,   *
0020 // * subject to DEFCON 705 IPR conditions.                            *
0021 // * By using,  copying,  modifying or  distributing the software (or *
0022 // * any work based  on the software)  you  agree  to acknowledge its *
0023 // * use  in  resulting  scientific  publications,  and indicate your *
0024 // * acceptance of all terms of the Geant4 Software license.          *
0025 // ********************************************************************
0026 //
0027 //
0028 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0029 //
0030 // MODULE:                G4PolyhedronArbitrary.hh
0031 //
0032 // Date:                15/06/2005
0033 // Author:                P R Truscott
0034 // Organisation:        QinetiQ Ltd, UK
0035 // Customer:                UK Ministry of Defence : RAO CRP TD Electronic Systems
0036 // Contract:                C/MAT/N03517
0037 //
0038 // This software is the intelectual property of QinetiQ Ltd, subject
0039 // DEFCON 705 IPR conditions.
0040 //
0041 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0042 //
0043 // CHANGE HISTORY
0044 // --------------
0045 //
0046 // 11th November 2011, J Allison.  Added private copy constructor and
0047 //    assignment operator added to satisfy Coverity.
0048 // 27th July 2011, J Allison.  Added SetReferences and InvertFacets.
0049 //   SetReferences is necessary at the end to complete the polyhedron.
0050 //   It particularly matters if the polyhedron suffers subsequent
0051 //   boolean operations.
0052 //   InvertFacets can be useful.
0053 // 13 January 2006, J Allison.  Removed unnecessary operator= functions.
0054 // 31 October 2004, P R Truscott, QinetiQ Ltd, UK
0055 // Created.
0056 //
0057 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0058 //
0059 // DESCRIPTION
0060 // -----------
0061 //
0062 //
0063 //
0064 ///////////////////////////////////////////////////////////////////////////////
0065 //
0066 //
0067 #ifndef G4PolyhedronArbitrary_h
0068 #define G4PolyhedronArbitrary_h 1
0069 
0070 #include "G4Polyhedron.hh"
0071 #include "G4ThreeVector.hh"
0072 
0073 ///////////////////////////////////////////////////////////////////////////////
0074 //
0075 class G4PolyhedronArbitrary : public G4Polyhedron
0076 {
0077   public:
0078     G4PolyhedronArbitrary (const G4int nVertices, const G4int nFacets);
0079     ~G4PolyhedronArbitrary () override;
0080     // Private copy constructor and assignment operator added to satisfy
0081     // Coverity - JA 11/11/11.
0082     G4PolyhedronArbitrary(const G4PolyhedronArbitrary&) = delete;
0083     G4PolyhedronArbitrary& operator= (const G4PolyhedronArbitrary&) = delete;    
0084 
0085     void AddVertex (const G4ThreeVector& v);
0086     void AddFacet (const G4int iv1, const G4int iv2, const G4int iv3,
0087       const G4int iv4=0);
0088     
0089     // Call this after all vertices and facets have been added.
0090     void SetReferences() {HepPolyhedron::SetReferences();}
0091 
0092     // Can be useful.
0093     void InvertFacets() {HepPolyhedron::InvertFacets();}
0094 
0095   protected:
0096     G4int nVertexCount;
0097     G4int nFacetCount;
0098 
0099 };
0100 #endif
0101 ///////////////////////////////////////////////////////////////////////////////
0102 //
0103