Skip to content

Instantly share code, notes, and snippets.

Avatar
👨‍💻

Alexis Girault agirault

👨‍💻
View GitHub Profile
View orientationLabel.js
import vtkImageMapper from 'vtk.js/Sources/Rendering/Core/ImageMapper';
import * as vtkMath from 'vtk.js/Sources/Common/Core/Math';
const { SlicingMode } = vtkImageMapper;
const ScreenSide = {
top: Symbol('top'),
bottom: Symbol('bottom'),
left: Symbol('left'),
right: Symbol('right'),
@agirault
agirault / orientationLabel.swift
Last active Feb 1, 2021
Generate the anatomical labels for each side of the screen given a dataset (orientation) and its display mode (data vs world mapping)
View orientationLabel.swift
import simd
enum Axis {
enum Data {
case I
case J
case K
}
enum World {
@agirault
agirault / image_orientation_dicom.md
Created Oct 8, 2020
Image Orientation in Dicom
View image_orientation_dicom.md
@agirault
agirault / build_gdcm_ios.sh
Last active May 31, 2021
Build GDCM for iOS - fat library arm64 x86_64
View build_gdcm_ios.sh
#!/bin/bash
# Parameters
os_target_version=11
gdcm_tag=v2.8.9
install_dir=/usr/local/Frameworks/gdcm
# Directories
script_dir=$(cd $(dirname $0) || exit 1; pwd)
src_dir=${script_dir}/gdcm-src
@agirault
agirault / CMakeLists.txt
Last active May 29, 2020
CMake configuration for a shared ios framework linking against static Qt5 libs to be embedded in an iOS app
View CMakeLists.txt
# cmake /path/to/src \
# -GXcode \ # or Ninja
# -DQt5_DIR=/path/to/Qt/5.13.0/ios/lib/cmake/Qt5 \
# -DCMAKE_SYSTEM_NAME=iOS \
# -DCMAKE_OSX_DEPLOYMENT_TARGET=11 \
# -DCMAKE_INSTALL_PREFIX=/usr/local/frameworks \
# -DCMAKE_OSX_ARCHITECTURES="arm64" \ # arm64 for device, x86_64 for simulator (but x86_64 not in installed Qt5 ios static libs?)
cmake_minimum_required (VERSION 3.14 FATAL_ERROR)
project (Foo VERSION 1.0 LANGUAGES C CXX)
@agirault
agirault / vtkAnatomicalOrientation.cpp
Last active Jun 7, 2019
Utility class to convert between anatomical coordinate systems
View vtkAnatomicalOrientation.cpp
#include <sstream>
#include <algorithm>
// Utility methods to be able to convert between various anatomical coordinate systems
namespace vtkAnatomicalOrientation {
enum class Axis { L, R, P, A, S, I, None };
static const Axis ValidAxes[6] = { Axis::L, Axis::R, Axis::P, Axis::A, Axis::S, Axis::I };
static std::string AxisToString(Axis axis) {
switch (axis) {
@agirault
agirault / .gitconfig
Last active Oct 3, 2018
Some git aliases
View .gitconfig
[alias]
head = rev-parse HEAD
delete-merged = "!git branch --merged | grep -v '\\*\\|master\\|develop' | xargs -n 1 git branch -d"
fetch-pr = "!git fetch \"$1\" pull/\"$2\"/head:\"$1\"-pr-\"$2\" #"
fixup = "!REV=$(git rev-parse $1) && git commit --fixup $REV && (GIT_SEQUENCE_EDITOR=true git rebase -i --autosquash --autostash $REV^ || (git diff && git rebase --abort && git reset --soft HEAD^ && echo "Rebase aborted")) #"
@agirault
agirault / nslookupAlert.sh
Last active May 3, 2018
run as `./nslookupAlert.sh ${domain}` on macos to receive an alert when a domain DNS is resolved
View nslookupAlert.sh
#!/bin/bash
domain=$1
echo -ne "Looking up $domain DNS: "
while true; do
nslookup $domain | grep -q "find"
retVal=$?
if [ $retVal -ne 0 ]; then
ip=$( nslookup $domain | awk -F': ' 'NR==6 { print $2 } ')
View vegToVtu.cxx
// in iMSTK
auto vegaMesh = MeshIO::read("/Users/agirault/Downloads/mandible.veg");
auto writeStatus = MeshIO::write(vegaMesh, "/Users/agirault/Downloads/mandible.vtu");
std::cout << writeStatus << std::endl;
View qMRMLSubjectHierarchyTreeView_updateItemsSelectableFlag.cxx
//--------------------------------------------------------------------------
void qMRMLSubjectHierarchyTreeView::updateItemsSelectableFlag()
{
Q_D(qMRMLSubjectHierarchyTreeView);
if (!d->SubjectHierarchyNode)
{
return;
}
qMRMLSubjectHierarchyModel* sceneModel = qobject_cast<qMRMLSubjectHierarchyModel*>(this->model());