diff options
Diffstat (limited to 'extern/draco/dracoenc/src/draco/compression/encode_base.h')
-rw-r--r-- | extern/draco/dracoenc/src/draco/compression/encode_base.h | 126 |
1 files changed, 0 insertions, 126 deletions
diff --git a/extern/draco/dracoenc/src/draco/compression/encode_base.h b/extern/draco/dracoenc/src/draco/compression/encode_base.h deleted file mode 100644 index 451d970eb6f..00000000000 --- a/extern/draco/dracoenc/src/draco/compression/encode_base.h +++ /dev/null @@ -1,126 +0,0 @@ -// Copyright 2017 The Draco Authors. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -#ifndef DRACO_SRC_DRACO_COMPRESSION_ENCODE_BASE_H_ -#define DRACO_SRC_DRACO_COMPRESSION_ENCODE_BASE_H_ - -#include "draco/attributes/geometry_attribute.h" -#include "draco/compression/config/compression_shared.h" -#include "draco/core/status.h" - -namespace draco { - -// Base class for our geometry encoder classes. |EncoderOptionsT| specifies -// options class used by the encoder. Please, see encode.h and expert_encode.h -// for more details and method descriptions. -template <class EncoderOptionsT> -class EncoderBase { - public: - typedef EncoderOptionsT OptionsType; - - EncoderBase() - : options_(EncoderOptionsT::CreateDefaultOptions()), - num_encoded_points_(0), - num_encoded_faces_(0) {} - virtual ~EncoderBase() {} - - const EncoderOptionsT &options() const { return options_; } - EncoderOptionsT &options() { return options_; } - - // If enabled, it tells the encoder to keep track of the number of encoded - // points and faces (default = false). - // Note that this can slow down encoding for certain encoders. - void SetTrackEncodedProperties(bool flag); - - // Returns the number of encoded points and faces during the last encoding - // operation. Returns 0 if SetTrackEncodedProperties() was not set. - size_t num_encoded_points() const { return num_encoded_points_; } - size_t num_encoded_faces() const { return num_encoded_faces_; } - - protected: - void Reset(const EncoderOptionsT &options) { options_ = options; } - - void Reset() { options_ = EncoderOptionsT::CreateDefaultOptions(); } - - void SetSpeedOptions(int encoding_speed, int decoding_speed) { - options_.SetSpeed(encoding_speed, decoding_speed); - } - - void SetEncodingMethod(int encoding_method) { - options_.SetGlobalInt("encoding_method", encoding_method); - } - - void SetEncodingSubmethod(int encoding_submethod) { - options_.SetGlobalInt("encoding_submethod", encoding_submethod); - } - - Status CheckPredictionScheme(GeometryAttribute::Type att_type, - int prediction_scheme) const { - // Out of bound checks: - if (prediction_scheme < PREDICTION_NONE) - return Status(Status::DRACO_ERROR, - "Invalid prediction scheme requested."); - if (prediction_scheme >= NUM_PREDICTION_SCHEMES) - return Status(Status::DRACO_ERROR, - "Invalid prediction scheme requested."); - // Deprecated prediction schemes: - if (prediction_scheme == MESH_PREDICTION_TEX_COORDS_DEPRECATED) - return Status(Status::DRACO_ERROR, - "MESH_PREDICTION_TEX_COORDS_DEPRECATED is deprecated."); - if (prediction_scheme == MESH_PREDICTION_MULTI_PARALLELOGRAM) - return Status(Status::DRACO_ERROR, - "MESH_PREDICTION_MULTI_PARALLELOGRAM is deprecated."); - // Attribute specific checks: - if (prediction_scheme == MESH_PREDICTION_TEX_COORDS_PORTABLE) { - if (att_type != GeometryAttribute::TEX_COORD) - return Status(Status::DRACO_ERROR, - "Invalid prediction scheme for attribute type."); - } - if (prediction_scheme == MESH_PREDICTION_GEOMETRIC_NORMAL) { - if (att_type != GeometryAttribute::NORMAL) { - return Status(Status::DRACO_ERROR, - "Invalid prediction scheme for attribute type."); - } - } - // TODO(hemmer): Try to enable more prediction schemes for normals. - if (att_type == GeometryAttribute::NORMAL) { - if (!(prediction_scheme == PREDICTION_DIFFERENCE || - prediction_scheme == MESH_PREDICTION_GEOMETRIC_NORMAL)) { - return Status(Status::DRACO_ERROR, - "Invalid prediction scheme for attribute type."); - } - } - return OkStatus(); - } - - protected: - void set_num_encoded_points(size_t num) { num_encoded_points_ = num; } - void set_num_encoded_faces(size_t num) { num_encoded_faces_ = num; } - - private: - EncoderOptionsT options_; - - size_t num_encoded_points_; - size_t num_encoded_faces_; -}; - -template <class EncoderOptionsT> -void EncoderBase<EncoderOptionsT>::SetTrackEncodedProperties(bool flag) { - options_.SetGlobalBool("store_number_of_encoded_points", flag); - options_.SetGlobalBool("store_number_of_encoded_faces", flag); -} - -} // namespace draco - -#endif // DRACO_SRC_DRACO_COMPRESSION_ENCODE_BASE_H_ |