diff options
Diffstat (limited to 'indra/newview/pipeline.h')
-rw-r--r-- | indra/newview/pipeline.h | 27 |
1 files changed, 20 insertions, 7 deletions
diff --git a/indra/newview/pipeline.h b/indra/newview/pipeline.h index e98be79120..ac2c32fedd 100644 --- a/indra/newview/pipeline.h +++ b/indra/newview/pipeline.h @@ -65,8 +65,8 @@ typedef enum e_avatar_skinning_method BOOL compute_min_max(LLMatrix4& box, LLVector2& min, LLVector2& max); // Shouldn't be defined here! bool LLRayAABB(const LLVector3 ¢er, const LLVector3 &size, const LLVector3& origin, const LLVector3& dir, LLVector3 &coord, F32 epsilon = 0); -BOOL LLLineSegmentAABB(const LLVector3& start, const LLVector3& end, const LLVector3& center, const LLVector3& size); -BOOL setup_hud_matrices(BOOL for_select); +BOOL setup_hud_matrices(); // use whole screen to render hud +BOOL setup_hud_matrices(const LLRect& screen_region); // specify portion of screen (in pixels) to render hud attachments from (for picking) glh::matrix4f glh_copy_matrix(GLdouble* src); glh::matrix4f glh_get_current_modelview(); void glh_set_current_modelview(const glh::matrix4f& mat); @@ -129,8 +129,21 @@ public: void markTextured(LLDrawable *drawablep); void markRebuild(LLDrawable *drawablep, LLDrawable::EDrawableFlags flag = LLDrawable::REBUILD_ALL, BOOL priority = FALSE); - //get the object between start and end that's closest to start. Return the point of collision in collision. - LLViewerObject* pickObject(const LLVector3 &start, const LLVector3 &end, LLVector3 &collision); + //get the object between start and end that's closest to start. + LLViewerObject* lineSegmentIntersectInWorld(const LLVector3& start, const LLVector3& end, + S32* face_hit, // return the face hit + LLVector3* intersection = NULL, // return the intersection point + LLVector2* tex_coord = NULL, // return the texture coordinates of the intersection point + LLVector3* normal = NULL, // return the surface normal at the intersection point + LLVector3* bi_normal = NULL // return the surface bi-normal at the intersection point + ); + LLViewerObject* lineSegmentIntersectInHUD(const LLVector3& start, const LLVector3& end, + S32* face_hit, // return the face hit + LLVector3* intersection = NULL, // return the intersection point + LLVector2* tex_coord = NULL, // return the texture coordinates of the intersection point + LLVector3* normal = NULL, // return the surface normal at the intersection point + LLVector3* bi_normal = NULL // return the surface bi-normal at the intersection point + ); // Something about these textures has changed. Dirty them. void dirtyPoolObjectTextures(const std::set<LLViewerImage*>& textures); @@ -185,8 +198,7 @@ public: void renderHighlights(); void renderDebug(); - void renderForSelect(std::set<LLViewerObject*>& objects); - void renderFaceForUVSelect(LLFace* facep); + void renderForSelect(std::set<LLViewerObject*>& objects, BOOL render_transparent, const LLRect& screen_rect); void rebuildPools(); // Rebuild pools void findReferences(LLDrawable *drawablep); // Find the lists which have references to this object @@ -329,7 +341,8 @@ public: RENDER_DEBUG_TEXTURE_ANIM = 0x080000, RENDER_DEBUG_LIGHTS = 0x100000, RENDER_DEBUG_BATCH_SIZE = 0x200000, - RENDER_DEBUG_SHAME = 0x400000, + RENDER_DEBUG_RAYCAST = 0x400000, + RENDER_DEBUG_SHAME = 0x800000 }; public: |