mirror of
https://github.com/RTimothyEdwards/magic.git
synced 2026-08-22 14:17:43 +02:00
Moved new work on magic-8.4 (experimental merging of micromagic bplane structure
into magic-8.2) into the newly-reorganized git repo as branch "bplane".
This commit is contained in:
@@ -0,0 +1,82 @@
|
||||
// ************************************************************************
|
||||
//
|
||||
// Copyright (c) 1995-2002 Juniper Networks, Inc. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, without written agreement and without
|
||||
// license or royalty fees, to use, copy, modify, and distribute this
|
||||
// software and its documentation for any purpose, provided that the
|
||||
// above copyright notice and the following three paragraphs appear in
|
||||
// all copies of this software.
|
||||
//
|
||||
// IN NO EVENT SHALL JUNIPER NETWORKS, INC. BE LIABLE TO ANY PARTY FOR
|
||||
// DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
|
||||
// ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
|
||||
// JUNIPER NETWORKS, INC. HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
||||
// DAMAGE.
|
||||
//
|
||||
// JUNIPER NETWORKS, INC. SPECIFICALLY DISCLAIMS ANY WARRANTIES,
|
||||
// INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND
|
||||
// NON-INFRINGEMENT.
|
||||
//
|
||||
// THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND JUNIPER
|
||||
// NETWORKS, INC. HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT,
|
||||
// UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
|
||||
//
|
||||
// ************************************************************************
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* bplaneInt.h --
|
||||
*
|
||||
* This file defines constants and datastructures used internally by the
|
||||
* bplane module, but not exported to the rest of the world.
|
||||
*/
|
||||
#ifndef _BPLANEINT_H
|
||||
#define _BPLANEINT_H
|
||||
|
||||
/* Tcl linked Parameters */
|
||||
extern int bpMinBAPop; /* don't sub(bin) when count less than this
|
||||
*/
|
||||
extern double bpMinAvgBinPop; /* try to keep average bin pop at or
|
||||
* below this
|
||||
*/
|
||||
|
||||
/* LabeledElement
|
||||
*
|
||||
* Used in this module as elements for test bplanes.
|
||||
*/
|
||||
typedef struct labeledelement
|
||||
{
|
||||
struct element *le_links[BP_NUM_LINKS];
|
||||
Rect le_rect;
|
||||
/* client data goes here */
|
||||
char * le_text;
|
||||
} LabeledElement;
|
||||
|
||||
/* bins */
|
||||
extern void bpBinsUpdate(BPlane *bp);
|
||||
|
||||
extern void bpBinAdd(BinArray *ba, Element *e);
|
||||
|
||||
extern BinArray *bpBinArrayBuild(Rect bbox,
|
||||
Element *elements, /* initial elements */
|
||||
bool subbin); /* subbin as needed */
|
||||
|
||||
/* dump (for debug) */
|
||||
extern void bpDumpRect(Rect *r);
|
||||
extern void bpDump(BPlane *bp, int flags);
|
||||
/* bpDump flags */
|
||||
/* labeled elements */
|
||||
# define BPD_LABELED 1
|
||||
# define BPD_INTERNAL_UNITS 2
|
||||
|
||||
/* test */
|
||||
void bpTestSnowGold(int size, bool trace);
|
||||
extern BPlane *bpTestSnow(int size, bool trace);
|
||||
extern Plane *bpTestSnowTile(int size, bool trace);
|
||||
|
||||
extern int bpRand(int min, int max);
|
||||
|
||||
#endif /* _BPLANEINT_H */
|
||||
Reference in New Issue
Block a user