Back to home page

EIC code displayed by LXR

 
 

    


Warning, /eic-opticks/CSG/index.rst is written in an unsupported language. File is not indexed.

0001 CSG
0002 =====
0003 
0004 Primary Geometry Model
0005 -------------------------
0006 
0007 CSGFoundry.h .cc
0008     geometry vector holder, nexus of control 
0009 
0010 CSGSolid.h .cc
0011     references one or more CSGPrim, corresponds to compound solids 
0012     such as the set of G4VSolid and PV/LV making up JUNO PMTs
0013 
0014 CSGPrim.h .cc
0015     references one or more CSGNode, corresponds to "root" G4VSolid like G4UnionSolid 
0016 
0017 CSGNode.h .cc
0018     constituent CSG nodes, typically low level G4VSolid like G4Sphere G4Tubs etc..
0019 
0020 CSGPrimSpec.h .cc
0021     specification to access the AABB and sbtIndexOffset of all CSGPrim of a CSGSolid
0022 
0023     * HMM: MAYBE CSGSolidSpec would be a better name
0024 
0025 
0026 CSGFoundry Helpers
0027 -------------------
0028 
0029 CSGTarget.h .cc
0030     const CSGFoundry ctor argument, sframe/CE:center_extent/transform access
0031 
0032     * CSGFoundry::target instance : with transform related access
0033     
0034 CSGMaker.h .cc
0035     non-const CSGFoundry ctor argument, many "make" methods adding CSGSolid/CSGPrim/CSGNode to foundry
0036 
0037     * CSGFoundry::maker instance  
0038 
0039 CSGCopy.h .cc
0040     CSGFoundry cloning and copying with selection  
0041 
0042 CSGQuery.h .cc
0043     const CSGFoundry ctor argument, CSGPrim and CSGNode selection API  
0044 
0045 CU.h CU.cc
0046     upload/download array/vec used for CSGFoundry upload 
0047 
0048 
0049 Other CSGFoundry Helpers
0050 -------------------------
0051 
0052 CSGDraw.h .cc
0053     CSGQuery ctor argument providing CSGNode access, 
0054     ascii drawing of CSG node trees
0055 
0056 CSGGeometry.h .cc
0057     higher level wrapper for CSGFoundry which avoids repetition of geometry setup, 
0058     loading and querying mechanics used from some older tests
0059 
0060     * TODO: review usage and see if still useful or can be consolidated
0061 
0062 CSGGrid.h
0063     signed distance field used from CSGQuery, CSGGeometry
0064 
0065 
0066 Dead? OR should be rearranged
0067 -------------------------------
0068 
0069 InstanceId.h
0070     simple bit packing of ins_idx and gas_idx
0071  
0072     * PROBABLY DEAD
0073 
0074 Sys.h
0075     simple union conversions : unsigned_as_float , float_as_unsigned 
0076 
0077 CSGGenstep.h .cc
0078      const CSGFoundry ctor argumnent
0079 
0080      * TODO: suspect this has been superceeded by sysrap equiv 
0081 
0082 CSGEnum.h
0083     solid type enum
0084 
0085     * TODO: eliminate or consolidate with CSGSolid.h
0086 
0087 old_sutil_vec_math.h
0088    HUH: now comes from scuda.h, DEAD? 
0089 
0090 
0091 CSGView.h .cc
0092     glm based eye, look, up projection transform maths
0093 
0094     * HMM: no CSG dependency, this can and should be done at lower sysrap level
0095     * TODO: review users and check for duplicated functionality  
0096 
0097 
0098 
0099 Testing 
0100 ---------
0101 
0102 CSGSimtrace.hh .cc
0103     2D cross sectioning, loads CSGFoundry, used from main CSGSimtraceTest.cc
0104 
0105 CSGSimtraceRerun.h .cc
0106     on CPU csg_intersect debugging, used from main CSGSimtraceRerunTest.cc
0107 
0108 CSGSimtraceSample.h
0109     on CPU csg_intersect debugging, used from main CSGSimtraceSampleTest.cc
0110 
0111     * TODO: contrast with Rerun, maybe consolidate 
0112 
0113 CSGScan.h .cc
0114     CPU testing of GPU csg_intersect impl, used from main CSGScanTest.cc
0115 
0116 
0117 Debug Machinery
0118 -----------------
0119 
0120 CSGRecord.h .cc
0121     behind DEBUG_RECORD macro, used for deep debugging of CSG intersect impl on CPU 
0122 
0123 CSGDebug_Cylinder.hh .cc
0124     recording deep details of cylinder intersection
0125 
0126     
0127 Plumbing
0128 ----------
0129 
0130 CUDA_CHECK.h
0131     hostside CUDA_CHECK macro 
0132 
0133 CSG_LOG.hh
0134     logging setup
0135 
0136 CSG_API_EXPORT.hh
0137     symbol visibility  
0138 
0139 
0140  
0141 
0142 Primary csg_intersect headers : functions take CSGNode arguments
0143 ------------------------------------------------------------------------
0144 
0145 csg_intersect_tree.h
0146    distance_tree, distance_list, intersect_tree, intersect_prim, distance_prim 
0147 
0148 csg_intersect_node.h
0149    distance_node_list, intersect_node_contiguous, intersect_node_discontiguous, intersect_node_overlap, 
0150    intersect_node, distance_node
0151 
0152 csg_intersect_leaf.h
0153    distance_leaf_sphere, intersect_leaf_sphere, ... , intersect_leaf
0154 
0155 csg_intersect_leaf_newcone.h
0156    intersect_leaf_newcone
0157 
0158 csg_intersect_leaf_oldcone.h
0159    intersect_leaf_oldcone
0160 
0161 csg_intersect_leaf_oldcylinder.h
0162    intersect_leaf_oldcylinder
0163 
0164 csg_intersect_leaf_phicut.h
0165    distance_leaf_phicut, intersect_leaf_phicut, intersect_leaf_phicut_dev, intersect_leaf_phicut_lucas
0166 
0167 csg_intersect_leaf_thetacut.h
0168    intersect_leaf_thetacut, intersect_leaf_thetacut_lucas
0169 
0170 
0171 Helpers for csg_intersect
0172 ---------------------------
0173 
0174 csg_classify.h
0175    enum : CTRL_RETURN_MISS/../LOOP_B 
0176    enum : State_Enter/Exit/Miss
0177    struct LUT 
0178 
0179 csg_error.h
0180    enum : ERROR_LHS_POP_EMPTY ...
0181 
0182 csg_tranche.h
0183    struct Tranche
0184    Postorder Tranch storing a stack of slices into the postorder sequence
0185 
0186 csg_pack.h
0187    PACK4/UNPACK4 macros 
0188 
0189 csg_postorder.h
0190    complete binary tree traversal in bit-twiddling macros 
0191 
0192 csg_robust_quadratic_roots.h
0193    Numerically Stable Method for Solving Quadratic Equations 
0194 
0195 csg_stack.h
0196    CSG_Stack struct, csg_push, csg_pop
0197 
0198 f4_stack.h
0199    struct F4_Stack using float4 as micro stack
0200 
0201 
0202