# SnippetLoc

#### Dirac

##### 22710180
JASS:
``````library Loc /* v1.1.0

*/uses/*

Replacement of the Location native.

***********************************************************************
*
*   struct Loc
*
*           -   These 3 read-only variables are the Loc's coordinates
*
*       static method create takes real x, real y, real z returns Loc
*           -   Creates a new Loc with the given coordinates.
*       method destroy takes nothing returns nothing
*           -   Deallocates the Loc.
*
*       method move takes real x, real y, real z returns nothing
*           -   Assigns the Loc new coordinates.
*
*       static method join takes Loc A, Loc B returns nothing
*           -   Joins two Locs together. You can join multiple Locs
*       method disjoint takes nothing returns nothing
*           -   Breaks the joint of the given Loc.
*
*       These 4 read-only members store the relation between
*       two Locs. Can be set manually using the &quot;get&quot; methods
*       or automatically using the join method.
*               -   The angle between the Locs in the XY plane.
*               -   The distance between the Locs in the XY plane.
*               -   The relation between the height difference of the
*               -   two Locs and the distance between them
*               -   The angle of the Locs in the Z plane.
*               -   The distance between the Locs in the XYZ plane.
*
*       method angleGet takes Loc fromWhatLoc returns nothing
*       method distanceGet takes Loc fromWhatLoc returns nothing
*       method slopeGet takes Loc fromWhatLoc returns nothing
*           -   Sets the respective member to the required value.
*
**********************************************************************/

struct Loc extends array

readonly static location point = Location(0,0)

method operator zangle takes nothing returns real
return Atan(slope)
endmethod

method operator modulo takes nothing returns real
return distance/Cos(zangle)
endmethod

method angleGet takes Loc v returns real
set angle = Atan2(y-v.y,x-v.x)
return angle
endmethod

method distanceGet takes Loc v returns real
set distance = SquareRoot((v.x-x)*(v.x-x)+(v.y-y)*(v.y-y))
return distance
endmethod

method slopeGet takes Loc v returns real
set slope = (v.z-z)/distance
return slope
endmethod

method calculate takes Loc v returns nothing
call this.angleGet(v)
call this.distanceGet(v)
call this.slopeGet(v)
endmethod

private method refresh takes nothing returns nothing
local thistype exit = this
loop
set this = next
exitwhen this == exit
call exit.calculate(this)
set angle = exit.angle+bj_PI
set distance = exit.distance
set slope = -exit.slope
endloop
endmethod

static method join takes Loc A, Loc B returns nothing
set A.next.prev = B.prev
set B.prev.next = A.next
set A.next = B
set B.prev = A
call A.refresh()
endmethod

method disjoint takes nothing returns nothing
call this.removeNode()
endmethod

method move takes real sx, real sy, real sz returns nothing
call MoveLocation(point,sx,sy)
set x = sx
set y = sy
set z = sz+GetLocationZ(point)
call this.refresh()
endmethod

static method create takes real sx, real sy, real sz returns thistype
local thistype this = createNode()
call this.move(sx,sy,sz)
return this
endmethod

method destroy takes nothing returns nothing
call this.removeNode()
call this.deallocate()
endmethod

endstruct

endlibrary``````

General chit-chat
Help Users
• No one is chatting at the moment.
• jonas:
where did you go?
• The Helper:
Jefferson TX on a Paranormal Investigation of a haunted bed and breakfast - I got some friends that are paranormal investigators and they have an RV and do YouTubes
+1
• The Helper:
It was a lot of fun. The RV was bad ass
• jonas:
That sounds like fun!
+1
• The Helper:
it was a blast!
• The Helper:
I am going to post the Youtube of the investigation in the forums when it is ready
+1
• jonas:
cool!
• vypur85:
Sounds cool TH.
• tom_mai78101:
I was on a Legend of Zelda marathon...
• tom_mai78101:
Am still doing it now
+1
• jonas:
which one(s) are you playing?
• jonas:
I played a little bit of the switch title two weeks ago and found it quite boring
• The Helper:
just got back from San Antonio this weekend had the best Buffalo Chicken Cheesesteak sandwhich in Universal City, TX - place was called Yous Guys freaking awesome! Hope everyone had a fantastic weekend!
+1
• The Helper:
Happy Tuesday!
• The Helper:
We have been getting crazy numbers reported by the forum of people online the bots are going crazy on us I think it is AI training bots going at it at least that is what it looks like to me.
• The Helper:
Most legit traffic is tracked on multiple Analytics and we have Cloud Flare setup to block a ton of stuff but still there is large amount of bots that seem to escape detection and show up in the user list of the forum. I have been watching this bullshit for a year and still cannot figure it out it is drving me crazy lol.
+1
• Ghan:
Beep boop
+1
• The Helper:
hears robot sounds while 250 bots are on the forum lol
• The Helper:
Happy Saturday!
+1
• The Helper:
and then it was Thursday...
+2
• tom_mai78101:
And then Monday
+1
• The Helper:
I got the day off today!
+1
• tom_mai78101:
How...? (T-T)
• The Helper:
I took the day off. I work for myself so I can do that.
+1
• Varine:

### Members online

No members online now.