Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
Projet GORDYJAN_BAGNOLY_GARCIA_POIGNONNEC
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
POIGNONNEC
Projet GORDYJAN_BAGNOLY_GARCIA_POIGNONNEC
Commits
a13b4802
Commit
a13b4802
authored
Apr 30, 2019
by
Arthur POIGNONNEC
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[DEV] Ajout méthodes dans view pour scan
parent
3084998b
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
122 additions
and
3 deletions
+122
-3
View.java
src/main/View.java
+94
-0
TestPolygon.java
src/tests/TestPolygon.java
+0
-2
TestRay.java
src/tests/TestRay.java
+0
-1
TestView.java
src/tests/TestView.java
+28
-0
No files found.
src/main/View.java
View file @
a13b4802
...
...
@@ -107,4 +107,98 @@ public class View {
seg
.
getP2
().
setBegin
(!
seg
.
getP1
().
getBegin
());
});
}
/**
* Indicate if a segment is in front of another relative to a point
* @param a
* @param b
* @param point
* @return
*/
protected
Boolean
segmentAInFrontOfB
(
Segment
a
,
Segment
b
,
Point
point
){
Boolean
A1
=
leftOf
(
a
,
interpolate
(
b
.
getP1
(),
b
.
getP2
(),
0.01
));
Boolean
A2
=
leftOf
(
a
,
interpolate
(
b
.
getP1
(),
b
.
getP2
(),
0.01
));
Boolean
A3
=
leftOf
(
a
,
point
);
Boolean
B1
=
leftOf
(
b
,
interpolate
(
a
.
getP1
(),
a
.
getP2
(),
0.01
));
Boolean
B2
=
leftOf
(
b
,
interpolate
(
a
.
getP1
(),
a
.
getP2
(),
0.01
));
Boolean
B3
=
leftOf
(
b
,
point
);
if
(
B1
.
equals
(
B2
)
&&
!
B2
.
equals
(
B3
))
return
true
;
if
(
A1
.
equals
(
A2
)
&&
A2
.
equals
(
A3
))
return
true
;
if
(
A1
.
equals
(
A2
)
&&
!
A2
.
equals
(
A3
))
return
false
;
if
(
B1
.
equals
(
B2
)
&&
B2
.
equals
(
B3
))
return
false
;
return
false
;
}
/**
* Method to scan for visible edges
* @param maxAngle
*/
public
void
scan
(
Double
maxAngle
){
}
/**
*
* @param a
* @param b
* @return
*/
protected
Integer
compareEdge
(
Edge
a
,
Edge
b
){
if
(
a
.
getAngle
()
>
b
.
getAngle
())
return
1
;
if
(
a
.
getAngle
()
<
b
.
getAngle
())
return
-
1
;
if
(!
a
.
getBegin
()
&&
b
.
getBegin
())
return
1
;
if
(
a
.
getBegin
()
&&
!
b
.
getBegin
())
return
-
1
;
return
0
;
}
/**
*
* @param s
* @param p
* @return
*/
protected
Boolean
leftOf
(
Segment
s
,
Point
p
){
Double
cross
=
(
s
.
getP2
().
getX
()
-
s
.
getP1
().
getX
())
*
(
p
.
getY
()
-
s
.
getP1
().
getY
())
-
(
s
.
getP2
().
getY
()
-
s
.
getP1
().
getY
())
*
(
p
.
getX
()
-
s
.
getP1
().
getX
());
return
cross
<
0
;
}
/**
*
* @param p
* @param q
* @param f
* @return
*/
protected
Point
interpolate
(
Point
p
,
Point
q
,
Double
f
){
return
new
Point
(
p
.
getX
()
*
(
1
-
f
)
+
q
.
getX
()
*
f
,
p
.
getY
()
*
(
1
-
f
)
+
q
.
getY
()
*
f
);
}
// GETTERS / SETTERS
public
List
<
Segment
>
getSegments
()
{
return
segments
;
}
public
void
setSegments
(
List
<
Segment
>
segments
)
{
this
.
segments
=
segments
;
}
public
List
<
Edge
>
getEdges
()
{
return
edges
;
}
public
void
setEdges
(
List
<
Edge
>
edges
)
{
this
.
edges
=
edges
;
}
public
Point
getViewer
()
{
return
viewer
;
}
public
void
setViewer
(
Point
viewer
)
{
this
.
viewer
=
viewer
;
}
}
src/tests/TestPolygon.java
View file @
a13b4802
...
...
@@ -8,8 +8,6 @@ public class TestPolygon {
@Test
public
void
testCreatingPolygon
()
{
Polygon
p
=
new
Polygon
();
p
.
add
(
new
Point
(
1
,
2
));
}
}
src/tests/TestRay.java
View file @
a13b4802
...
...
@@ -6,6 +6,5 @@ public class TestRay {
@Test
public
void
testCreatingRay
()
{
Ray
r
=
new
Ray
();
}
}
src/tests/TestView.java
0 → 100644
View file @
a13b4802
package
tests
;
import
main.Edge
;
import
main.Segment
;
import
main.View
;
import
org.junit.Before
;
import
org.junit.Test
;
import
static
org
.
junit
.
Assert
.
assertEquals
;
import
static
org
.
junit
.
Assert
.
assertTrue
;
public
class
TestView
{
private
View
view
;
@Before
public
void
setUp
(){
view
=
new
View
();
}
@Test
public
void
loadEdgeOfMapTest
(){
view
.
loadEdgeOfMap
(
20
d
);
assertEquals
(
4
,
view
.
getSegments
().
size
());
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment