Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
chaorace committed Aug 4, 2015
0 parents commit 22aa0dc
Show file tree
Hide file tree
Showing 3 changed files with 155 additions and 0 deletions.
94 changes: 94 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
# Created by .ignore support plugin (hsz.mobi)
### JetBrains template
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion

*.iml

## Directory-based project format:
.idea/
# if you remove the above rule, at least ignore the following:

# User-specific stuff:
# .idea/workspace.xml
# .idea/tasks.xml
# .idea/dictionaries

# Sensitive or high-churn files:
# .idea/dataSources.ids
# .idea/dataSources.xml
# .idea/sqlDataSources.xml
# .idea/dynamic.xml
# .idea/uiDesigner.xml

# Gradle:
# .idea/gradle.xml
# .idea/libraries

# Mongo Explorer plugin:
# .idea/mongoSettings.xml

## File-based project format:
*.ipr
*.iws

## Plugin-specific files:

# IntelliJ
/out/

# mpeltonen/sbt-idea plugin
.idea_modules/

# JIRA plugin
atlassian-ide-plugin.xml

# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties


### Maven template
target/
pom.xml.tag
pom.xml.releaseBackup
pom.xml.versionsBackup
pom.xml.next
release.properties
dependency-reduced-pom.xml
buildNumber.properties
.mvn/timing.properties


### Java template

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
*.jar
*.war
*.ear

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*


### Scala template
*.log

# sbt specific
.cache
.history
.lib/
dist/*
lib_managed/
src_managed/
project/boot/
project/plugins/project/

# Scala-IDE specific
.scala_dependencies
.worksheet


24 changes: 24 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>me.chaorace.VirtualTrackball</groupId>
<artifactId>VirtualTrackball0</artifactId>
<version>1.0-SNAPSHOT</version>

<dependencies>
<dependency>
<groupId>math.geom2d</groupId>
<artifactId>javaGeom</artifactId>
<version>0.11.1</version>
</dependency>
<dependency>
<groupId>org.scalafx</groupId>
<artifactId>scalafx_2.11</artifactId>
<version>8.0.40-R8</version>
</dependency>

</dependencies>
</project>
37 changes: 37 additions & 0 deletions src/main/java/Main.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
import java.awt.{Robot, MouseInfo}

import math.geom2d.{Point2D, Vector2D}


/**
* Created by Chris on 8/4/2015.
*/
object Main extends App{
val robot = new Robot

val noVector = new Vector2D(0,0)

val drag = .98
var lastVector = noVector
while(true){
Thread.sleep(10)
val startPos = new Point2D(MouseInfo.getPointerInfo.getLocation)
Thread.sleep(10)
val endPos = new Point2D(MouseInfo.getPointerInfo.getLocation)
//If this movement was significant
if(!startPos.almostEquals(endPos, 5)){
//If this movement was violent
if(!startPos.almostEquals(endPos, 10)){
lastVector = new Vector2D(startPos, endPos)
}else{
lastVector = noVector
}
}else{
robot.mouseMove((endPos.x + lastVector.x).toInt, (endPos.y + lastVector.y).toInt)
lastVector = new Vector2D(lastVector.x * drag, lastVector.y * drag)
if(lastVector.almostEquals(noVector, 2)){
lastVector = noVector
}
}
}
}

0 comments on commit 22aa0dc

Please sign in to comment.