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