1/*
2 * Copyright (C) 2008 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17/* ---- includes ----------------------------------------------------------- */
18
19#include "b_TensorEm/Int16Rect.h"
20#include "b_BasicEm/Math.h"
21#include "b_BasicEm/Functions.h"
22#include "b_BasicEm/Memory.h"
23
24/* ------------------------------------------------------------------------- */
25
26/* ========================================================================= */
27/*                                                                           */
28/* ---- \ghd{ auxiliary functions } ---------------------------------------- */
29/*                                                                           */
30/* ========================================================================= */
31
32/* ------------------------------------------------------------------------- */
33
34/* ========================================================================= */
35/*                                                                           */
36/* ---- \ghd{ constructor / destructor } ----------------------------------- */
37/*                                                                           */
38/* ========================================================================= */
39
40/* ------------------------------------------------------------------------- */
41
42void bts_Int16Rect_init( struct bbs_Context* cpA, struct bts_Int16Rect* ptrA )
43{
44	ptrA->x1E = 0;
45	ptrA->y1E = 0;
46	ptrA->x2E = 0;
47	ptrA->y2E = 0;
48}
49
50void bts_Int16Rect_exit( struct bbs_Context* cpA, struct bts_Int16Rect* ptrA )
51{
52	ptrA->x1E = 0;
53	ptrA->y1E = 0;
54	ptrA->x2E = 0;
55	ptrA->y2E = 0;
56}
57
58/* ========================================================================= */
59/*                                                                           */
60/* ---- \ghd{ operators } -------------------------------------------------- */
61/*                                                                           */
62/* ========================================================================= */
63
64/* ------------------------------------------------------------------------- */
65
66/* ========================================================================= */
67/*                                                                           */
68/* ---- \ghd{ query functions } -------------------------------------------- */
69/*                                                                           */
70/* ========================================================================= */
71
72/* ------------------------------------------------------------------------- */
73
74/* ========================================================================= */
75/*                                                                           */
76/* ---- \ghd{ modify functions } ------------------------------------------- */
77/*                                                                           */
78/* ========================================================================= */
79
80/* ------------------------------------------------------------------------- */
81
82struct bts_Int16Rect bts_Int16Rect_create( int16 x1A, int16 y1A, int16 x2A, int16 y2A )
83{
84	struct bts_Int16Rect rectL;
85	rectL.x1E = x1A;
86	rectL.y1E = y1A;
87	rectL.x2E = x2A;
88	rectL.y2E = y2A;
89	return rectL;
90}
91
92/* ------------------------------------------------------------------------- */
93
94/* ========================================================================= */
95/*                                                                           */
96/* ---- \ghd{ I/O } -------------------------------------------------------- */
97/*                                                                           */
98/* ========================================================================= */
99
100/* ------------------------------------------------------------------------- */
101
102uint32 bts_Int16Rect_memSize( struct bbs_Context* cpA,
103							  const struct bts_Int16Rect *ptrA )
104{
105	return bbs_SIZEOF16( struct bts_Int16Rect );
106}
107
108/* ------------------------------------------------------------------------- */
109
110uint32 bts_Int16Rect_memWrite( struct bbs_Context* cpA,
111							   const struct bts_Int16Rect* ptrA,
112							   uint16* memPtrA )
113{
114	memPtrA += bbs_memWrite16( &ptrA->x1E, memPtrA );
115	memPtrA += bbs_memWrite16( &ptrA->y1E, memPtrA );
116	memPtrA += bbs_memWrite16( &ptrA->x2E, memPtrA );
117	memPtrA += bbs_memWrite16( &ptrA->y2E, memPtrA );
118	return bbs_SIZEOF16( *ptrA );
119}
120
121/* ------------------------------------------------------------------------- */
122
123uint32 bts_Int16Rect_memRead( struct bbs_Context* cpA,
124							  struct bts_Int16Rect* ptrA,
125							  const uint16* memPtrA )
126{
127	if( bbs_Context_error( cpA ) ) return 0;
128	memPtrA += bbs_memRead16( &ptrA->x1E, memPtrA );
129	memPtrA += bbs_memRead16( &ptrA->y1E, memPtrA );
130	memPtrA += bbs_memRead16( &ptrA->x2E, memPtrA );
131	memPtrA += bbs_memRead16( &ptrA->y2E, memPtrA );
132	return bbs_SIZEOF16( *ptrA );
133}
134
135/* ------------------------------------------------------------------------- */
136
137/* ========================================================================= */
138/*                                                                           */
139/* ---- \ghd{ exec functions } --------------------------------------------- */
140/*                                                                           */
141/* ========================================================================= */
142
143/* ------------------------------------------------------------------------- */
144
145/* ========================================================================= */
146
147
148