java.lang.Object
de.grogra.gpuflux.scene.FluxObject
de.grogra.gpuflux.scene.light.FluxLight
de.grogra.gpuflux.scene.light.FluxCurveLight
GPU serialiser for the
CurveLight line-segment / curve light.
Serialisation layout (matches curvelight.h CurveLight struct):
Light base (type = LIGHT_CURVE) float exponent float openingAngleStart (radians) float openingAngleSector (radians, sector width = end − start) float sectorSoftness (radians, smooth falloff zone at each sector edge) int numPoints (= FLUX_N + 1 = 17, or 2 for straight tube) float arcLengthWorld (total world-space arc length in metres) float arcLengthCdf[17] (normalised CDF; cdf[0]=0, cdf[numPoints-1]=1) Vec3 points[17] (world-space polyline positions) Vec3 tangents[17] (world-space unit tangents)
When CurveLight.getCurve() is non-null, the polyline is built via
CurveLight.buildCurvePolyline(int, float[], float[]) (64 segments = 17 points).
For a straight tube (curve == null) only 2 points are used.
- Author:
- MH at YNL 2026
-
Field Summary
Fields inherited from class de.grogra.gpuflux.scene.light.FluxLight
light, LIGHT_AREA, LIGHT_CURVE, LIGHT_DIRECTIONAL, LIGHT_PHYSICAL, LIGHT_POINT, LIGHT_SKY, LIGHT_SPECTRAL, LIGHT_SPOT -
Constructor Summary
Constructors -
Method Summary
Methods inherited from class de.grogra.gpuflux.scene.light.FluxLight
getLight, getTransformation, serializeLightBase, setTransformationMethods inherited from class de.grogra.gpuflux.scene.FluxObject
getOffset, setOffset
-
Constructor Details
-
FluxCurveLight
-
-
Method Details
-
getSampleCount
public int getSampleCount()- Overrides:
getSampleCountin classFluxLight
-
serialize
- Specified by:
serializein classFluxObject- Throws:
IOException
-