|
|
|||
File indexing completed on 2026-04-09 07:48:56
0001 #pragma once 0002 /** 0003 CSGGenstep.h : Creator of CenterExtent "CE" Gensteps used by CSGOptiXSimtraceTest 0004 ================================================================================== 0005 0006 Center extent gensteps (maybe rename as FrameGensteps for simplicity without CE jargon) 0007 can generate for example photons in the local frame of part of the geometry in order 0008 to create 2D cross-sections from the intersects. 0009 0010 Sensitive to envvars: 0011 0012 CEGS 0013 center-extent-genstep 0014 expect 4 or 7 ints delimited by colon nx:ny:nz:num_pho OR nx:px:ny:py:nz:py:num_pho 0015 0016 TODO: compare with SCenterExtentGenstep.hh 0017 0018 TODO: relocate 0019 this is misplaced up in CSG, most of it should be down in SysRap/SEvent 0020 to make ce-gensteps follow the pattern of other gensteps 0021 perhaps using new "SLocation/SComposition/SFrame" struct (that is persistable) 0022 for holding transforms and ce that is provided by a CSGFoundry method 0023 and which is passed down to SysRap/SEvent to generate the gensteps 0024 0025 For example:: 0026 0027 SEvent::MakeTorchGensteps() 0028 SEvent::MakeCarrierGensteps() 0029 0030 SEvent::MakeFrameGensteps(const SFrame& fr) 0031 0032 **/ 0033 0034 #include <vector> 0035 #include "plog/Severity.h" 0036 0037 struct float4 ; 0038 struct qat4 ; 0039 template <typename T> struct Tran ; 0040 0041 #include "CSG_API_EXPORT.hh" 0042 0043 0044 struct NP ; 0045 0046 struct CSG_API CSGGenstep 0047 { 0048 CSGGenstep( const CSGFoundry* foundry ); 0049 0050 NP* create(); // MOI, ... 0051 0052 void create(const char* moi, bool ce_offset, bool ce_scale ); 0053 void generate_photons_cpu(); 0054 void save(const char* basedir) const ; 0055 0056 // below are "private" 0057 0058 static const plog::Severity LEVEL ; 0059 void init(); 0060 void locate(const char* moi); 0061 void override_locate() ; 0062 void configure_grid() ; 0063 0064 const CSGFoundry* foundry ; 0065 float gridscale ; 0066 const char* moi ; 0067 int midx ; 0068 int mord ; 0069 int iidx ; 0070 float4 ce ; 0071 qat4* m2w ; // 4x4 float 0072 qat4* w2m ; // 4x4 float 0073 0074 Tran<double>* geotran ; // internally holds 3*glm::tmat4x4<double> 0075 // derived from m2w w2m using Tran<double>::FromPair 0076 0077 std::vector<int> cegs ; 0078 0079 NP* gs ; 0080 NP* pp ; 0081 0082 0083 };
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|