Blue Brain BioExplorer
GeometryParameters.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2015-2024, EPFL/Blue Brain Project
3  *
4  * The Blue Brain BioExplorer is a tool for scientists to extract and analyse
5  * scientific data from visualization
6  *
7  * This file is part of Blue Brain BioExplorer <https://github.com/BlueBrain/BioExplorer>
8  *
9  * This library is free software; you can redistribute it and/or modify it under
10  * the terms of the GNU Lesser General Public License version 3.0 as published
11  * by the Free Software Foundation.
12  *
13  * This library is distributed in the hope that it will be useful, but WITHOUT
14  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
15  * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
16  * details.
17  *
18  * You should have received a copy of the GNU Lesser General Public License
19  * along with this library; if not, write to the Free Software Foundation, Inc.,
20  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
21  */
22 
23 #pragma once
24 
25 #include "AbstractParameters.h"
26 
28 
29 SERIALIZATION_ACCESS(GeometryParameters)
30 
31 namespace core
32 {
36 {
37 public:
42 
44  void print() final;
45 
50  MemoryMode getMemoryMode() const { return _memoryMode; };
51  const std::set<BVHFlag>& getDefaultBVHFlags() const { return _defaultBVHFlags; }
52 
59 
65  float getSdfEpsilon() const { return _sdfEpsilon; }
66 
72  float getSdfBlendFactor() const { return _sdfBlendFactor; }
73 
79  float getSdfBlendLerpFactor() const { return _sdfBlendLerpFactor; }
80 
87 
93  float getSdfOmega() const { return _sdfOmega; }
94 
100  float getSdfDistance() const { return _sdfDistance; }
101 
102 protected:
103  void parse(const po::variables_map& vm) final;
104 
105  // Scene
106  std::set<BVHFlag> _defaultBVHFlags;
107 
108  // Geometry
110  float _sdfEpsilon{DEFAULT_GEOMETRY_SDF_EPSILON};
111  uint64_t _sdfNbMarchIterations{DEFAULT_GEOMETRY_SDF_NB_MARCH_ITERATIONS};
112  float _sdfBlendFactor{DEFAULT_GEOMETRY_SDF_BLEND_FACTOR};
113  float _sdfBlendLerpFactor{DEFAULT_GEOMETRY_SDF_BLEND_LERP_FACTOR};
114  float _sdfOmega{DEFAULT_GEOMETRY_SDF_OMEGA};
115  float _sdfDistance{DEFAULT_GEOMETRY_SDF_DISTANCE};
116 
117  // System parameters
119 
121 };
122 } // namespace core
#define SERIALIZATION_FRIEND(type)
Definition: Macros.h:32
#define SERIALIZATION_ACCESS(type)
Definition: Macros.h:25
std::set< BVHFlag > _defaultBVHFlags
float getSdfDistance() const
Get the distance until which SDF geometries are processed (blending and displacement)
float getSdfEpsilon() const
Get the epsilon for SDF geometries.
GeometryQuality getGeometryQuality() const
Get the geometry quality (low, medium or high)
float getSdfBlendLerpFactor() const
Get the blending lerp factor for SDF geometries.
float getSdfNbMarchIterations() const
Get the number of ray-marching iterations for SDF geometries.
void parse(const po::variables_map &vm) final
GeometryQuality _geometryQuality
float getSdfOmega() const
Get the ray-marching omega for SDF geometries.
MemoryMode getMemoryMode() const
const std::set< BVHFlag > & getDefaultBVHFlags() const
float getSdfBlendFactor() const
Get the blending factor for SDF geometries.
GeometryQuality
Definition: Types.h:222
MemoryMode
Definition: Types.h:281