Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:28:08

0001 // This file is part of the actsvg packge.
0002 //
0003 // Copyright (C) 2022 CERN for the benefit of the ACTS project
0004 //
0005 // This Source Code Form is subject to the terms of the Mozilla Public
0006 // License, v. 2.0. If a copy of the MPL was not distributed with this
0007 // file, You can obtain one at http://mozilla.org/MPL/2.0/.
0008 
0009 #pragma once
0010 
0011 #include <string>
0012 #include <vector>
0013 
0014 #include "volume.hpp"
0015 
0016 namespace actsvg {
0017 
0018 namespace proto {
0019 
0020 /** A proto volume class as a simple translation layer
0021  * from a volume description
0022  *
0023  * @tparam point3_container a vertex description of surfaces
0024  **/
0025 
0026 template <typename point3_container>
0027 struct detector {
0028 
0029     using volume_type = volume<point3_container>;
0030     
0031     /// Name of the volume
0032     std::string _name = "unnamed";
0033 
0034     /// Auxiliary information
0035     std::vector<volume<point3_container>> _volumes = {};
0036 
0037     /// Colorize method
0038     ///
0039     /// @param colors_ are the indexed colors
0040     ///
0041     void colorize(std::vector<style::color>& colors_) {
0042         for (auto& v : _volumes){
0043             v.colorize(colors_);
0044         }
0045     }
0046 
0047 };
0048 
0049 }  // namespace proto
0050 
0051 }  // namespace actsvg