Skip to content

Commit 57a6085

Browse files
committed
adding a client event listener
1 parent ab4617f commit 57a6085

File tree

4 files changed

+38
-3
lines changed

4 files changed

+38
-3
lines changed

src/main/java/eu/mihosoft/vrl/v3d/CSG.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1575,7 +1575,7 @@ public CSG triangulate(boolean fix) {
15751575
// triangulated = false;
15761576
// if (triangulated)
15771577
// return this;
1578-
if (this.polygons.size() > getMinPolygonsForOffloading())
1578+
if (this.polygons.size() > getMinPolygonsForOffloading() && preventNonManifoldTriangles)
15791579
if (CSGClient.isRunning()) {
15801580
ArrayList<CSG> go = new ArrayList<CSG>(Arrays.asList(this));
15811581
try {

src/main/java/eu/mihosoft/vrl/v3d/CSGClient.java

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,18 @@ public class CSGClient {
2525
private static boolean serverCall = false;
2626

2727
private SSLSocketFactory factory;
28-
28+
private ArrayList<ICSGClientEvent> listeners = new ArrayList<>();
29+
public void addListener(ICSGClientEvent e) {
30+
if(listeners.contains(e))
31+
return;
32+
listeners.add(e);
33+
}
34+
public void removeListener(ICSGClientEvent e) {
35+
if(!listeners.contains(e))
36+
return;
37+
listeners.remove(e);
38+
}
39+
2940
public CSGClient(String hostname, int port, File f) throws Exception {
3041
this.hostname = hostname;
3142
this.port = port;
@@ -156,7 +167,15 @@ private ArrayList<CSG> performOperation(List<CSG> csgList, CSGRemoteOperation op
156167
tmp.setOptType(c.getOptType());
157168
toSend.add(tmp);
158169
}
170+
159171
CSGRequest request = new CSGRequest(toSend, operation,points,storage);
172+
for(ICSGClientEvent e:listeners) {
173+
try {
174+
e.toSend(request);
175+
}catch(Throwable t) {
176+
t.printStackTrace();
177+
}
178+
}
160179
if (key != null)
161180
request.setAPIKEY(key);
162181
oos.writeObject(request);
@@ -165,7 +184,13 @@ private ArrayList<CSG> performOperation(List<CSG> csgList, CSGRemoteOperation op
165184
// Receive response
166185
CSGResponse response = (CSGResponse) ois.readObject();
167186
socket.close();
168-
187+
for(ICSGClientEvent e:listeners) {
188+
try {
189+
e.response(response,request);
190+
}catch(Throwable t) {
191+
t.printStackTrace();
192+
}
193+
}
169194
if (response.getState() != ServerActionState.SUCCESS)
170195
throw new RuntimeException(response.getMessage());
171196
// Return results as ArrayList
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package eu.mihosoft.vrl.v3d;
2+
3+
public interface ICSGClientEvent {
4+
5+
public void toSend(CSGRequest request) ;
6+
7+
public void response(CSGResponse response, CSGRequest request);
8+
}

src/main/java/eu/mihosoft/vrl/v3d/ICSGServerEvent.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,6 @@ public interface ICSGServerEvent {
77

88
public void gotRequest(CSGRemoteOperation operation,CSGServerHandler source);
99

10+
11+
1012
}

0 commit comments

Comments
 (0)