<feed xmlns='http://www.w3.org/2005/Atom'>
<title>viewer.git/indra/newview/llmanipscale.h, branch 26.3</title>
<subtitle>Megapahit's fork of the Second Life viewer.
</subtitle>
<id>https://megapahit.org/viewer.git/atom?h=26.3</id>
<link rel='self' href='https://megapahit.org/viewer.git/atom?h=26.3'/>
<link rel='alternate' type='text/html' href='https://megapahit.org/viewer.git/'/>
<updated>2024-05-22T19:40:26Z</updated>
<entry>
<title>Fix line endlings</title>
<updated>2024-05-22T19:40:26Z</updated>
<author>
<name>Ansariel</name>
<email>ansariel.hiller@phoenixviewer.com</email>
</author>
<published>2024-05-22T19:25:21Z</published>
<link rel='alternate' type='text/html' href='https://megapahit.org/viewer.git/commit/?id=e2e37cced861b98de8c1a7c9c0d3a50d2d90e433'/>
<id>urn:sha1:e2e37cced861b98de8c1a7c9c0d3a50d2d90e433</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge remote-tracking branch 'origin/main' into DRTVWR-600-maint-A</title>
<updated>2024-05-22T17:04:52Z</updated>
<author>
<name>Ansariel</name>
<email>ansariel.hiller@phoenixviewer.com</email>
</author>
<published>2024-05-22T17:04:52Z</published>
<link rel='alternate' type='text/html' href='https://megapahit.org/viewer.git/commit/?id=1b67dd855c41f5a0cda7ec2a68d98071986ca703'/>
<id>urn:sha1:1b67dd855c41f5a0cda7ec2a68d98071986ca703</id>
<content type='text'>
# Conflicts:
#	autobuild.xml
#	indra/cmake/CMakeLists.txt
#	indra/cmake/GoogleMock.cmake
#	indra/llaudio/llaudioengine_fmodstudio.cpp
#	indra/llaudio/llaudioengine_fmodstudio.h
#	indra/llaudio/lllistener_fmodstudio.cpp
#	indra/llaudio/lllistener_fmodstudio.h
#	indra/llaudio/llstreamingaudio_fmodstudio.cpp
#	indra/llaudio/llstreamingaudio_fmodstudio.h
#	indra/llcharacter/llmultigesture.cpp
#	indra/llcharacter/llmultigesture.h
#	indra/llimage/llimage.cpp
#	indra/llimage/llimagepng.cpp
#	indra/llimage/llimageworker.cpp
#	indra/llimage/tests/llimageworker_test.cpp
#	indra/llmessage/tests/llmockhttpclient.h
#	indra/llprimitive/llgltfmaterial.h
#	indra/llrender/llfontfreetype.cpp
#	indra/llui/llcombobox.cpp
#	indra/llui/llfolderview.cpp
#	indra/llui/llfolderviewmodel.h
#	indra/llui/lllineeditor.cpp
#	indra/llui/lllineeditor.h
#	indra/llui/lltextbase.cpp
#	indra/llui/lltextbase.h
#	indra/llui/lltexteditor.cpp
#	indra/llui/lltextvalidate.cpp
#	indra/llui/lltextvalidate.h
#	indra/llui/lluictrl.h
#	indra/llui/llview.cpp
#	indra/llwindow/llwindowmacosx.cpp
#	indra/newview/app_settings/settings.xml
#	indra/newview/llappearancemgr.cpp
#	indra/newview/llappearancemgr.h
#	indra/newview/llavatarpropertiesprocessor.cpp
#	indra/newview/llavatarpropertiesprocessor.h
#	indra/newview/llbreadcrumbview.cpp
#	indra/newview/llbreadcrumbview.h
#	indra/newview/llbreastmotion.cpp
#	indra/newview/llbreastmotion.h
#	indra/newview/llconversationmodel.h
#	indra/newview/lldensityctrl.cpp
#	indra/newview/lldensityctrl.h
#	indra/newview/llface.inl
#	indra/newview/llfloatereditsky.cpp
#	indra/newview/llfloatereditwater.cpp
#	indra/newview/llfloateremojipicker.h
#	indra/newview/llfloaterimsessiontab.cpp
#	indra/newview/llfloaterprofiletexture.cpp
#	indra/newview/llfloaterprofiletexture.h
#	indra/newview/llgesturemgr.cpp
#	indra/newview/llgesturemgr.h
#	indra/newview/llimpanel.cpp
#	indra/newview/llimpanel.h
#	indra/newview/llinventorybridge.cpp
#	indra/newview/llinventorybridge.h
#	indra/newview/llinventoryclipboard.cpp
#	indra/newview/llinventoryclipboard.h
#	indra/newview/llinventoryfunctions.cpp
#	indra/newview/llinventoryfunctions.h
#	indra/newview/llinventorygallery.cpp
#	indra/newview/lllistbrowser.cpp
#	indra/newview/lllistbrowser.h
#	indra/newview/llpanelobjectinventory.cpp
#	indra/newview/llpanelprofile.cpp
#	indra/newview/llpanelprofile.h
#	indra/newview/llpreviewgesture.cpp
#	indra/newview/llsavedsettingsglue.cpp
#	indra/newview/llsavedsettingsglue.h
#	indra/newview/lltooldraganddrop.cpp
#	indra/newview/llurllineeditorctrl.cpp
#	indra/newview/llvectorperfoptions.cpp
#	indra/newview/llvectorperfoptions.h
#	indra/newview/llviewerparceloverlay.cpp
#	indra/newview/llviewertexlayer.cpp
#	indra/newview/llviewertexturelist.cpp
#	indra/newview/macmain.h
#	indra/test/test.cpp
</content>
</entry>
<entry>
<title>#824 Process source files in bulk: replace tabs with spaces, convert CRLF to LF, and trim trailing whitespaces as needed</title>
<updated>2024-04-29T04:56:09Z</updated>
<author>
<name>Andrey Lihatskiy</name>
<email>alihatskiy@productengine.com</email>
</author>
<published>2024-04-29T04:43:28Z</published>
<link rel='alternate' type='text/html' href='https://megapahit.org/viewer.git/commit/?id=1b68f71348ecf3983b76b40d7940da8377f049b7'/>
<id>urn:sha1:1b68f71348ecf3983b76b40d7940da8377f049b7</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Convert remaining BOOL to bool</title>
<updated>2024-02-21T21:14:31Z</updated>
<author>
<name>Ansariel</name>
<email>ansariel.hiller@phoenixviewer.com</email>
</author>
<published>2024-02-21T20:05:14Z</published>
<link rel='alternate' type='text/html' href='https://megapahit.org/viewer.git/commit/?id=60d3dd98a44230c21803c1606552ee098ed9fa7c'/>
<id>urn:sha1:60d3dd98a44230c21803c1606552ee098ed9fa7c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Replace BOOL with bool in llwindow and dependent classes</title>
<updated>2024-02-18T13:51:54Z</updated>
<author>
<name>Ansariel</name>
<email>ansariel.hiller@phoenixviewer.com</email>
</author>
<published>2024-02-18T11:52:19Z</published>
<link rel='alternate' type='text/html' href='https://megapahit.org/viewer.git/commit/?id=c285f59ce2a05703e3a1232fcaf3ee3aea714b3f'/>
<id>urn:sha1:c285f59ce2a05703e3a1232fcaf3ee3aea714b3f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>remove execute permission from many files that should not have it</title>
<updated>2015-11-10T14:48:56Z</updated>
<author>
<name>Oz Linden</name>
<email>oz@lindenlab.com</email>
</author>
<published>2015-11-10T14:48:56Z</published>
<link rel='alternate' type='text/html' href='https://megapahit.org/viewer.git/commit/?id=c8726aba303bcf1207b730a344536e25491420bc'/>
<id>urn:sha1:c8726aba303bcf1207b730a344536e25491420bc</id>
<content type='text'>
</content>
</entry>
<entry>
<title>MAINT-4481 FIX [viewer-lion] Linux build fails due array-bounds issue in llmanipscale.cpp</title>
<updated>2014-09-24T02:12:35Z</updated>
<author>
<name>Richard Linden</name>
<email>none@none</email>
</author>
<published>2014-09-24T02:12:35Z</published>
<link rel='alternate' type='text/html' href='https://megapahit.org/viewer.git/commit/?id=e298325bed05f0f37fd134b72c68cce186475f23'/>
<id>urn:sha1:e298325bed05f0f37fd134b72c68cce186475f23</id>
<content type='text'>
This was an out of bounds array access on a code path not normally accessed
To test, set debug setting ScaleShowAxes to true, go into build mode, and hold down Ctrl+Shift to scale an object
There should be colored bars along the scale axes, limited to the bounds of the object's extents
</content>
</entry>
<entry>
<title>MAINT-4433 FIXED Don't start changing scale on first click.</title>
<updated>2014-09-18T08:46:36Z</updated>
<author>
<name>Mnikolenko ProductEngine</name>
<email>mnikolenko@productengine.com</email>
</author>
<published>2014-09-18T08:46:36Z</published>
<link rel='alternate' type='text/html' href='https://megapahit.org/viewer.git/commit/?id=c1fe3a3ed6aca0e0439a4f0d1116a31e9999a495'/>
<id>urn:sha1:c1fe3a3ed6aca0e0439a4f0d1116a31e9999a495</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge viewer-release and become version 3.7.12</title>
<updated>2014-07-07T21:49:45Z</updated>
<author>
<name>simon</name>
<email>none@none</email>
</author>
<published>2014-07-07T21:49:45Z</published>
<link rel='alternate' type='text/html' href='https://megapahit.org/viewer.git/commit/?id=3e6698073cedc8b24068147cf6b7091f081ea125'/>
<id>urn:sha1:3e6698073cedc8b24068147cf6b7091f081ea125</id>
<content type='text'>
</content>
</entry>
<entry>
<title>STORM-1920: Corrected bug where snap values would highlight that weren’t supposed to be highlighting.  Did some more cleanup and documentation.</title>
<updated>2014-03-03T00:28:38Z</updated>
<author>
<name>Ricky Curtice</name>
<email>kf6kjg+hg@gmail.com</email>
</author>
<published>2014-03-03T00:28:38Z</published>
<link rel='alternate' type='text/html' href='https://megapahit.org/viewer.git/commit/?id=bd41d696de356028aa6b14d9bdf127360f6d5a57'/>
<id>urn:sha1:bd41d696de356028aa6b14d9bdf127360f6d5a57</id>
<content type='text'>
Also corrected a bug in Richard’s patch that resulted in the object scaling up when the mouse went the opposite direction from the scale.  The issue is that the vector length is an absolute value.  To allow for "negative" results to be found and discarded, I instead used a dot product with a parallel unit vector to get the signed magnitude - or, if you prefer, the mono-dimensional vector.

This bug only surfaced once the code made to actually work as intended in regards to the highlighting.  Turns out that if the snapped value was at 2, any axis that was showing values would highlight its "2" text - and the same for all other values.
To fix this, I used a simple enum and repurposed the property that tracked whether or not the cursor was in a snap regime.  Now it not only tracks whether or not the cursor is in a snap regime, but which one it is in.  This allowed the highlight render code to be able to differentiate which row was supposed to highlight and which did not.

A couple more duplicated math operations were reduced by rearranging the order of some variable definitions.  If at all possible, only do division once.  The result is much cleaner and easier to read code.
Several deprecated vector functions were updated to match their new versions.  If you are going to mark something deprecated, why not just take the time to go through and find all uses and clean it up!?
faceToUnitVector() was cleaned up to use the single-output design, matching cornerToUnitVector().
A mess of trailing whitespace was cleaned out.
Many more LLManipScale private variables are now documented - though I only documented those I understood fully while reading where they were created and how they were used.
</content>
</entry>
</feed>
