# Last edited on 2024-07-25 18:25:42 by stolfi SHELL := /bin/bash .PHONY: make-models make-images make_single_model make-single-image PROG := slicing_fan_example # Number of edges in outer chain. # Must be a power of 2 plus 2 for smart triangulation (SUBDIV = 2) of # objects with dented outer chain(OSHAPE = 1 or 3). NEO := 6 # Objects: {OSHAPE}:{INNER} OBJECTS_ALL := 0:0 0:1 1:0 1:1 2:0 2:1 3:0 3:1 # OBJECTS := ${OBJECTS_ALL} OBJECTS := 2:0 # Subfigures: {SUBDIV}:{PLANES}. See {fan_main.pov}. SUBFIGS_ALL := \ 0:0 1:0 2:0 5:0 6:0 8:0 9:0 \ 0:1 1:1 2:1 5:1 6:1 8:1 9:1 SUBFIGS_SLICING_PAPER := \ 0:1 1:1 5:1 8:1 SUBFIGS_MONOTONIZATION_PAPER := \ 0:0 1:0 5:0 8:0 # SUBFIGS := ${SUBFIGS_ALL} SUBFIGS := \ ${SUBFIGS_MONOTONIZATION_PAPER} \ ${SUBFIGS_SLICING_PAPER} \ RUN_POVRAY := 1 all: make-models make-images make-models: for object in ${OBJECTS} ; do \ objparms=( `echo $${object} | tr ':' ' '` ) ; \ ${MAKE} \ OSHAPE=$${objparms[0]} \ INNER=$${objparms[1]} \ make-single-model ; \ done make-images: ${INC_FILE} ${wildcard *.inc *.pov} if [[ ${RUN_POVRAY} -ne 0 ]]; then \ for object in ${OBJECTS} ; do \ objparms=( `echo $${object} | tr ':' ' '` ) ; \ for subfig in ${SUBFIGS}; do \ figparms=( `echo $${subfig} | tr ':' ' '` ) ; \ ${MAKE} \ OSHAPE=$${objparms[0]} \ INNER=$${objparms[1]} \ SUBDIV=$${figparms[0]} \ PLANES=$${figparms[1]} \ make-single-image ; \ done ; \ done ; \ fi ifneq "/${NEO}" "/" ifneq "/${OSHAPE}" "/" ifneq "/${INNER}" "/" NEO8 := ${shell printf "%08d" "${NEO}"} OBJ_PREF := fan_${NEO8}_osh${OSHAPE}_ich${INNER} OBJ_FILE := out/${OBJ_PREF}.obj INC_FILE := out/${OBJ_PREF}.inc make-single-model: ${OBJ_FILE} ${INC_FILE} ${OBJ_FILE} ${INC_FILE}: ${PROG}.py mkdir -p out rm -fv ${OBJ_FILE} ${INC_FILE} ${PROG}.py ${NEO} ${OSHAPE} ${INNER} || rm -fv ${OBJ_FILE} ${INC_FILE} if [[ -s ${OBJ_FILE} ]]; then \ ls -l ${OBJ_FILE} ${INC_FILE} ; \ f3d -n ${OBJ_FILE}; \ fi ifneq "/${SUBDIV}" "/" ifneq "/${PLANES}" "/" IMG_PREF := fan_n${NEO8}_osh${OSHAPE}_ich${INNER}_sub${SUBDIV}_pla${PLANES} PNG_FILE := out/${IMG_PREF}.png make-single-image: ${PNG_FILE} ${PNG_FILE}: ${INC_FILE} run_fan_povray.sh run_fan_povray.sh ${NEO} ${OSHAPE} ${INNER} ${SUBDIV} ${PLANES} endif endif endif endif endif