/// 3D rendering for Flutter, built on Flutter GPU and Impeller.
///
/// The entry points most applications need are:
///
///  * [Scene] — the scene graph root and renderer. Construct one, attach
///    [Node]s, and call [Scene.render] from a `CustomPainter` (or any
///    `dart:ui` [Canvas]).
///  * [Node] — a transform in the scene graph that may carry a [Mesh] and
///    child nodes. Load 3D content with [loadScene] (preprocessed
///    `.fsceneb` packages, by source path) or [Node.fromGlbBytes] /
///    [Node.fromGlbAsset] (runtime glTF binary).
///  * [Camera] / [PerspectiveCamera] — view configuration passed to
///    [Scene.render].
///  * [Material], [PhysicallyBasedMaterial], [UnlitMaterial],
///    [Environment] — shading.
///  * [Animation], [AnimationClip], [AnimationPlayer] — playback and
///    blending of imported animations.
///
/// Flutter Scene currently requires the Flutter master channel because it
/// depends on the Flutter GPU API.
library;

export 'src/animation.dart' show Animation, AnimationClip, AnimationPlayer;

export 'src/geometry/billboard_geometry.dart'
    show BillboardFacing, BillboardGeometry;
export 'src/geometry/geometry.dart'
    show Geometry, GeometryBufferArena, SkinnedGeometry, UnskinnedGeometry;
export 'src/geometry/line_segments_geometry.dart' show LineSegmentsGeometry;
export 'src/geometry/vertex_layout.dart'
    show
        VertexAttributeDescriptor,
        VertexBufferDescriptor,
        VertexLayoutDescriptor;
export 'src/geometry/mesh_data.dart'
    show
        LineSegmentData,
        MeshAttributeData,
        MeshData,
        MeshTriangle,
        UnweldAttribute;
export 'src/geometry/mesh_geometry.dart'
    show GeometryBuilder, GeometryStorage, MeshGeometry;
export 'src/geometry/primitives.dart'
    show
        CapsuleGeometry,
        CuboidGeometry,
        CylinderGeometry,
        DiscGeometry,
        IcosphereGeometry,
        PlaneGeometry,
        RingGeometry,
        SphereGeometry,
        TorusGeometry,
        WedgeGeometry;
export 'src/geometry/polyline_geometry.dart'
    show DashPattern, PolylineCap, PolylineGeometry, PolylineWidthMode;
export 'src/geometry/swept_geometry.dart'
    show ExtrudeGeometry, RibbonAlignment, RibbonGeometry, TubeGeometry;

export 'src/environment_settings.dart' show EnvironmentSettings;
export 'src/environment_volume.dart'
    show
        BoxVolumeBounds,
        EnvironmentVolume,
        EnvironmentVolumeBounds,
        SphereVolumeBounds,
        blendEnvironmentVolumes;
export 'src/material/environment.dart'
    show EnvironmentMap, environmentAssetPathOf, kDiffuseShCoefficientCount;
export 'src/material/equirect_image.dart'
    show EquirectImageFormat, decodeEquirectHdrImage, detectEquirectImageFormat;
export 'src/material/exr_decoder.dart' show ExrFormatException, decodeOpenExr;
export 'src/material/hdr_decoder.dart'
    show DecodedHdr, HdrFormatException, decodeRadianceHdr;
export 'src/material/material.dart' show Material;
export 'src/material/material_parameters.dart' show MaterialParameters;
export 'src/material/physically_based_material.dart'
    show AlphaMode, PhysicallyBasedMaterial, TextureTransform;
export 'src/material/preprocessed_material.dart' show PreprocessedMaterial;
export 'src/material/preprocessed_sky.dart' show PreprocessedSky;
export 'src/material/shader_material.dart' show ShaderMaterial;
export 'src/material/shader_stage.dart' show MeshVariant, ShaderStage;
export 'src/material/sprite_material.dart' show SpriteBlendMode, SpriteMaterial;
export 'src/material/unlit_material.dart' show UnlitMaterial;
export 'src/fmat/material_registry.dart'
    show
        FmatMaterialFactory,
        FmatMaterialRegistry,
        loadFmatMaterial,
        loadFmatSky;
