/*
 *  ratlibpoint.h
 *  RatLib
 *
 *  Created by Curtis Jones on 2009.11.13.
 *  Copyright 2009 __MyCompanyName__. All rights reserved.
 *
 */

#ifndef __RATLIB_POINT_H__
#define __RATLIB_POINT_H__

#include "cobject.h"
#include "opool.h"

//
// ratlibpoint
//
struct ratlibpoint
{
	cobject_t cobject;								// super class
	struct ratlibpoint *prev;					// parent point
	uint32_t x;												// horizontal axis
	uint32_t y;												// vertical axis
};
typedef struct ratlibpoint ratlibpoint_t;

/**
 *
 */
int ratlibpoint_init (ratlibpoint_t*, opool_t*);

/**
 * point, pool, x (horizontal axis), y (vertical axis)
 */
int ratlibpoint_init2 (ratlibpoint_t*, opool_t*, uint32_t, uint32_t);

/**
 *
 */
int ratlibpoint_destroy (ratlibpoint_t*);

/**
 *
 */
int ratlibpoint_equals (ratlibpoint_t*, ratlibpoint_t*);

/**
 *
 */
int ratlibpoint_setprev (ratlibpoint_t*, ratlibpoint_t*);

/**
 *
 */
ratlibpoint_t* ratlibpoint_retain (ratlibpoint_t*);

/**
 *
 */
void ratlibpoint_release (ratlibpoint_t*);

#endif /* __RATLIB_POINT_H__ */
