File indexing completed on 2026-04-09 07:48:58
0001 #pragma once
0002
0003 #include "CSGEnum.h"
0004
0005 #if defined(__CUDACC__) || defined(__CUDABE__)
0006 #else
0007 #include "plog/Severity.h"
0008 #include <string>
0009 #include "CSG_API_EXPORT.hh"
0010 #endif
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037 struct CSG_API CSGSolid
0038 {
0039 char label[16] ;
0040
0041
0042 int numPrim ;
0043 int primOffset ;
0044 int type = STANDARD_SOLID ;
0045
0046 char intent = '\0' ;
0047 char pad0 = '\0' ;
0048 char pad1 = '\0' ;
0049 char pad2 = '\0' ;
0050
0051
0052 float4 center_extent ;
0053
0054
0055 #if defined(__CUDACC__) || defined(__CUDABE__)
0056 #else
0057 static const plog::Severity LEVEL ;
0058
0059 const char* getLabel() const ;
0060 bool labelMatch(const char* label) const ;
0061
0062
0063 char getIntent() const ;
0064 void setIntent(char _intent);
0065
0066 static void CopyIntent( CSGSolid* d, const CSGSolid* s );
0067
0068 static bool IsDiff( const CSGSolid& a , const CSGSolid& b );
0069 static CSGSolid Make( const char* label_, int numPrim_, int primOffset_=-1 );
0070 static std::string MakeLabel(const char* typ0, unsigned idx0, char delim='_' );
0071 static std::string MakeLabel(char typ0, unsigned idx0 );
0072 static int ParseLabel(const char* label, char& typ0, unsigned& idx0 );
0073 int get_ridx() const ;
0074
0075 static std::string MakeLabel(char typ0, unsigned idx0, char typ1, unsigned idx1 );
0076 static std::string MakeLabel(char typ0, unsigned idx0, char typ1, unsigned idx1, char typ2, unsigned idx2 );
0077 std::string desc() const ;
0078
0079 #endif
0080
0081 };
0082
0083