export 'src/importer/scene_registry.dart'
    show
        SceneRegistry,
        SceneReloadCallback,
        clearSceneTemplateCache,
        loadScene,
        loadSceneSubtree,
        releaseScene;

export 'src/ambient_occlusion.dart'
    show AmbientOcclusionSettings, SpecularAmbientOcclusionMode;
export 'src/auto_exposure.dart' show AutoExposureSettings;
export 'src/depth_of_field.dart' show DepthOfField, DepthOfFieldQuality;
export 'src/fog.dart' show Fog, FogMode;
export 'src/god_rays.dart' show GodRaysSettings;
export 'src/screen_space_reflections.dart'
    show ScreenSpaceReflectionsSettings, SsrDebugView;
export 'src/asset_helpers.dart'
    show
        gpuTextureFromAsset,
        gpuTextureFromImage,
        imageFromAsset,
        imageFromBytes;
export 'src/camera.dart'
    show Camera, CameraProjection, PerspectiveCamera, PerspectiveProjection;
export 'src/components/camera_component.dart' show CameraComponent, NodeCamera;
export 'src/components/component.dart' show Component;
export 'src/components/directional_light_component.dart'
    show DirectionalLightComponent;
export 'src/components/environment_volume_component.dart'
    show EnvironmentVolumeComponent, EnvironmentVolumeShape;
export 'src/components/instanced_mesh_component.dart'
    show InstancedMeshComponent;
export 'src/components/lod_component.dart' show LodComponent;
export 'src/components/mesh_component.dart' show MeshComponent;
export 'src/components/materials_variants_component.dart'
    show MaterialsVariantsComponent;
export 'src/components/point_light_component.dart' show PointLightComponent;
export 'src/components/semantics_component.dart' show SemanticsComponent;
export 'src/components/splat_component.dart' show SplatComponent;
export 'src/components/spot_light_component.dart' show SpotLightComponent;
export 'src/render/lod.dart' show LodLevel;
export 'src/components/widget_component.dart' show WidgetComponent, WidgetInput;
export 'src/components/particle_emitter_component.dart'
    show ParticleEmitterComponent;
export 'src/components/mesh_particle_emitter_component.dart'
    show MeshParticleEmitterComponent, MeshParticleFacing;
export 'src/components/trail_component.dart' show TrailComponent;
export 'src/particles/particle_system.dart' show ParticleSystem;
export 'src/particles/particle_storage.dart' show ParticleStorage;
export 'src/particles/particle_module.dart'
    show
        AccelerationModule,
        ColorOverLifeModule,
        FlipbookModule,
        LinearDragModule,
        ParticleModule,
        RotationModule,
        SizeOverLifeModule,
        TurbulenceModule;
export 'src/particles/emitter_shape.dart'
    show
        BoxEmitterShape,
        ConeEmitterShape,
        EmitterShape,
        PointEmitterShape,
        SphereEmitterShape;
export 'src/particles/distribution.dart'
    show
        ColorDistribution,
        ColorGradient,
        ColorStop,
        ConstantColor,
        ConstantFloat,
        CurveFloat,
        FloatDistribution,
        GradientColor,
        ParticleCurve,
        ParticleKeyframe,
        UniformColor,
        UniformCurveFloat,
        UniformFloat;
export 'src/particles/spawner.dart' show ParticleBurst, Spawner;
export 'src/geometry/splat_geometry.dart' show SplatCropMode;
export 'src/splats/gaussian_splats.dart' show GaussianSplats;
export 'src/splats/splat_codec.dart' show SplatFormat;
export 'src/splats/splat_data.dart' show SplatColorSpace, SplatData;
export 'src/instanced_mesh.dart' show InstancedMesh;
export 'src/light.dart'
    show
        DirectionalLight,
        DirectionalShadowFilter,
        Lighting,
        PointLight,
        ShadowCascade,
        ShadowCasterFaces,
        SpotLight;
