update
This commit is contained in:
2
build
2
build
@@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
LIB_INCLUDE="-lglfw -lGL -lm"
|
LIB_INCLUDE="-lglfw -lGL -lm"
|
||||||
g++ -g -g2 -DOS_LINUX=1 -DDJSTDLIB_DEBUG=1 -xc -std=c99 ./src/main.c -o ./target/somaesque $LIB_INCLUDE
|
gcc -g -g2 -DOS_LINUX=1 -DDJSTDLIB_DEBUG=1 -xc -std=c99 ./src/main.c -o ./target/somaesque $LIB_INCLUDE
|
||||||
./target/somaesque
|
./target/somaesque
|
||||||
|
|
||||||
|
|||||||
@@ -132,7 +132,7 @@ void backtrackSolve(Arena *arena, Solver *solver, uint64 working_solution, size_
|
|||||||
SomaSolutionList *solutions = solver->solutions;
|
SomaSolutionList *solutions = solver->solutions;
|
||||||
size_t start = offsets->data[curr_piece];
|
size_t start = offsets->data[curr_piece];
|
||||||
size_t end = offsets->data[curr_piece + 1];
|
size_t end = offsets->data[curr_piece + 1];
|
||||||
size_t num_pieces = offsets->length;
|
size_t num_pieces = offsets->length - 1;
|
||||||
for (size_t i = start; i < end; i++) {
|
for (size_t i = start; i < end; i++) {
|
||||||
bool successful_fuse = !collides(working_solution, input->data[i]);
|
bool successful_fuse = !collides(working_solution, input->data[i]);
|
||||||
if (successful_fuse) {
|
if (successful_fuse) {
|
||||||
@@ -168,7 +168,7 @@ SomaSolutionList getSolutionRotations(Arena *arena, SomaSolution *solution, int
|
|||||||
dims[2],
|
dims[2],
|
||||||
};
|
};
|
||||||
VoxelSpaceList pieceRotations = getAllRotations(arena, &space);
|
VoxelSpaceList pieceRotations = getAllRotations(arena, &space);
|
||||||
for (int rot_i = 0; rot_i < pieceRotations.length; rot_i++) {
|
for (EachIn(pieceRotations, rot_i)) {
|
||||||
AppendList(&result.data[rot_i], pieceRotations.data[rot_i].space);
|
AppendList(&result.data[rot_i], pieceRotations.data[rot_i].space);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -228,7 +228,7 @@ SomaSolutionList solve(uint64 *reprs_in, uint32 reprs_in_count, int dims[3]) {
|
|||||||
|
|
||||||
OffsetList offsets = PushList(arena, OffsetList, reprs_in_count + 1);
|
OffsetList offsets = PushList(arena, OffsetList, reprs_in_count + 1);
|
||||||
|
|
||||||
VoxelSpaceReprList polycubes = EmptyList();
|
VoxelSpaceReprList polycubes = PushList(arena, VoxelSpaceReprList, 0);
|
||||||
|
|
||||||
Space empty_voxel_space = {
|
Space empty_voxel_space = {
|
||||||
0,
|
0,
|
||||||
@@ -248,7 +248,6 @@ SomaSolutionList solve(uint64 *reprs_in, uint32 reprs_in_count, int dims[3]) {
|
|||||||
VoxelSpaceReprList positions = getAllPositionsInPrism(permsArena, &space, dims);
|
VoxelSpaceReprList positions = getAllPositionsInPrism(permsArena, &space, dims);
|
||||||
possibleCombos += positions.length;
|
possibleCombos += positions.length;
|
||||||
VoxelSpaceReprList_underlying *insertion = PushArray(arena, uint64, positions.capacity);
|
VoxelSpaceReprList_underlying *insertion = PushArray(arena, uint64, positions.capacity);
|
||||||
polycubes.data = insertion;
|
|
||||||
polycubes.capacity += positions.capacity;
|
polycubes.capacity += positions.capacity;
|
||||||
polycubes.length += positions.length;
|
polycubes.length += positions.length;
|
||||||
memcpy(insertion, positions.data, positions.capacity * ListElementSize(VoxelSpaceReprList));
|
memcpy(insertion, positions.data, positions.capacity * ListElementSize(VoxelSpaceReprList));
|
||||||
@@ -270,8 +269,7 @@ SomaSolutionList solve(uint64 *reprs_in, uint32 reprs_in_count, int dims[3]) {
|
|||||||
AppendList(&offsets, polycubes.length);
|
AppendList(&offsets, polycubes.length);
|
||||||
|
|
||||||
SomaSolutionList solutions = PushList(permsArena, SomaSolutionList, (size_t)floor(sqrt(possibleCombos)));
|
SomaSolutionList solutions = PushList(permsArena, SomaSolutionList, (size_t)floor(sqrt(possibleCombos)));
|
||||||
SomaSolution initialSoln = PushFullList(permsArena, SomaSolution, reprs_in_count);
|
AppendList(&solutions, PushFullList(permsArena, SomaSolution, reprs_in_count));
|
||||||
AppendList(&solutions, initialSoln);
|
|
||||||
|
|
||||||
Solver solver = {
|
Solver solver = {
|
||||||
&polycubes,
|
&polycubes,
|
||||||
|
|||||||
Submodule src/lib/djstdlib updated: 27e7d74895...0c81973aa2
Reference in New Issue
Block a user