1 //
2 //   Copyright 2019 Pixar
3 //
4 //   Licensed under the Apache License, Version 2.0 (the "Apache License")
5 //   with the following modification; you may not use this file except in
6 //   compliance with the Apache License and the following modification to it:
7 //   Section 6. Trademarks. is deleted and replaced with:
8 //
9 //   6. Trademarks. This License does not grant permission to use the trade
10 //      names, trademarks, service marks, or product names of the Licensor
11 //      and its affiliates, except as required to comply with Section 4(c) of
12 //      the License and to reproduce the content of the NOTICE file.
13 //
14 //   You may obtain a copy of the Apache License at
15 //
16 //       http://www.apache.org/licenses/LICENSE-2.0
17 //
18 //   Unless required by applicable law or agreed to in writing, software
19 //   distributed under the Apache License with the above modification is
20 //   distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
21 //   KIND, either express or implied. See the Apache License for the specific
22 //   language governing permissions and limitations under the Apache License.
23 //
24 
25 #ifndef VIEWER_ARGS_UTILS_H
26 #define VIEWER_ARGS_UTILS_H
27 
28 #include <vector>
29 
30 class ArgOptions;
31 struct ShapeDesc;
32 class ObjAnim;
33 
34 namespace ViewerArgsUtils {
35 
36 // From the list of obj files in args, populates the
37 // defaultShapes vector, treating the objs as an animated series, returning
38 // an ObjAnim object.
39 const ObjAnim *PopulateAnimShapes(const ArgOptions &args,
40                                   std::vector<ShapeDesc> *defaultShapes = 0);
41 
42 // From the list of obj files in args, populates the
43 // defaultShapes vector.
44 void PopulateShapes(const ArgOptions &args,
45                     std::vector<ShapeDesc> *defaultShapes);
46 
47 // From the list of obj files in args, populates the
48 // defaultShapes vector and the objAnim object if animated objs have
49 // been specified in args.
50 void PopulateShapesOrAnimShapes(
51                     const ArgOptions &args,
52                     std::vector<ShapeDesc> *defaultShapes,
53                     const ObjAnim **objAnim);
54 
55 
56 } // namespace ViewerArgsUtils
57 
58 #endif // VIEWER_ARGS_UTILS_H
59