Example #1
0
 Datum  spheretrans_invert(PG_FUNCTION_ARGS)
 {
   SEuler  * se  =  ( SEuler * )  PG_GETARG_POINTER ( 0 ) ;
   SEuler  * ret =  ( SEuler * ) MALLOC ( sizeof ( SEuler ) );
   spheretrans_inverse ( ret , se );
   PG_RETURN_POINTER ( ret );
 }
Example #2
0
 Datum  spheretrans_trans_inv(PG_FUNCTION_ARGS)
 {
   SEuler  * se1  =  ( SEuler  * ) PG_GETARG_POINTER ( 0 ) ;
   SEuler  * se2  =  ( SEuler  * ) PG_GETARG_POINTER ( 1 ) ;
   SEuler  * out  =  ( SEuler  * ) MALLOC ( sizeof( SEuler ) );
   SEuler    tmp  ;
   spheretrans_inverse ( &tmp , se2 );
   seuler_trans_zxz  ( out , se1, &tmp );
   PG_RETURN_POINTER ( spheretrans_check(out) );
 }
Example #3
0
Datum
spheretrans_point_inverse(PG_FUNCTION_ARGS)
{
	Datum		sp = PG_GETARG_DATUM(0);
	SEuler	   *se = (SEuler *) PG_GETARG_POINTER(1);
	SEuler		tmp;
	Datum		ret;

	spheretrans_inverse(&tmp, se);
	ret = DirectFunctionCall2(spheretrans_point,
							  sp, PointerGetDatum(&tmp));
	PG_RETURN_DATUM(ret);
}