00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079 #ifndef SRM_BASESRF3D_H_INCLUDED
00080 #define SRM_BASESRF3D_H_INCLUDED
00081
00082 #if !defined(_WIN32)
00083 #define EXPORT_DLL
00084 #elif !defined(EXPORT_DLL)
00085 #if defined(_LIB)
00086 #define EXPORT_DLL
00087 #elif defined(_USRDLL)
00088 #define EXPORT_DLL __declspec(dllexport)
00089 #else
00090 #define EXPORT_DLL __declspec(dllimport)
00091 #endif
00092 #endif
00093
00094 #include "srm.h"
00095
00096 #ifdef __cplusplus
00097 extern "C" {
00098 #endif
00099
00109 typedef SRM_Status_Code SRM_ChangeCoordinate3DSRF
00110 (
00111 SRM_Object_Reference this_object,
00112 const SRM_Object_Reference source_srf,
00113 const SRM_Coordinate3D *source_coordinate,
00114 SRM_Coordinate3D *target_coordinate,
00115 SRM_Coordinate_Valid_Region *region
00116 );
00117
00130 typedef SRM_Status_Code SRM_ChangeCoordinate3DSRFObject
00131 (
00132 SRM_Object_Reference this_object,
00133 const SRM_Object_Reference source_srf,
00134 const SRM_Coordinate3D *source_coordinate,
00135 const SRM_ORM_Transformation_3D_Parameters *h_st,
00136 SRM_Coordinate3D *target_coordinate,
00137 SRM_Coordinate_Valid_Region *region
00138 );
00139
00140
00153 typedef SRM_Status_Code SRM_ChangeCoordinate3DArraySRF
00154 (
00155 SRM_Object_Reference this_object,
00156 const SRM_Object_Reference source_srf,
00157 const SRM_Coordinate3D_Array *source_coordinate_array,
00158 SRM_Coordinate3D_Array *target_coordinate_array,
00159 SRM_Integer_Positive *index,
00160 SRM_Coordinate_Valid_Region_Array *region_array
00161 );
00162
00175 typedef SRM_Status_Code SRM_ChangeCoordinate3DArraySRFObject
00176 (
00177 SRM_Object_Reference this_object,
00178 const SRM_Object_Reference source_srf,
00179 const SRM_Coordinate3D_Array *source_coordinate_array,
00180 const SRM_ORM_Transformation_3D_Parameters *h_st,
00181 SRM_Coordinate3D_Array *target_coordinate_array,
00182 SRM_Integer_Positive *index,
00183 SRM_Coordinate_Valid_Region_Array *region_array
00184 );
00185
00195 typedef SRM_Status_Code SRM_ChangeDirectionSRF
00196 (
00197 SRM_Object_Reference this_object,
00198 const SRM_Object_Reference source_srf,
00199 const SRM_Direction *source_direction,
00200 SRM_Direction *target_direction,
00201 SRM_Coordinate_Valid_Region *ref_coord_region
00202 );
00203
00216 typedef SRM_Status_Code SRM_ChangeDirectionSRFObject
00217 (
00218 SRM_Object_Reference this_object,
00219 const SRM_Object_Reference source_srf,
00220 const SRM_Direction *source_direction,
00221 const SRM_ORM_Transformation_3D_Parameters *h_st,
00222 SRM_Direction *target_direction,
00223 SRM_Coordinate_Valid_Region *ref_coord_region
00224 );
00225
00236 typedef SRM_Status_Code SRM_ChangeDirectionArraySRF
00237 (
00238 SRM_Object_Reference this_object,
00239 const SRM_Object_Reference source_srf,
00240 const SRM_Direction_Array *source_direction_array,
00241 SRM_Direction_Array *target_direction_array,
00242 SRM_Integer_Positive *index,
00243 SRM_Coordinate_Valid_Region_Array *ref_coord_region_array
00244 );
00245
00259 typedef SRM_Status_Code SRM_ChangeDirectionArraySRFObject
00260 (
00261 SRM_Object_Reference this_object,
00262 const SRM_Object_Reference source_srf,
00263 const SRM_Direction_Array *source_direction_array,
00264 const SRM_ORM_Transformation_3D_Parameters *h_st,
00265 SRM_Direction_Array *target_direction_array,
00266 SRM_Integer_Positive *index,
00267 SRM_Coordinate_Valid_Region_Array *ref_coord_region_array
00268 );
00269
00278 typedef SRM_Status_Code SRM_CreateCoordinate3D
00279 (
00280 SRM_Object_Reference this_object,
00281 SRM_Long_Float first_coordinate_component,
00282 SRM_Long_Float second_coordinate_component,
00283 SRM_Long_Float third_coordinate_component,
00284 SRM_Coordinate3D *new_coordinate
00285 );
00286
00287
00297 typedef SRM_Status_Code SRM_CreateDirection
00298 (
00299 SRM_Object_Reference this_object,
00300 const SRM_Coordinate3D *reference_coordinate,
00301 SRM_Long_Float first_direction_component,
00302 SRM_Long_Float second_direction_component,
00303 SRM_Long_Float third_direction_component,
00304 SRM_Direction *new_direction
00305 );
00306
00324 typedef SRM_Status_Code SRM_ComputeSRFOrientation
00325 (
00326 SRM_Object_Reference this_object,
00327 const SRM_Object_Reference source_srf,
00328 const SRM_Coordinate3D *src_ref_loc,
00329 const SRM_Coordinate3D *tgt_ref_loc,
00330 SRM_Object_Reference out_ori
00331 );
00332
00333
00334
00335 typedef struct _SRM_LococentricEuclidean3D SRM_LococentricEuclidean3D;
00336
00347 typedef SRM_Status_Code SRM_CreateLococentricEuclidean3DSRF
00348 (
00349 SRM_Object_Reference this_object,
00350 const SRM_Coordinate3D *lococentre,
00351 const SRM_Direction *primary_axis,
00352 const SRM_Direction *secondary_axis,
00353 SRM_LococentricEuclidean3D *new_lce3d_srf
00354 );
00355
00380 typedef SRM_Status_Code SRM_TransformOrientation
00381 (
00382 SRM_Object_Reference this_object,
00383 const SRM_Object_Reference source_srf,
00384 const SRM_Coordinate3D *src_ref_loc,
00385 const SRM_Object_Reference src_ori,
00386 const SRM_Coordinate3D *tgt_ref_loc,
00387 SRM_Object_Reference tgt_ori
00388 );
00389
00390
00418 typedef SRM_Status_Code SRM_TransformOrientationCommonOrigin
00419 (
00420 SRM_Object_Reference this_object,
00421 const SRM_Object_Reference source_srf,
00422 const SRM_Coordinate3D *src_ref_loc,
00423 const SRM_Object_Reference src_ori,
00424 SRM_Coordinate3D *tgt_ref_loc,
00425 SRM_Object_Reference tgt_ori,
00426 SRM_Coordinate_Valid_Region *ref_coord_region
00427 );
00428
00429
00456 typedef SRM_Status_Code SRM_TransformVectorInBodyFrame
00457 (
00458 SRM_Object_Reference this_object,
00459 const SRM_Object_Reference source_srf,
00460 const SRM_Coordinate3D *src_ref_loc,
00461 const SRM_Object_Reference src_ori,
00462 const SRM_Vector_3D *vec,
00463 const SRM_Coordinate3D *tgt_ref_loc,
00464 SRM_Vector_3D *tgt_vec
00465 );
00466
00467
00494 typedef SRM_Status_Code SRM_TransformVectorInBodyFrameCommonOrigin
00495 (
00496 SRM_Object_Reference this_object,
00497 const SRM_Object_Reference source_srf,
00498 const SRM_Coordinate3D *src_ref_loc,
00499 const SRM_Object_Reference src_ori,
00500 const SRM_Vector_3D *vec,
00501 SRM_Coordinate3D *tgt_ref_loc,
00502 SRM_Vector_3D *tgt_vec,
00503 SRM_Coordinate_Valid_Region *ref_coord_region
00504 );
00505
00506
00526 typedef SRM_Status_Code SRM_TransformVector
00527 (
00528 SRM_Object_Reference this_object,
00529 const SRM_Object_Reference source_srf,
00530 const SRM_Coordinate3D *src_ref_loc,
00531 const SRM_Vector_3D *src_vec,
00532 const SRM_Coordinate3D *tgt_ref_loc,
00533 SRM_Vector_3D *tgt_vec
00534 );
00535
00556 typedef SRM_Status_Code SRM_TransformVectorCommonOrigin
00557 (
00558 SRM_Object_Reference this_object,
00559 const SRM_Object_Reference source_srf,
00560 const SRM_Coordinate3D *src_ref_loc,
00561 const SRM_Vector_3D *src_vec,
00562 SRM_Coordinate3D *tgt_ref_loc,
00563 SRM_Vector_3D *tgt_vec,
00564 SRM_Coordinate_Valid_Region *ref_coord_region
00565 );
00566
00567
00572 typedef SRM_Status_Code SRM_DestroyCoordinate3D
00573 (
00574 SRM_Object_Reference this_object,
00575 SRM_Object_Reference coordinate
00576 );
00577
00578
00583 typedef SRM_Status_Code SRM_DestroyDirection
00584 (
00585 SRM_Object_Reference this_object,
00586 SRM_Object_Reference direction
00587 );
00588
00589
00597 typedef SRM_Status_Code SRM_EuclideanDistance3D
00598 (
00599 SRM_Object_Reference this_object,
00600 const SRM_Coordinate3D *point1_coordinate,
00601 const SRM_Coordinate3D *point2_coordinate,
00602 SRM_Long_Float *distance
00603 );
00604
00613 typedef SRM_Status_Code SRM_GetCoordinate3DValues
00614 (
00615 SRM_Object_Reference this_object,
00616 const SRM_Coordinate3D *coordinate,
00617 SRM_Long_Float *first_coordinate_component,
00618 SRM_Long_Float *second_coordinate_component,
00619 SRM_Long_Float *third_coordinate_component
00620 );
00621
00622
00632 typedef SRM_Status_Code SRM_GetDirectionValues
00633 (
00634 SRM_Object_Reference this_object,
00635 const SRM_Direction *direction,
00636 SRM_Coordinate3D *reference_coordinate,
00637 SRM_Long_Float *first_direction_component,
00638 SRM_Long_Float *second_direction_component,
00639 SRM_Long_Float *third_direction_component
00640 );
00641
00642
00657 typedef SRM_Status_Code SRM_GetExtendedValidRegion
00658 (
00659 SRM_Object_Reference this_object,
00660 SRM_Integer component_identifier,
00661 SRM_Interval_Type *interval_type,
00662 SRM_Long_Float *extended_lower_bound,
00663 SRM_Long_Float *lower_bound,
00664 SRM_Long_Float *upper_bound,
00665 SRM_Long_Float *extended_upper_bound
00666 );
00667
00668
00681 typedef SRM_Status_Code SRM_GetValidRegion
00682 (
00683 SRM_Object_Reference this_object,
00684 SRM_Integer component_identifier,
00685 SRM_Interval_Type *interval_type,
00686 SRM_Long_Float *lower_bound,
00687 SRM_Long_Float *upper_bound
00688 );
00689
00699 typedef SRM_Status_Code SRM_GetNaturalSRFSMemberCode
00700 (
00701 SRM_Object_Reference this_object,
00702 const SRM_Coordinate3D *source_coordinate,
00703 SRM_ORM_Code orm_code,
00704 SRM_RT_Code rt_code,
00705 SRM_SRFS_Code target_srfs,
00706 SRM_SRFS_Code_Info *srfs_code_info
00707 );
00708
00717 typedef SRM_Status_Code SRM_SetCoordinate3DValues
00718 (
00719 SRM_Object_Reference this_object,
00720 SRM_Coordinate3D *coordinate,
00721 SRM_Long_Float first_coordinate_component,
00722 SRM_Long_Float second_coordinate_component,
00723 SRM_Long_Float third_coordinate_component
00724 );
00725
00726
00746 typedef SRM_Status_Code SRM_SetExtendedValidRegion
00747 (
00748 SRM_Object_Reference this_object,
00749 SRM_Integer component_identifier,
00750 SRM_Interval_Type interval_type,
00751 SRM_Long_Float extended_lower_bound,
00752 SRM_Long_Float lower_bound,
00753 SRM_Long_Float upper_bound,
00754 SRM_Long_Float extended_upper_bound
00755 );
00756
00757
00773 typedef SRM_Status_Code SRM_SetValidRegion
00774 (
00775 SRM_Object_Reference this_object,
00776 SRM_Integer component_identifier,
00777 SRM_Interval_Type interval_type,
00778 SRM_Long_Float lower_bound,
00779 SRM_Long_Float upper_bound
00780 );
00781
00782 #ifdef __cplusplus
00783 }
00784 #endif
00785 #endif