export 'src/render/custom_render_pass.dart'
    show CustomRenderPass, RenderInput, RenderPassContext, RenderStage;
export 'src/render/frame_transients.dart' show TransientWriter;
export 'src/render/object_filter.dart' show NodeFilter;
export 'src/render/render_layers.dart'
    show kRenderLayerAll, kRenderLayerDefault;
export 'src/render/selection_outline_pass.dart' show HighlightStyle;
export 'src/render_texture.dart'
    show RenderTexture, RenderTextureSampling, RenderTextureUpdate;
export 'src/render_view.dart' show RenderView;
export 'src/math_extensions.dart' show QuaternionSlerp, Vector3Lerp;
export 'src/mesh.dart' show Mesh, MeshPrimitive;
export 'src/node.dart' show Node;
export 'src/sprite.dart' show Sprite;
export 'src/texture_atlas.dart'
    show TextureAtlas, generateSolidColorAtlasPixels;
export 'src/texture/texture2d.dart'
    show Texture2D, TextureSource, TextureSampling, GpuTextureSource;
export 'src/memory_report.dart'
    show MemoryCategory, MemoryReport, takeMemoryReport;
export 'src/texture/texture_registry.dart'
    show clearTextureCache, loadTexture, releaseTexture;
export 'src/texture/mipmap.dart' show TextureContent;
// Audio is an optional contract, exported from
// `package:flutter_scene/audio.dart`.
// Physics is an optional contract, exported from
// `package:flutter_scene/physics.dart`.
export 'src/post_process/post_effect.dart' show PostEffect, PostInsertion;
export 'src/post_process/post_process.dart'
    show
        BloomSettings,
        ChromaticAberrationSettings,
        ColorGradingSettings,
        FilmGrainSettings,
        PostProcessSettings,
        VignetteSettings;
export 'src/render/env_prefilter.dart' show prefilterEquirectRadiance;
export 'src/runtime_importer/gltf_resources.dart' show GltfResourceResolver;
export 'src/scene_path.dart'
    show BezierPath, CatmullRomPath, PolylinePath, ScenePath, ScenePathFrame;
export 'src/raycast.dart' show SceneRaycastHit, raycastNode, raycastNodeAll;
export 'src/resource_group.dart' show ResourceGroup;
export 'src/scene_pointer.dart' show ScenePointer;
export 'src/scene.dart' show AntiAliasingMode, Scene, SceneGraph;
export 'src/widget_texture.dart'
    show WidgetTexture, WidgetTextureController, WidgetUpdatePolicy;
export 'src/shaders.dart' show baseShaderLibrary, loadBaseShaderLibrary;
export 'src/skin.dart' show Skin;
export 'src/sky_environment.dart' show SkyEnvironment, SkyEnvironmentRefresh;
export 'src/sky_sources.dart' show GradientSkySource, PhysicalSkySource;
export 'src/skybox.dart'
    show EnvironmentSkySource, ShaderSkySource, SkySource, Skybox, SunSky;
export 'src/sun_light.dart' show SunLight;
export 'src/surface.dart' show Surface;
export 'src/widgets/declarative.dart'
    show
        AssetModelSource,
        MemoryModelSource,
        SceneAnimationSpec,
        SceneMesh,
        SceneModel,
        SceneModelSource,
        SceneNode,
        SceneNodeController,
        SceneNodeHost,
        SceneSubtree;
export 'src/widgets/render_texture_view.dart' show RenderTextureView;
export 'src/widgets/scene_view.dart'
    show
        SceneCameraBuilder,
        SceneLoadingBuilder,
        SceneScope,
        SceneTickCallback,
        SceneView;
export 'src/tone_mapping.dart' show ToneMappingMode;
