# Last edited on 2024-06-09 11:23:29 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 (SUBFIG = 2) of
# objects with dented outer chain(OSHAPE = 1 or 3). 
NEO := 10 

# 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 := ${OBJECTS_ALL}
# OBJECTS := 3:0 3:1

# Subfigures: see {fan_main.pov}.
SUBFIGS_ALL := 0 1 2 3 5 6 8 9

SUBFIGS := ${SUBFIGS_ALL}
# SUBFIGS := 9
# SUBFIGS := 0 1 2  5 6 8 9

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 \
              ${MAKE} \
                  OSHAPE=$${objparms[0]} \
                  INNER=$${objparms[1]} \
                  SUBFIG=$${subfig} \
                make-single-image ; \
            done ; \
          done ; \
        fi

ifneq "/${NEO}" "/"
ifneq "/${OSHAPE}" "/"
ifneq "/${INNER}" "/"

NEO8 := ${shell printf "%08d" "${NEO}"}

OPREF := fan_${NEO8}_osh${OSHAPE}_ich${INNER}
OBJ_FILE := out/${OPREF}.obj
INC_FILE := out/${OPREF}.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 "/${SUBFIG}" "/"
    
PPREF := fan_${NEO8}_{INNER}_${OSHAPE}_${SUBFIG}
PNG_FILE := out/${PPREF}.png
    
make-single-image: ${PNG_FILE}

${PNG_FILE}: ${INC_FILE} run_fan_povray.sh
	run_fan_povray.sh ${NEO} ${OSHAPE} ${INNER} ${SUBFIG}

endif
endif
endif
endif
