Skip to content
Snippets Groups Projects
kira_parti.h 2.26 KiB
Newer Older
slevy's avatar
slevy committed
#ifdef USE_KIRA
/*
 * Interface to Kira Starlab (www.manybody.org) library for partiview.
 *
 * Stuart Levy, slevy@ncsa.uiuc.edu
 * National Center for Supercomputing Applications,
 * University of Illinois 2001.
 * This file is part of partiview, released under the
 * Illinois Open Source License; see the file LICENSE.partiview for details.
slevy's avatar
slevy committed

#if __cplusplus
extern "C" {
#endif

void kira_parti_init();

slevy's avatar
slevy committed
#define KIRA_VERBOSE	0x01
#define KIRA_READLATER	0x02
// int kira_open(struct dyndata *dd, struct stuff *st, ifstream *ins, int flags);  /* VERBOSE|READLATER */
slevy's avatar
slevy committed
int kira_read_more( struct stuff *st, int nmax, double tmax, double maxdelay );
slevy's avatar
slevy committed
	/* read, stopping after first of:
	 *   nmax paragraphs
	 *   tmax dynamical-end-time,
	 *   delaymax wall-clock reading time
	 */
slevy's avatar
slevy committed
double get_parti_time( struct stuff *st );
void set_parti_time( struct stuff *st, double reqtime );
int get_parti_time_range( struct dyndata *, struct stuff *st, double *tmin, double *tmax, int ready );
struct specklist *kira_get_parti( struct dyndata *, struct stuff *st, double realtime );
slevy's avatar
slevy committed

slevy's avatar
 
slevy committed
#define KIRA_NODES	0	/* Display nonleaf (center-of-mass) nodes? */
#define	KIRA_RINGS	1	/* Display marker rings for multiple systems? */
slevy's avatar
 
slevy committed
#define	KIRA_TREE	2
slevy's avatar
 
slevy committed
# define  KIRA_OFF	  0	   /* no */
# define  KIRA_ON	  1	   /* yes, show all */
# define  KIRA_ROOTS	  2	   /* show only for root nodes (one per clump) */
slevy's avatar
 
slevy committed
# define  KIRA_CROSS	  2	   /* for "tree": show tick-cross */
# define  KIRA_TICK	  3	   /* for "tree": show tick-mark only */
slevy's avatar
 
slevy committed

slevy's avatar
 
slevy committed
#define	KIRA_TICKSCALE	3

#define KIRA_RINGSIZE	4	/* What determines size of marker rings? */
slevy's avatar
 
slevy committed
# define  KIRA_RINGSEP    0	/*   instantaneous separation */
# define  KIRA_RINGA	  1	/*   abs(semimajor axis) of Keplerian orbit */

slevy's avatar
 
slevy committed
#define	KIRA_RINGSCALE	5	/* Multiplier for ring size */
#define KIRA_RINGMIN	6	/* Min apparent size of rings (pixels) */
#define	KIRA_RINGMAX	7	/* Max apparent size of rings (pixels) */
#define KIRA_TRACK	8	/* make camera track motion of given particle */
slevy's avatar
 
slevy committed

double kira_get( struct dyndata *, struct stuff *st, int what );
int    kira_set( struct dyndata *, struct stuff *st, int what, double value );
slevy's avatar
 
slevy committed

void   kira_draw( struct stuff *st, struct specklist *slhead, Matrix *Tc2w, float radperpix );

slevy's avatar
slevy committed
#if __cplusplus
} /* end extern "C" */
#endif

#endif /*USE_KIRA*/