00001 00007 /* --------------------------------------------------------------------------- 00008 * Authors: Tomáš Burian (tburian _AT centrum.cz) 00009 * Thanks to: PCJohn (peciva _AT fit.vutbr.cz) 00010 * Contributors: 00011 * 00012 * THIS SOFTWARE IS NOT COPYRIGHTED 00013 * 00014 * This source code is offered for use in the public domain. 00015 * You may use, modify or distribute it freely. 00016 * 00017 * This source code is distributed in the hope that it will be useful but 00018 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY 00019 * DISCLAIMED. This includes but is not limited to warranties of 00020 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 00021 * 00022 * If you find the source code useful, authors will kindly welcome 00023 * if you give them credit and keep their names with their source code, 00024 * but do not feel to be forced to do so. 00025 * --------------------------------------------------------------------------- 00026 */ 00027 00028 #ifndef DATA_STRUCTURES__H 00029 #define DATA_STRUCTURES__H 00030 00031 #include <Inventor/nodes/SoLight.h> 00032 #include <Inventor/nodes/SoSeparator.h> 00033 #include <Inventor/nodes/SoSwitch.h> 00034 #include <Inventor/nodes/SoEnvironment.h> 00035 00036 00040 enum TShadowMethod { 00041 zpass, 00042 zfail, 00043 autoset 00044 }; 00045 00046 00050 enum TShadowAlgorithm { 00051 zpassAlg, 00052 zfailAlg 00053 }; 00054 00055 00059 struct TShadowSettings { 00060 enum TShadowMethod method; 00061 bool dropShadows; 00064 float fDepth; 00065 }; 00066 00067 00071 enum TLightTypes { 00072 TSoDirectionalLight, 00073 TSoDirectionalLightManip, 00074 TSoPointLight, 00075 TSoPointLightManip, 00076 TSoSpotLight, 00077 TSoSpotLightManip, 00078 TUnknownLightType 00079 }; 00080 00081 00085 struct TLightInfo { 00086 SoLight * light; 00087 SbBool * status; 00088 SoEnvironment * globEnv; 00089 int * sceneType; 00090 }; 00091 00092 00096 struct TLightSwitch { 00097 SoSwitch * switchNode; 00099 SbBool * status; 00100 }; 00101 00102 00103 #endif