Example #1
0
/* chkBoundBox:
 *   Compute extremes of graph, then set up bounding box.
 *   If user supplied a bounding box, use that;
 *   else if "window" is a graph attribute, use that; 
 *   otherwise, define bounding box as a percentage expansion of
 *   graph extremes.
 *   In the first two cases, check that graph fits in bounding box.
 */
static void chkBoundBox(Agraph_t * graph)
{
    char *marg;
    Point ll, ur;
    int i;
    double x, y;
    double xmin, xmax, ymin, ymax;
    double xmn, xmx, ymn, ymx;
    double ydelta, xdelta;
    Info_t *ip;
    Poly *pp;
    /* int          cnt; */

    ip = nodeInfo;
    pp = &ip->poly;
    x = ip->site.coord.x;
    y = ip->site.coord.y;
    xmin = pp->origin.x + x;
    ymin = pp->origin.y + y;
    xmax = pp->corner.x + x;
    ymax = pp->corner.y + y;
    for (i = 1; i < nsites; i++) {
	ip++;
	pp = &ip->poly;
	x = ip->site.coord.x;
	y = ip->site.coord.y;
	xmn = pp->origin.x + x;
	ymn = pp->origin.y + y;
	xmx = pp->corner.x + x;
	ymx = pp->corner.y + y;
	if (xmn < xmin)
	    xmin = xmn;
	if (ymn < ymin)
	    ymin = ymn;
	if (xmx > xmax)
	    xmax = xmx;
	if (ymx > ymax)
	    ymax = ymx;
    }

    marg = agget(graph, "voro_margin");
    if (marg && (*marg != '\0')) {
	margin = atof(marg);
    }
    ydelta = margin * (ymax - ymin);
    xdelta = margin * (xmax - xmin);
    ll.x = xmin - xdelta;
    ll.y = ymin - ydelta;
    ur.x = xmax + xdelta;
    ur.y = ymax + ydelta;

    setBoundBox(&ll, &ur);
}
Example #2
0
//캐릭터 생성함수
void CBaseChar::makeChar(const char * playerName, int x, int y)
{
	std::string path;
	path.append("Resource/Char/");
	path.append(playerName);
	path.append("/");

	std::string bodypath;
	bodypath = path + "idel_0.png";
	m_pBody = CSprite::create(bodypath.c_str());

	std::string armpath;
	armpath = path;

	switch(m_eNowWeapon)
	{
	case Weapon_Nomal:
		armpath.append("handgun_1.png");
		break;
	case Weapon_Double:
		armpath.append("handgun_2.png");
		break;
	case Weapon_Tripel:
		armpath.append("handgun_3.png");
		break;
	case Weapon_Multiple:
		armpath.append("itemgun_1.png");
		break;
	case Weapon_BigMulti:
		armpath.append("itemgun_2.png");
		break;
	}


	m_pArm = CSprite::create(armpath.c_str());
	m_pBody->setAcp(ccp(0.5,0.5));
	m_pBody->setPos(ccp(0,0));
	addChild(m_pBody);
	m_pArm->setAcp(ccp(0.5,0.5));
	m_pArm->setPos(ccp(x,y));
	//setRect(m_pBody->getRect());
	setAcp(ccp(0.5,0.5));
	setBoundBox(m_pBody->getRect());
	addChild(m_pArm);

	m_pIdel = makeAnimation(path.c_str(),"idel",true,2);
	m_pWalk = makeAnimation(path.c_str(),"run",true,4);
	m_pDie = makeAnimation(path.c_str(),"die",false,1);

	m_pNowAni = m_pIdel;
}
// Construct from components
polyForceTwoShear::polyForceTwoShear
(
    Time& t,
    polyMoleculeCloud& molCloud,
    const dictionary& dict
)
:
    polyStateController(t, molCloud, dict),
    propsDict_(dict.subDict(typeName + "Properties")),

    molIds_(),
    forceMagLiquid_(propsDict_.lookup("forceLiquid"))
{

    writeInTimeDir_ = true;
    writeInCase_ = true;

//     singleValueController() = true;
    
    setBoundBox(propsDict_, bb_liquid_A_, "liquidA");
    setBoundBox(propsDict_, bb_liquid_B_, "liquidB");    
    setBoundBox(propsDict_, bb_gas_A_, "gasA");
    setBoundBox(propsDict_, bb_gas_B_, "gasB");

    molIds_.clear();

    selectIds ids
    (
        molCloud_.cP(),
        propsDict_
    );

    molIds_ = ids.molIds();

    readProperties();
}
Example #4
0
bool CTrap::init()
{
	CBox::init();
	CSprite::init("Resource/Box/box_0.png");
	m_pDieAni = new CAnimation();
	m_pDieAni->init(100,false);
	m_pDieAni->addFrame("Resource/Box/box_0.png");
	m_pDieAni->addFrame("Resource/Box/box_1.png");
	m_pDieAni->addFrame("Resource/Box/box_2.png");
	m_pDieAni->addFrame("Resource/Box/box_3.png");

	m_index = Box_Trap;

	m_nHp = 50;

	setAcp(ccp(0.5,0.5));
	setBoundBox();

	return true;
}
Example #5
0
void Character::move() {
	if (getState() == MOVING) {
		setBoundBox(getX(), getY());
	}
}
// Construct from components
polyVelocityBounded::polyVelocityBounded
(
    Time& t,
    polyMoleculeCloud& molCloud,
    const dictionary& dict
)
:
    polyStateController(t, molCloud, dict),
    propsDict_(dict.subDict(typeName + "Properties")),
    molIds_(),
    bb_(),
//     avMass_(0.0),
    lambda_(readScalar(propsDict_.lookup("lambda"))),
    deltaT_(t.deltaT().value()), 
    accumulatedTime_(0.0),
    startTime_(0.0),
    endTime_(GREAT),
    X_(false),
    Y_(false),
    Z_(false)
{
    writeInTimeDir_ = false;
    writeInCase_ = false;

//     singleValueController() = true;

    setBoundBox();
    
    molIds_.clear();

    selectIds ids
    (
        molCloud_.cP(),
        propsDict_
    );

    molIds_ = ids.molIds();

    velocity_ = propsDict_.lookup("velocity");

    if (propsDict_.found("componentControl"))
    {
        componentControl_ = Switch(propsDict_.lookup("componentControl"));

        if(componentControl_)
        {
            if (propsDict_.found("X"))
            {
                X_ = Switch(propsDict_.lookup("X"));
            }
    
            if (propsDict_.found("Y"))
            {
                Y_ = Switch(propsDict_.lookup("Y"));
            }
    
            if (propsDict_.found("Z"))
            {
                Z_ = Switch(propsDict_.lookup("Z"));
            }

            if(!X_ && !Y_ && !Z_)
            {
                FatalErrorIn("polyVelocityBounded::polyVelocityBounded()")
                    << "At least one component (X, Y, Z) should be chosen " << nl << "in: "
                    << time_.time().system()/"controllersDict"
                    << exit(FatalError);
            }
        }
    }
    
    if (propsDict_.found("startAtTime"))
    {    
        startTime_ = readScalar(propsDict_.lookup("startAtTime"));
    }
    
    if (propsDict_.found("endAtTime"))
    {
        endTime_ = readScalar(propsDict_.lookup("endAtTime"));
    }    
}