All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
hdImagingShapeUI.h
Go to the documentation of this file.
1 //
2 // Copyright 2018 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 #ifndef PXRUSDMAYAGL_HD_IMAGING_SHAPE_UI_H
25 #define PXRUSDMAYAGL_HD_IMAGING_SHAPE_UI_H
26 
28 
29 #include "pxr/pxr.h"
30 #include "pxrUsdMayaGL/api.h"
31 
32 // XXX: On Linux, some Maya headers (notably M3dView.h) end up indirectly
33 // including X11/Xlib.h, which #define's "Bool" as int. This can cause
34 // compilation issues if sdf/types.h is included afterwards, so to fix
35 // this, we ensure that it gets included first.
36 #include "pxr/usd/sdf/types.h"
37 
38 #include <maya/M3dView.h>
39 #include <maya/MDrawInfo.h>
40 #include <maya/MDrawRequest.h>
41 #include <maya/MDrawRequestQueue.h>
42 #include <maya/MPxSurfaceShapeUI.h>
43 
44 
45 PXR_NAMESPACE_OPEN_SCOPE
46 
47 
56 class PxrMayaHdImagingShapeUI : public MPxSurfaceShapeUI
57 {
58  public:
59 
60  PXRUSDMAYAGL_API
61  static void* creator();
62 
63  PXRUSDMAYAGL_API
64  void getDrawRequests(
65  const MDrawInfo& drawInfo,
66  bool objectAndActiveOnly,
67  MDrawRequestQueue& requests) override;
68 
69  PXRUSDMAYAGL_API
70  void draw(const MDrawRequest& request, M3dView& view) const override;
71 
72  private:
73 
75  ~PxrMayaHdImagingShapeUI() override;
76 
78  PxrMayaHdImagingShapeUI& operator=(
79  const PxrMayaHdImagingShapeUI&) = delete;
80 };
81 
82 
83 PXR_NAMESPACE_CLOSE_SCOPE
84 
85 
86 #endif
Class for drawing the pxrHdImagingShape node in the legacy viewport.