Skip to content

Commit

Permalink
core: migrate stdcm and pathfinding modules to kotlin
Browse files Browse the repository at this point in the history
  • Loading branch information
eckter committed Nov 22, 2023
1 parent e8ab630 commit b7d69de
Show file tree
Hide file tree
Showing 182 changed files with 10,392 additions and 10,327 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import fr.sncf.osrd.utils.DistanceRangeMap
import fr.sncf.osrd.utils.indexing.DirStaticIdxList
import fr.sncf.osrd.utils.indexing.StaticIdx
import fr.sncf.osrd.utils.units.Distance
import fr.sncf.osrd.utils.units.Length
import fr.sncf.osrd.utils.units.Offset
import fr.sncf.osrd.utils.units.Speed

Expand Down Expand Up @@ -54,8 +55,8 @@ interface PathProperties {
fun buildPathPropertiesFrom(
infra: TrackProperties,
chunks: DirStaticIdxList<TrackChunk>,
pathBeginOffset: Distance,
pathEndOffset: Distance,
pathBeginOffset: Length<Block>,
pathEndOffset: Length<Block>,
): PathProperties {
val chunkPath = buildChunkPath(infra, chunks, pathBeginOffset, pathEndOffset)
return makePathProperties(infra, chunkPath)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,7 @@ import fr.sncf.osrd.utils.DistanceRangeMap
import fr.sncf.osrd.utils.distanceRangeMapOf
import fr.sncf.osrd.utils.indexing.DirStaticIdxList
import fr.sncf.osrd.utils.indexing.mutableDirStaticIdxArrayListOf
import fr.sncf.osrd.utils.units.Distance
import fr.sncf.osrd.utils.units.Offset
import fr.sncf.osrd.utils.units.Speed
import fr.sncf.osrd.utils.units.meters
import fr.sncf.osrd.utils.units.*

/** A ChunkPath is a list of directional track chunks which form a path, with beginOffset being the offset
* on the first chunk, and endOffset on the last chunk. **/
Expand Down Expand Up @@ -261,11 +258,11 @@ fun getOffsetOfTrackLocationOnChunksOrThrow(
fun buildChunkPath(
infra: TrackProperties,
chunks: DirStaticIdxList<TrackChunk>,
pathBeginOffset: Distance,
pathEndOffset: Distance
pathBeginOffset: Length<Block>,
pathEndOffset: Length<Block>
): ChunkPath {
val filteredChunks = mutableDirStaticIdxArrayListOf<TrackChunk>()
var totalLength = 0.meters
var totalLength = Length<Block>(0.meters)
var mutBeginOffset = pathBeginOffset
var mutEndOffset = pathEndOffset
for (dirChunkId in chunks) {
Expand All @@ -284,5 +281,5 @@ fun buildChunkPath(
}
totalLength += length.distance
}
return ChunkPath(filteredChunks, mutBeginOffset, mutEndOffset)
return ChunkPath(filteredChunks, mutBeginOffset.distance, mutEndOffset.distance)
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
package fr.sncf.osrd.utils.units

import fr.sncf.osrd.fast_collections.PrimitiveWrapperCollections
import kotlin.math.abs
import kotlin.math.absoluteValue

@JvmInline
Expand All @@ -40,6 +41,9 @@ value class Distance(val millimeters: Long) : Comparable<Distance> {
@JvmStatic
@JvmName("toMeters")
fun toMeters(distance: Distance) = distance.meters

fun min(a: Distance, b: Distance) = Distance(millimeters = a.millimeters.coerceAtMost(b.millimeters))
fun max(a: Distance, b: Distance) = Distance(millimeters = a.millimeters.coerceAtLeast(b.millimeters))
}

override fun compareTo(other: Distance): Int {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,6 @@ public RJSRoutePath(String route, List<RJSDirectionalTrackRange> trackSections,
this.signalingType = signalingType;
}

/** Constructor with empty ranges */
public RJSRoutePath(String route, String signalingType) {
this.route = route;
this.trackSections = new ArrayList<>();
this.signalingType = signalingType;
}

@Override
public boolean equals(Object o) {
if (this == o) return true;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package fr.sncf.osrd.api;

import static fr.sncf.osrd.api.utils.PathPropUtils.makeChunkPath;
import static fr.sncf.osrd.api.pathfinding.PathPropUtils.makeChunkPath;

import com.squareup.moshi.Json;
import com.squareup.moshi.JsonAdapter;
Expand Down
15 changes: 0 additions & 15 deletions core/src/main/java/fr/sncf/osrd/api/pathfinding/GeomUtils.java

This file was deleted.

Loading

0 comments on commit b7d69de

Please sign in to comment.