Skip to content
Snippets Groups Projects
kira_parti.h 2.24 KiB
Newer Older
  • Learn to ignore specific revisions
  • 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, char *filename, 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 );
    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*/