-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Hud10837/import render code #580
Hud10837/import render code #580
Conversation
toolkit/ar/src/main/java/com/arcgismaps/toolkit/ar/internal/render/Mesh.java
Show resolved
Hide resolved
toolkit/ar/src/main/java/com/arcgismaps/toolkit/ar/internal/render/CameraFeedRenderer.kt
Outdated
Show resolved
Hide resolved
toolkit/ar/src/main/java/com/arcgismaps/toolkit/ar/internal/render/DisplayRotationHelper.java
Show resolved
Hide resolved
toolkit/ar/src/main/java/com/arcgismaps/toolkit/ar/internal/render/Framebuffer.java
Outdated
Show resolved
Hide resolved
toolkit/ar/src/main/java/com/arcgismaps/toolkit/ar/internal/render/GpuBuffer.java
Outdated
Show resolved
Hide resolved
toolkit/ar/src/main/java/com/arcgismaps/toolkit/ar/internal/render/Mesh.java
Show resolved
Hide resolved
toolkit/ar/src/main/java/com/arcgismaps/toolkit/ar/internal/render/PlaneRenderer.kt
Outdated
Show resolved
Hide resolved
toolkit/ar/src/main/java/com/arcgismaps/toolkit/ar/internal/render/PlaneRenderer.kt
Outdated
Show resolved
Hide resolved
// Shader names. | ||
private const val VERTEX_SHADER_NAME = "shaders/plane.vert" | ||
private const val FRAGMENT_SHADER_NAME = "shaders/plane.frag" | ||
private const val TEXTURE_NAME = "models/trigrid.png" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this path correct? Becuase it's under "textures" in the assets folder.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good catch, I changed the path to textures as we are not using any models
Thanks @gunt0001 I have addressed your comments |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@hud10837 - looks good 👍
Second vtest run looks good, merging now |
* import necessary files for rendering camera feed * copyright * rm obj dependency * make kotlin classes internal * make java classes non-public * centralize logging and tag * add doc links to hello ar * make planerenderer companion internal * Fix texture name * add newline
* merge `Feature branches/forms` into v.next (#566) * `Forms`: Add `TextFormElement` (#542) * `Forms`: Add `TextFormElement` tests (#551) * add tests * updated feature form doc * bump sdk version * `Forms` : Add SubTypeFeatureLayer support (#559) * `Forms`: Fix stale `LaunchedEffect`s (#563) * fix stale launched effects * use rememberupdatedstate * update feature form doc (#565) * Remove unnecessary creating the viewmodel in the main activity (#571) * Set up Tabletop AR project (#545) * prototype design options * prototype tabletopSceneView * remove unused implementations * create readme * add tabletopsceneviewproxy * update microapp to use tabletop proxy * add TableTopSceneViewScope * apply Compose gradle plugin * fix warnings * rename microapp * delete tests for microapp * add copyright * fix since years * use swift doc on tabletopsceneview * add proxy doc * add scope doc * fix references in proxy doc * fix references in scope doc * fix references in scope doc * newlines * rm unit test * fix doc and imports * fix doc and imports * revert authentication changes --------- Co-authored-by: Gunther Heppner <gheppner@esri.com> * Hud10837/import render code (#580) * import necessary files for rendering camera feed * copyright * rm obj dependency * make kotlin classes internal * make java classes non-public * centralize logging and tag * add doc links to hello ar * make planerenderer companion internal * Fix texture name * add newline * Tabletop AR: Add ArSurfaceView (#590) * bring in existing implementation of ArSurfaceView * bring in changes to TabletopSceneView and TableTopSceneViewState * pare down changes to just implement ARSurfaceView and add lifecycle management wrappers for AR Session and GlSurfaceView * rm camera controller line * mv call to box * mv ArSessionWrapper to internal * fix since tags * rename ARSurfaceView -> ArCameraFeed * rename localLifecycleOwner -> lifecycleOwner * mv initialization of sceneViewProxy to TableTopSceneViewProxy * Hud10837/session init and permissions (#595) * mv assets folder to correct location * out of the box permissions request * rename camera permission function * make request permission optional * add initialization status * add availability check * update microapp * extract string resources * rm unnecessary changes * don't use stateflow for microapp * rename string res * rename string resource * don't require camera permission before checking arcore visibility * mv box call * add local function for update status * simplify availability check * rename status * make status constructors internal * use updateState for initial status * mv status doc to member objects * add remaining param doc * fix remaining param doc * add parameter for callback to lambda * revert whitespace in manifest * remove debug delay * add factory rememberTableTopSceneViewStatus * add extension fun to mutable state * add extension fun to mutable state * rename camera feed file * use launchedeffect to ensure initializing status is only sent once * Don't send callback on first status * use side effects for callback * use collectAsStateWithLifecycle * add doc to rememberTableTopSceneViewStatus() * add new DetectingPlanes status * create callback and set status for first plane detected * add in scene placement logic * add translation factor, anchor point, clipping distance * rm initial viewpoint on scene * display simple helper text while detecting planes * use string res * use string res for lat lon callout content * enhance microapp with status messages * use better data for microapp * rm debug code * use val instead of var for status * cleanup * use display rotation for lens intrinsics * checkout unexpected files from feature branch * checkout unexpected files from feature branch * add doc to TextWithScrim * use when statements and be exhaustive * mv declarations of cameraController and arCoreAnchor * add doc Pose.transformationMatrix * use when (val status = ... * use explicit api mode * fix build warnings --------- Co-authored-by: Kaushik Meesala <kaushik.pulagara@gmail.com> Co-authored-by: Puneet Prakash <puneet_prakash@esri.com> Co-authored-by: Gunther Heppner <gheppner@esri.com>
* Set up Tabletop AR project (#545) * prototype design options * prototype tabletopSceneView * remove unused implementations * create readme * add tabletopsceneviewproxy * update microapp to use tabletop proxy * add TableTopSceneViewScope * apply Compose gradle plugin * fix warnings * rename microapp * delete tests for microapp * add copyright * fix since years * use swift doc on tabletopsceneview * add proxy doc * add scope doc * fix references in proxy doc * fix references in scope doc * fix references in scope doc * newlines * rm unit test * fix doc and imports * fix doc and imports * revert authentication changes --------- Co-authored-by: Gunther Heppner <gheppner@esri.com> * Hud10837/import render code (#580) * import necessary files for rendering camera feed * copyright * rm obj dependency * make kotlin classes internal * make java classes non-public * centralize logging and tag * add doc links to hello ar * make planerenderer companion internal * Fix texture name * add newline * Tabletop AR: Add ArSurfaceView (#590) * bring in existing implementation of ArSurfaceView * bring in changes to TabletopSceneView and TableTopSceneViewState * pare down changes to just implement ARSurfaceView and add lifecycle management wrappers for AR Session and GlSurfaceView * rm camera controller line * mv call to box * mv ArSessionWrapper to internal * fix since tags * rename ARSurfaceView -> ArCameraFeed * rename localLifecycleOwner -> lifecycleOwner * mv initialization of sceneViewProxy to TableTopSceneViewProxy * Hud10837/session init and permissions (#595) * mv assets folder to correct location * out of the box permissions request * rename camera permission function * make request permission optional * add initialization status * add availability check * update microapp * extract string resources * rm unnecessary changes * don't use stateflow for microapp * rename string res * rename string resource * don't require camera permission before checking arcore visibility * mv box call * add local function for update status * simplify availability check * rename status * make status constructors internal * use updateState for initial status * mv status doc to member objects * add remaining param doc * fix remaining param doc * add parameter for callback to lambda * revert whitespace in manifest * remove debug delay * add factory rememberTableTopSceneViewStatus * add extension fun to mutable state * add extension fun to mutable state * rename camera feed file * use launchedeffect to ensure initializing status is only sent once * Don't send callback on first status * use side effects for callback * use collectAsStateWithLifecycle * add doc to rememberTableTopSceneViewStatus() * Tabletop AR: scene placement (#602) * merge `Feature branches/forms` into v.next (#566) * `Forms`: Add `TextFormElement` (#542) * `Forms`: Add `TextFormElement` tests (#551) * add tests * updated feature form doc * bump sdk version * `Forms` : Add SubTypeFeatureLayer support (#559) * `Forms`: Fix stale `LaunchedEffect`s (#563) * fix stale launched effects * use rememberupdatedstate * update feature form doc (#565) * Remove unnecessary creating the viewmodel in the main activity (#571) * Set up Tabletop AR project (#545) * prototype design options * prototype tabletopSceneView * remove unused implementations * create readme * add tabletopsceneviewproxy * update microapp to use tabletop proxy * add TableTopSceneViewScope * apply Compose gradle plugin * fix warnings * rename microapp * delete tests for microapp * add copyright * fix since years * use swift doc on tabletopsceneview * add proxy doc * add scope doc * fix references in proxy doc * fix references in scope doc * fix references in scope doc * newlines * rm unit test * fix doc and imports * fix doc and imports * revert authentication changes --------- Co-authored-by: Gunther Heppner <gheppner@esri.com> * Hud10837/import render code (#580) * import necessary files for rendering camera feed * copyright * rm obj dependency * make kotlin classes internal * make java classes non-public * centralize logging and tag * add doc links to hello ar * make planerenderer companion internal * Fix texture name * add newline * Tabletop AR: Add ArSurfaceView (#590) * bring in existing implementation of ArSurfaceView * bring in changes to TabletopSceneView and TableTopSceneViewState * pare down changes to just implement ARSurfaceView and add lifecycle management wrappers for AR Session and GlSurfaceView * rm camera controller line * mv call to box * mv ArSessionWrapper to internal * fix since tags * rename ARSurfaceView -> ArCameraFeed * rename localLifecycleOwner -> lifecycleOwner * mv initialization of sceneViewProxy to TableTopSceneViewProxy * Hud10837/session init and permissions (#595) * mv assets folder to correct location * out of the box permissions request * rename camera permission function * make request permission optional * add initialization status * add availability check * update microapp * extract string resources * rm unnecessary changes * don't use stateflow for microapp * rename string res * rename string resource * don't require camera permission before checking arcore visibility * mv box call * add local function for update status * simplify availability check * rename status * make status constructors internal * use updateState for initial status * mv status doc to member objects * add remaining param doc * fix remaining param doc * add parameter for callback to lambda * revert whitespace in manifest * remove debug delay * add factory rememberTableTopSceneViewStatus * add extension fun to mutable state * add extension fun to mutable state * rename camera feed file * use launchedeffect to ensure initializing status is only sent once * Don't send callback on first status * use side effects for callback * use collectAsStateWithLifecycle * add doc to rememberTableTopSceneViewStatus() * add new DetectingPlanes status * create callback and set status for first plane detected * add in scene placement logic * add translation factor, anchor point, clipping distance * rm initial viewpoint on scene * display simple helper text while detecting planes * use string res * use string res for lat lon callout content * enhance microapp with status messages * use better data for microapp * rm debug code * use val instead of var for status * cleanup * use display rotation for lens intrinsics * checkout unexpected files from feature branch * checkout unexpected files from feature branch * add doc to TextWithScrim * use when statements and be exhaustive * mv declarations of cameraController and arCoreAnchor * add doc Pose.transformationMatrix * use when (val status = ... * use explicit api mode * fix build warnings --------- Co-authored-by: Kaushik Meesala <kaushik.pulagara@gmail.com> Co-authored-by: Puneet Prakash <puneet_prakash@esri.com> Co-authored-by: Gunther Heppner <gheppner@esri.com> * TableTop improvements (#607) * stop rendering planes as soon as the anchor point is determined * configure ARCore Session to only detect horizontal planes * disable pan/zoom/rotate interaction * make clippingDistance an optional parameter and ensure modifier is first optional param * enhance comment Co-authored-by: hud10837 <hmiears@esri.com> --------- Co-authored-by: hud10837 <hmiears@esri.com> * TableTop doc (#644) * expand AR readme * explain translationFactor * update micro app to use simplified dataset * cache arcGISSceneAnchor in the composition * add prerequisites and usage sections * doc fixes * add AR to top level readme * remove basemap and make surface opaque * add screenshot * update README * improve doc on TableTopSceneView parameters * add README for ARTableTop micro app * improve doc on translationFactor Co-authored-by: hud10837 <hmiears@esri.com> * refine doc for prerequisites * add snippet for AR required manifest * fix spelling Co-authored-by: hud10837 <hmiears@esri.com> --------- Co-authored-by: hud10837 <hmiears@esri.com> * Tabletop - disable navigation (#662) * remove interaction options from TableTopSceneView * remove setViewpoint functions from TableTopSceneViewProxy * remove unused imports * Tabletop callout fix & Session config (#663) * cache _isManualRenderingEnabled and sync with SceneView when set * invoke content lambda when SceneView ready or in manual rendering mode * configure AR Session in onResume instead of upon construction * change ArCameraFeed constructor to take a Session instead of ArSessionWrapper * create Session in onResume, expose as StateFlow * observe session state flow in order to render the ArCameraFeed * lock the screen of the TableTop micro app * roll back screen orientation lock * sync manual rendering flag in sceneView property setter * remove `onDrawStatusChanged` from TableTopSceneView * fix link * fix link * fix link --------- Co-authored-by: hud10837 <hmiears@esri.com> Co-authored-by: Kaushik Meesala <kaushik.pulagara@gmail.com> Co-authored-by: Puneet Prakash <puneet_prakash@esri.com>
Related to issue: https://devtopia.esri.com/runtime/kotlin/issues/4639
Description:
Adds rendering code to render the camera feed for Tabletop AR. This will be used by the
TableTopSceneView
.Summary of changes:
Pre-merge Checklist