// RotuloChamada: a etiqueta técnica do filme. Um ponto no detalhe do produto, uma linha fina que // se desenha até o texto, e o texto em mono 24 px com espaçamento 0,18 em. No máximo 1 por cena. import React from 'react'; import {useCurrentFrame} from 'remotion'; import {COR, FONTE_M, TIPO, entrada, saida, seg} from '../base'; import {useDuracaoCena} from '../transicoes/Cena'; export type RotuloChamadaProps = { /** ponto do produto que o rótulo aponta (px na tela 1080×1920) */ ponto: [number, number]; /** onde o texto começa (px) */ texto: [number, number]; titulo: string; sub?: string; inicio?: number; sai?: number; }; export const RotuloChamada: React.FC = ({ponto, texto, titulo, sub, inicio = 0, sai = -1}) => { const f = useCurrentFrame(); const dur = useDuracaoCena(); const fim = sai < 0 ? dur + 99 : sai; const tOut = entrada(seg(f, fim, fim + 8)); const tp = saida(seg(f, inicio, inicio + 8)); const tl = saida(seg(f, inicio + 3, inicio + 16)); const tt = saida(seg(f, inicio + 10, inicio + 22)); const esq = texto[0] < ponto[0]; const fimLinha: [number, number] = [texto[0] + (esq ? 0 : -14), texto[1] + 14]; const lx = ponto[0] + (fimLinha[0] - ponto[0]) * tl, ly = ponto[1] + (fimLinha[1] - ponto[1]) * tl; return
{titulo} {sub &&
{sub}
}
; };