Files
coco 7846a45f2c a
2026-07-03 15:47:27 +08:00

392 lines
10 KiB
Markdown

# File Descriptions
This file provides a brief but thorough description of what each non-ignored file in the project is supposed to do.
## `.gitignore`
Specifies intentionally untracked files to ignore.
## `AGENTS.md`
Provides guidance for AI agents working with the codebase.
## `BLUEPRINT.md`
A technical specification document for the project.
## `README.md`
The main README for the project.
## `TODO.md`
A roadmap and list of future work for the project.
## `app/CMakeLists.txt`
CMake script for building the native C++ code in the app module.
## `app/build.gradle.kts`
Gradle build script for the main application module.
## `app/libs/vuforia.aar`
The Vuforia Augmented Reality library.
## `app/proguard-rules.pro`
Configuration for ProGuard to shrink, obfuscate, and optimize the app.
## `app/src/main/AndroidManifest.xml`
The Android application manifest file.
## `app/src/main/assets/Astronaut.jpg`
An image asset of an astronaut.
## `app/src/main/assets/Lander.jpg`
An image asset of a lander.
## `app/src/main/assets/shaders/fragment_shader.glsl`
The fragment shader for OpenGL rendering.
## `app/src/main/assets/shaders/vertex_shader.glsl`
The vertex shader for OpenGL rendering.
## `app/src/main/cpp/GraffitiJNI.cpp`
The JNI implementation for the native functions.
## `app/src/main/ic_launcher-playstore.png`
The application icon for the Google Play Store.
## `app/src/main/java/com/hereliesaz/graffitixr/ArState.kt`
Defines the state for the AR components of the application.
## `app/src/main/java/com/hereliesaz/graffitixr/MainActivity.kt`
The main activity of the application.
## `app/src/main/java/com/hereliesaz/graffitixr/MainScreen.kt`
The main Jetpack Compose screen for the application.
## `app/src/main/java/com/hereliesaz/graffitixr/MainViewModel.kt`
The main ViewModel for the application, handling business logic and state.
## `app/src/main/java/com/hereliesaz/graffitixr/MainViewModelFactory.kt`
A factory for creating instances of the MainViewModel.
## `app/src/main/java/com/hereliesaz/graffitixr/RotationAxis.kt`
Defines the possible axes of rotation for gestures.
## `app/src/main/java/com/hereliesaz/graffitixr/UiState.kt`
Defines the UI state for the application.
## `app/src/main/java/com/hereliesaz/graffitixr/VuforiaJNI.kt`
The JNI bridge for communicating with the native Vuforia C++ code.
## `app/src/main/java/com/hereliesaz/graffitixr/VuforiaManager.kt`
Manages the lifecycle and state of the Vuforia engine.
## `app/src/main/java/com/hereliesaz/graffitixr/composables/ImageTraceScreen.kt`
A composable screen for tracing images in non-AR mode.
## `app/src/main/java/com/hereliesaz/graffitixr/composables/MockupScreen.kt`
A composable screen for creating mockups on static images.
## `app/src/main/java/com/hereliesaz/graffitixr/composables/ProgressIndicator.kt`
A composable for displaying a progress indicator.
## `app/src/main/java/com/hereliesaz/graffitixr/composables/RotationAxisFeedback.kt`
A composable to provide visual feedback for the current rotation axis.
## `app/src/main/java/com/hereliesaz/graffitixr/composables/SettingsScreen.kt`
A composable screen for application settings.
## `app/src/main/java/com/hereliesaz/graffitixr/composables/TapFeedbackEffect.kt`
A composable that provides visual feedback for tap gestures.
## `app/src/main/java/com/hereliesaz/graffitixr/composables/TitleOverlay.kt`
A composable for overlaying a title on the screen.
## `app/src/main/java/com/hereliesaz/graffitixr/composables/VuforiaCameraScreen.kt`
A composable that displays the camera feed from Vuforia.
## `app/src/main/java/com/hereliesaz/graffitixr/composables/VuforiaRenderer.kt`
A composable responsible for rendering the Vuforia camera view.
## `app/src/main/java/com/hereliesaz/graffitixr/data/ProjectData.kt`
A data class representing the state of a user's project.
## `app/src/main/java/com/hereliesaz/graffitixr/data/Serializers.kt`
Custom serializers for data classes used in the application.
## `app/src/main/java/com/hereliesaz/graffitixr/dialogs/AdjustmentSliderDialog.kt`
A dialog for adjusting image properties with a slider.
## `app/src/main/java/com/hereliesaz/graffitixr/dialogs/ColorBalanceDialog.kt`
A dialog for adjusting the color balance of an image.
## `app/src/main/java/com/hereliesaz/graffitixr/dialogs/DoubleTapHintDialog.kt`
A dialog to hint to the user to double tap.
## `app/src/main/java/com/hereliesaz/graffitixr/dialogs/OnboardingDialog.kt`
A dialog for the application's onboarding flow.
## `app/src/main/java/com/hereliesaz/graffitixr/ui/theme/Color.kt`
Defines the color palette for the application's theme.
## `app/src/main/java/com/hereliesaz/graffitixr/ui/theme/Theme.kt`
Defines the overall theme for the application.
## `app/src/main/java/com/hereliesaz/graffitixr/ui/theme/Typography.kt`
Defines the typography for the application's theme.
## `app/src/main/java/com/hereliesaz/graffitixr/utils/Capture.kt`
Utility functions for capturing the screen.
## `app/src/main/java/com/hereliesaz/graffitixr/utils/ImageUtils.kt`
Utility functions for working with images.
## `app/src/main/java/com/hereliesaz/graffitixr/utils/MultiGestureDetector.kt`
A custom gesture detector for handling multiple gestures simultaneously.
## `app/src/main/java/com/hereliesaz/graffitixr/utils/OnboardingManager.kt`
Manages the application's onboarding process.
## `app/src/main/java/com/hereliesaz/graffitixr/utils/Parcelers.kt`
Custom parcelers for data classes used in the application.
## `app/src/main/java/com/hereliesaz/graffitixr/utils/RotationGestureDetector.kt`
A custom gesture detector for handling rotation gestures.
## `app/src/main/java/com/hereliesaz/graffitixr/utils/Texture.kt`
Utility functions for working with OpenGL textures.
## `app/src/main/java/com/hereliesaz/graffitixr/utils/Utils.kt`
General utility functions for the application.
## `app/src/main/res/drawable/graffitixr_logo.webp`
The logo for the application.
## `app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml`
The adaptive launcher icon for the application.
## `app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml`
The round adaptive launcher icon for the application.
## `app/src/main/res/mipmap-hdpi/ic_launcher.webp`
The high-density launcher icon.
## `app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp`
The foreground for the high-density launcher icon.
## `app/src/main/res/mipmap-hdpi/ic_launcher_monochrome.webp`
The monochrome high-density launcher icon.
## `app/src/main/res/mipmap-hdpi/ic_launcher_round.webp`
The high-density round launcher icon.
## `app/src/main/res/mipmap-mdpi/ic_launcher.webp`
The medium-density launcher icon.
## `app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp`
The foreground for the medium-density launcher icon.
## `app/src/main/res/mipmap-mdpi/ic_launcher_monochrome.webp`
The monochrome medium-density launcher icon.
## `app/src/main/res/mipmap-mdpi/ic_launcher_round.webp`
The medium-density round launcher icon.
## `app/src/main/res/mipmap-xhdpi/ic_launcher.webp`
The extra-high-density launcher icon.
## `app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp`
The foreground for the extra-high-density launcher icon.
## `app/src/main/res/mipmap-xhdpi/ic_launcher_monochrome.webp`
The monochrome extra-high-density launcher icon.
## `app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp`
The extra-high-density round launcher icon.
## `app/src/main/res/mipmap-xxhdpi/ic_launcher.webp`
The extra-extra-high-density launcher icon.
## `app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp`
The foreground for the extra-extra-high-density launcher icon.
## `app/src/main/res/mipmap-xxhdpi/ic_launcher_monochrome.webp`
The monochrome extra-extra-high-density launcher icon.
## `app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp`
The extra-extra-high-density round launcher icon.
## `app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp`
The extra-extra-extra-high-density launcher icon.
## `app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp`
The foreground for the extra-extra-extra-high-density launcher icon.
## `app/src/main/res/mipmap-xxxhdpi/ic_launcher_monochrome.webp`
The monochrome extra-extra-extra-high-density launcher icon.
## `app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp`
The extra-extra-extra-high-density round launcher icon.
## `app/src/main/res/values/ic_launcher_background.xml`
The background color for the launcher icon.
## `app/src/main/res/values/strings.xml`
The string resources for the application.
## `app/src/main/res/values/themes.xml`
The theme resources for the application.
## `app/src/main/res/xml/backup_rules.xml`
The backup rules for the application.
## `app/src/main/res/xml/data_extraction_rules.xml`
The data extraction rules for the application.
## `app/src/main/res/xml/provider_paths.xml`
The provider paths for the application.
## `build.gradle.kts`
The root Gradle build script for the project.
## `docs/FILE_DESCRIPTIONS.md`
This file.
## `gradle.properties`
Project-wide Gradle settings.
## `gradle/libs.versions.toml`
The Gradle version catalog for managing dependencies.
## `gradle/wrapper/gradle-wrapper.jar`
The Gradle wrapper JAR file.
## `gradle/wrapper/gradle-wrapper.properties`
The Gradle wrapper properties file.
## `gradlew`
The Gradle wrapper script for Linux and macOS.
## `gradlew.bat`
The Gradle wrapper script for Windows.
## `settings.gradle.kts`
The Gradle settings script for the project.
## `setup_ndk.sh`
A script for setting up the Android NDK.
## `vuforia.zip`
A zip file containing the Vuforia SDK.
## `vuforia/CMakeLists.txt`
CMake script for building the native C++ code in the vuforia module.
## `vuforia/build.gradle.kts`
Gradle build script for the vuforia module.
## `vuforia/build`
This directory and its contents are build artifacts for the vuforia module.
## `vuforia/licenses`
This directory and its contents are the Vuforia license.
## `vuforia/samples`
This directory and its contents are sample code for the Vuforia SDK.
## `vuforia/sdk`
This directory and its contents are the Vuforia SDK.