| 120 | } |
| 121 | |
| 122 | static PJ_COORD reverse_4d(PJ_COORD obs, PJ *P) { |
| 123 | struct vgridshiftData *Q = (struct vgridshiftData *) P->opaque; |
| 124 | PJ_COORD point = obs; |
| 125 | |
| 126 | /* If transformation is not time restricted, we always call it */ |
| 127 | if (Q->t_final==0 || Q->t_epoch==0) { |
| 128 | point.lpz = reverse_3d (obs.xyz, P); |
| 129 | return point; |
| 130 | } |
| 131 | |
| 132 | /* Time restricted - only apply transform if within time bracket */ |
| 133 | if (obs.lpzt.t < Q->t_epoch && Q->t_final > Q->t_epoch) |
| 134 | point.lpz = reverse_3d (obs.xyz, P); |
| 135 | |
| 136 | return point; |
| 137 | } |
| 138 | |
| 139 | static PJ *destructor (PJ *P, int errlev) { |
| 140 | if (nullptr==P) |
nothing calls this directly
no test coverage detected