1 // TODO
2 #define DWG_TYPE DWG_TYPE_POINTCLOUDCOLORMAP
3 #include "common.c"
4 
5 void
api_process(dwg_object * obj)6 api_process (dwg_object *obj)
7 {
8   int error, isnew;
9   BITCODE_BL i;
10   BITCODE_BS class_version;
11   BITCODE_T def_intensity_colorscheme;
12   BITCODE_T def_elevation_colorscheme;
13   BITCODE_T def_classification_colorscheme;
14   BITCODE_BL num_colorramps;
15   Dwg_POINTCLOUDCOLORMAP_Ramp *colorramps;
16   BITCODE_BL num_classification_colorramps;
17   Dwg_POINTCLOUDCOLORMAP_Ramp *classification_colorramps;
18   Dwg_ColorRamp *ramps;
19 
20   Dwg_Version_Type dwg_version = obj->parent->header.version;
21   //#ifdef DEBUG_CLASSES
22   dwg_obj_pointcloudcolormap *_obj = dwg_object_to_POINTCLOUDCOLORMAP (obj);
23 
24   CHK_ENTITY_TYPE (_obj, POINTCLOUDCOLORMAP, class_version, BS);
25   CHK_ENTITY_MAX (_obj, POINTCLOUDCOLORMAP, class_version, BS, 3);
26   CHK_ENTITY_UTF8TEXT (_obj, POINTCLOUDCOLORMAP, def_intensity_colorscheme);
27   CHK_ENTITY_UTF8TEXT (_obj, POINTCLOUDCOLORMAP, def_elevation_colorscheme);
28   CHK_ENTITY_UTF8TEXT (_obj, POINTCLOUDCOLORMAP, def_classification_colorscheme);
29   CHK_ENTITY_TYPE (_obj, POINTCLOUDCOLORMAP, num_colorramps, BL);
30   if (!dwg_dynapi_entity_value (_obj, "POINTCLOUDCOLORMAP", "colorramps",
31                                 &colorramps, NULL))
32     fail ("POINTCLOUDCOLORMAP.colorramps");
33   else
34     for (i = 0; i < num_colorramps; i++)
35       {
36         CHK_SUBCLASS_TYPE (colorramps[i], POINTCLOUDCOLORMAP_Ramp,
37                            class_version, BS);
38         CHK_SUBCLASS_TYPE (colorramps[i], POINTCLOUDCOLORMAP_Ramp, num_ramps,
39                            BL);
40         if (!dwg_dynapi_subclass_value (&colorramps[i],
41                                         "POINTCLOUDCOLORMAP_Ramp", "ramps",
42                                         &ramps, NULL))
43           fail ("POINTCLOUDCOLORMAP_Ramp.ramps");
44         else
45           for (unsigned j = 0; j < colorramps[i].num_ramps; j++)
46             {
47               CHK_SUBCLASS_UTF8TEXT (ramps[j], ColorRamp, colorscheme);
48               CHK_SUBCLASS_TYPE (ramps[j], ColorRamp, unknown_bl, BL);
49               CHK_SUBCLASS_TYPE (ramps[j], ColorRamp, unknown_b, B);
50             }
51       }
52 
53   CHK_ENTITY_TYPE (_obj, POINTCLOUDCOLORMAP, num_classification_colorramps, BL);
54   if (!dwg_dynapi_entity_value (_obj, "POINTCLOUDCOLORMAP", "classification_colorramps",
55                                 &classification_colorramps, NULL))
56     fail ("POINTCLOUDCOLORMAP.classification_colorramps");
57   else
58     for (i = 0; i < num_classification_colorramps; i++)
59       {
60         CHK_SUBCLASS_TYPE (classification_colorramps[i],
61                            POINTCLOUDCOLORMAP_Ramp, class_version, BS);
62         CHK_SUBCLASS_TYPE (classification_colorramps[i],
63                            POINTCLOUDCOLORMAP_Ramp, num_ramps, BL);
64         if (!dwg_dynapi_subclass_value (&classification_colorramps[i],
65                                         "POINTCLOUDCOLORMAP_Ramp", "ramps",
66                                         &ramps, NULL))
67           fail ("POINTCLOUDCOLORMAP_Ramp.ramps");
68         else
69           for (unsigned j = 0; j < classification_colorramps[i].num_ramps; j++)
70             {
71               CHK_SUBCLASS_UTF8TEXT (ramps[j], ColorRamp, colorscheme);
72               CHK_SUBCLASS_TYPE (ramps[j], ColorRamp, unknown_bl, BL);
73               CHK_SUBCLASS_TYPE (ramps[j], ColorRamp, unknown_b, B);
74             }
75       }
76   //#endif
77 }
78